Перенесення або відновлення freebsd

Хочу розповісти, як відносно швидко відновити працездатність померлого freebsd сервера, або перенести повністю сервер з однієї машини на іншу. Для цього нам знадобиться програма для архівації fsbackup і live-cd з freebsd. Відразу попереджаю, що це не how to, потрібен певний рівень знання і розуміння ОС freebsd.

$ Cfg_backup_name = "srv12_domain_local";
$ Cfg_cache_dir = "/ usr / local / fsbackup / cache";
$ Prog_md5sum = "md5sum -b";
$ Prog_tar = "/ usr / bin / tar";
$ Prog_ssh = "/ usr / bin / ssh";
$ Prog_rm = "/ bin / rm";
$ Prog_gzip = "/ usr / bin / gzip";
$ Prog_pgp = "gpg";
$ Cfg_checksum = "timesize";
$ Cfg_backup_style = "backup";
$ Cfg_increment_level = 7;
$ Cfg_save_old_backup = 1;
$ Cfg_type = "remote_ftp";
$ Cfg_remote_ftp_mode = 0;
$ Cfg_remote_password = "password";
$ Cfg_local_path = "/ mnt / backup / srv12 / system";
$ Cfg_time_limit = 0;
$ Cfg_size_limit = 0;
$ Cfg_maximum_archive_size = 0;
$ Cfg_root_path = "/";
$ Cfg_verbose = 2;
$ Cfg_stopdir_prune = 0;
1;
__DATA__
# Архівуємо весь сервер з кореня
/
# Вказуємо папки виключення, які бекапіть не потрібно
!/ dev
!/ mail
!/ mnt
!/ Usr / ports
!/ Var / db / portsnap
!/ Usr / local / fsbackup / cache
!/ Web / squidcache
!/ Web / mysql
!/ Usr / src
!/ Usr / local / www / data-dist / netams

Я архівуються весь сервер, за винятком деяких папок, які вказані окремо.

Архів ми отримали, тепер потрібно підготувати сервер, на який буде здійснюватися перенесення. Для цього на вихідному сервері необхідно відкрити / etc / fstab запам'ятати існуючі розділи і потім створити такі ж розділи на іншому сервері.

Розмір розділів може не збігатися, досить просто наявність таких же розділів. Я розбиваю диск за допомогою інсталяційного диска freebsd і custom install на ньому: розбиваю безпосередньо диск і ставлю завантажувач freebsd. Після того, як створили розділи, копіюємо наш бекап куди-небудь, щоб потім можна було його забрати на другий сервер, завантажившись з live-cd. Ви маєте можливість копіювати на ftp, можна на флешку, можна просто в віндового кулі покласти і потім її подмонтировать. Разом з архівом потрібно скопіювати скрипт fsrestore.sh, який лежить в / usr / local / fsbackup / scripts. Цей скрипт буде виконувати безпосередньо відновлення системи.

Тепер беремо live-cd, я використовую Frenzy. і вантажимося з нього. В принципі, користуватися можна чим завгодно, будь-яким live-cd з freebsd, але мені подобається саме Frenzy. Після завантаження маємо повноцінну систему, яка автоматично подмонтіровать створені нами раніше розділи. Подмонтіровать вони в режимі читання, так що спочатку отмонтіруем їх.

і так далі з усіма розділами.

Потім в папці / mnt створимо папки з іменами розділів нашої системи, яку ми переносимо. У моєму випадку це папки / mnt / tmp, / mnt / usr, / mnt / var, / mnt / web, / mnt / mail.

Далі монтуємо розділи в щойно створені папки, при цьому розділ / монтуємо в / mnt

Тепер потрібно подмонтировать флешку з архівом:

Не забуваємо замінити / dev / da0s1 на те пристрій, яким є флешка у вас.

Можна замість флешки подмонтировать віндового кулі. Перед монтуванням кулі необхідно не забути налаштувати мережу або через sysinstall, або відразу c допомогою ifconfig:

user - ім'я користувача кулі, comp - ім'я комп'ютера в мережі shara - ім'я кулі

Отже, у нас є бекап, є подмонтіровать розділи майбутньої системи. Тепер можна почати відновлення. Для цього редагуємо скрипт fsrestore.sh. У ньому потрібно змінити тільки два рядки:

Після цього запускаємо скрипт і чекаємо завершення. Краще бекап скопіювати куди-небудь локально, і потім запускати відновлення. Так буде швидше і надійніше. Після завершення відновлення, перевіряємо файли. В даний момент в папці / mnt повинна знаходитися копія нашого сервера.

Зараз потрібно внести деякі зміни в конфігурацію. Насамперед обов'язково потрібно відредагувати файл / mnt / etc / fstab так як імена дисків в різних серверах можуть бути різними. На початковому сервері у мене було дзеркало ar0. переніс ж я на одиночний хард ad4. Відповідно, міняємо в fstab ar0 на ad4. Тут же можна поміняти мережеві і інші настройки в rc.conf але це вже не критично. Все інше можна буде змінити завантажившись в системі. Якщо ж ми відредагувати fstab, то, швидше за все, ми не завантажити.

Після відновлення перезавантажуємо комп'ютер, витягуємо live-cd, логіном в систему. Залишилося виконати останню дію. Разом з безпосередньо архівом fsbackup створює файлик з правами доступу і власниками на всі файли і папки в архіві. Файл цей має розширення .dir Під час відновлення скрипт не відпрацьована і не розставив потрібні права, так як шлях відновлення був не в / а в / mnt /, тому шляху в файлі не збігалися з шляхом відновлення. Так що тепер нам потрібно вручну виконати цей файл, щоб повністю відновити всі права і власників. Для цього ставимо йому права на виконання і запускаємо. Після його виконання ми маємо точну копію системи.

Все описане власноруч перевірялося багато разів. Дуже просто і зручний спосіб відновлення або перенесення freebsd сервера.

Додаткові матеріали по Freebsd