13
января
3

Перенос и бекап FreeBSD с помощью dump/restore



С большой долей вероятности может возникнуть ситуация, когда нужно систему перенести на другой жесткий диск или другой раздел больший по объему. Например в случае, когда текущий диск «сыпется» или раздел (в Windows-понимании) для FreeBSD является недостаточным по месту, а систему переустанавливать не хочется. Наилучшим и самым простым решением для этого будет воспользоваться утилитами dump/restore и sysinstall.

Я надеюсь, что вам уже приходилось создавать разделы на Freebsd, поэтому ограничусь только перечислением опций которые необходимо указать и последовательностью действий.Для начала нужно создать слайс FreeBSD. Загружаемся с образа, идем в «Configure», потом «Fdisk», а далее выбираем либо новый жесткий диск либо текущий, где нужно создать слайс на одном из разделов. На доступном пространстве диска или отдельном разделе нужно сделать «Create Slice», получив в полях Desc и Subtype значения freebsd и 165. Далее выставляем флаг «Set Bootable» и записываем все что было проделанно на диск с помощью «Write Changes». После выхода спросит про установку Boot Manager в MBR на данном диске. Выбираем «Standard» если производится перенос системы на новый диск, либо «BootMgr», что будет полезно, если установлено несколько ОС на диске.Создаем FreeBSD-разделы (партиции) новой системы. Заходим в редактор разделов «Label» и с помощью «Create» последовательно назначаем нужный объем новому корневому разделу, swap, var, usr. При указании размера можно указывать число и символ «G», который позволяет указать размер в гигабайтах. Командой «Write» будет произведено форматирование и создание файловой системы (утилитой newfs).

Далее загружаемся в старую систему и монтируем новые разделы во временные директории для переноса данных. Желательно миграцию производить в однопользовательском режиме, но не обязательно. Смотрим какие новые файлы устройств появились для диска с которым работаем и монтируем в соответствующие директории.

mkdir /new.root /new.var /new.usr
ls -lh /dev/ad4*
mount /dev/ad4s1a /new.root
mount /dev/ad4s1e /new.var
mount /dev/ad4s1d /new.usr 

Обычное копирование нельзя использовать и с помощью tar также не удастся перенести систему. Для данных целей подходит только встроенная утилита dump, которая делает снимок (snapshot) смонтированной файловой системы для последующей работы с ним (копирования). Теперь можно сделать dump для каждого старого раздела, направив вывод в соответствующий новый, следующим образом:

( dump -0f - / ) | ( cd /new.root ; restore -rf - )
( dump -0f - /var ) | ( cd /new.var ; restore -rf - )
( dump -0f - /usr ) | ( cd /new.usr ; restore -rf - ) 

После вышеописанных действий правим /new.root/etc/fstab, перепроверив утилитами df, mount, что ошибок допущено не было, и загружаемся с нового места.

Следует заметить, что утилита dump является надежным и безопасным средством для использования также в целях создания резервных копий разделов системы. dump и restore — это традиционные программы в UNIX-системах для резервного копирования. dump делает бекап всей файловой системы, располагающейся на устройстве (целого диска или любого, отдельно взятого раздела). Обладает возможностью создания полной резервной копии (флаг «-0») или инкрементальных дампов (только изменённые файлы). Для создания инкрементного архива в опциях команды указывается уровень дампа от 1 до 9 (0 – это полный архив). Restore предназначена для восстановление данных. После полной копии восстанавливаются инкрементные архивы, в порядке их создания.

Например, для создания и восстановления корневого раздела можно воспользоваться следующими командами (скомпоновав работу с утилитой сжатия gzip):

dump -L -0 -f - / | gzip >  /backup/root.img.gz
gzip -cd  /backup/root.img.gz  | ( cd / ; restore -rf - ) 

Применяемые опции:
-L – дамп снимается с «живой» файловой системы, т.е. она смонтирована в режиме запись/чтение (при ее использовании создается снимок в директории .snap, корневого раздела, который будет удален по завершению работы dump);
-f – писать в файл (по умолчанию вывод направлен на стример).

Понравилась статья?
Подписаться на RSS feed
3 комментария:
  1. tehnikpc 2 августа, 2012

    «Наилучшим и самым простым решением для этого будет воспользоваться утилитами dump/restore»
    Не получится начиная с 9-й версии потому, что dump пока не поддержует файловую систему «journaled soft-updates».

  2. nero777 10 октября, 2012

    ну не совсем согласен про tar. Попробовал заархивировать всю систему freebsd 9.0, а затем всё восстановил совершенно на другом винте.,включая и MySQL-базы.

  3. foxiys 18 декабря, 2012

    «Не получится начиная с 9-й версии потому, что dump пока не поддержует файловую систему «journaled soft-updates»»

    Имхо, чистая правда, лично проверял(полный зависон, исправляется жесткой перезагрузкой:)). А раз dump не работает то не работают и снапшоты(работа dump основана на них)
    Ждем, когда пофиксят, надеюсь в 10-ке будет работать, а пока используем tar + dump баз.

Оставить комментарий