Dump & Restore - перенос системы с одного жесткого диска на другой

Версия для печатиОтправить другуPDF version

Предварительно советую ознакомиться с переводом страниц руководства:
restore

На одном из серверов вышел из строя один из HDD, собранных в RAID 1 с помощью gmirror. Систему запустил на одном HDD, отредактировав /etc/fstab. Поскольку HDD были небольшого размера (80 GB), решил заменить их более обьемными. Соответственно необходимо реализовать задачу переноса работающей системы на новый HDD, а потом уже снова собирать RAID.

Версия установленной FreeBSD - 6.2:

# uname -prs
FreeBSD 6.2-RELEASE-p8 i386

HDD разбит на следующие разделы:

# df -h

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    989M     54M    856M     6%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    3.9G    1.9G    1.6G    54%    /home
/dev/ad4s1e    989M    1.4M    909M     0%    /tmp
/dev/ad4s1f     12G    3.1G    7.6G    29%    /usr
/dev/ad4s1g     54G     45G    4.5G    91%    /var

Информация о текущем HDD:

# cat /var/run/dmesg.boot | grep ad4
ad4: 76319MB <WDC WD800AAJS-00PSA0 05.06H05> at ata2-master SATA150
Trying to mount root from ufs:/dev/ad4s1a

Листинг /etc/fstab следующий:

# cat /etc/fstab

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad4s1b             none            swap    sw              0       0
/dev/ad4s1a             /               ufs     rw              1       1
/dev/ad4s1d             /home           ufs     rw              2       2
/dev/ad4s1e             /tmp            ufs     rw              2       2
/dev/ad4s1f             /usr            ufs     rw              2       2
/dev/ad4s1g             /var            ufs     rw              2       2

Установим дополнительно новый HDD и проверим, как он инициализируется системой. Определился он как ad6:

# cat /var/run/dmesg.boot | grep ad6
ad6: 476940MB <SAMSUNG HD502HJ 1AJ10001> at ata3-master SATA150

Старый HDD размером 80 GB, новый - 500 GB. Поэтому подкорректируем размеры разделов. Новая схема разбивки:

  • / - 1 GB
  • /home - 4 GB
  • /tmp - 2 GB
  • /usr - 20 GB
  • swap - 2 BG
  • /var - остальное

Создадим в /mnt каталоги по количеству существующих файловых систем:

# mkdir /mnt/root
# mkdir /mnt/home
# mkdir /mnt/tmp
# mkdir /mnt/usr
# mkdir /mnt/var

Следующий шаг - разбивка диска ad6. Воспользуемся утилитой sysinstall. Sysinstall -> Configure -> Fdisk.

Выбираем диск ad6. Жмем клавишу "А", поскольку будем использовать весь диск. И не забываем сделать диск загрузочным - необходимо нажать клавишу "S" - напротив слайса должен появиться флаг "А". Потом необходимо нажать "W", чтобы записать изменения. Система выдаст запрос о необходимости загрузчика. От загрузчика отказываемся в пользу записи в MBR - пункт "Standart". Система должна выдать сообщение, что изменения успешно записаны.

Скриншот разбивки диска с помощью Fdisk:

Fdisk

Запускаем утилиту Label: Sysinstall -> Configure -> Label.

Создаем файловые системы в той же последовательности, что и на первоначальной системе. Создаем с помощью клавиши "С" - Create. В качестве точек монтирования указываем /mnt/root, /mnt/home/mnt/tmp, /mnt/usr и /mnt/var соответственно. Обратите внимание на то, что слайсы файловых систем должны быть идентичны, отличаясь только диском.

Обратите внимание на то, что если сразу указать точку монтирования как /mnt/root, то получим в результате ad6s1d, а нам необходимо ad6s1a, поскольку адресация корневого раздела на ad4 - ad4s1a (см. вывод fstab). Чтобы "обхитрить" систему, указываем точку монтирования как / , а потом жмем клавишу "М" и задаем точку монтирования как /mnt/root. Еще одной особенностью является то, что все разделы сразу создать не получится - система в таком случае ругается на ошибки. Необходимо создать точку монтирования /mnt/root и после ее создания записать изменения, нажав на клавишу "W" - Write. После этого выходим из sysinstall и даем команду на отмонтирование /mnt/root:

# umount /mnt/root

Снова запускаем Sysinstall -> Configure -> Label. Изменяем метку ad6s1a на /mnt/root и создаем остальные файловые системы, жмем "W" - Write для того, чтобы сохранить изменения. Скриншот утилиты Label:

Label

В результате имеем следующие файловые системы:

# df -h

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    989M     54M    856M     6%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    3.9G    1.9G    1.6G    54%    /home
/dev/ad4s1e    989M    1.4M    909M     0%    /tmp
/dev/ad4s1f     12G    3.1G    7.6G    29%    /usr
/dev/ad4s1g     54G     45G    4.6G    91%    /var
/dev/ad6s1d    3.9G    4.0K    3.6G     0%    /mnt/home
/dev/ad6s1a    989M    4.0K    910M     0%    /mnt/root
/dev/ad6s1e    1.9G    4.0K    1.8G     0%    /mnt/tmp
/dev/ad6s1f     19G    4.0K     18G     0%    /mnt/usr
/dev/ad6s1g    423G    4.0K    389G     0%    /mnt/var

Завершив "пляски с бубном" по созданию файловых систем, перезагружаем систему в однопользовательском режиме (пункт 4 в  меню вариантов загрузки FreeBSD - Single User Mode).

Дождавшись приглашения для ввода shell, жмем "Enter", соглашаясь на предложенный /bin/sh. Смонтируем файловые системы, описанные в /etc/fstab:

# mount -a

Следующий шаг - монтирование файловых систем, на которые будем копировать существующие разделы:

# mount /dev/ad6s1a /mnt/root
# mount /dev/ad6s1d /mnt/home
# mount /dev/ad6s1e /mnt/tmp
# mount /dev/ad6s1f /mnt/usr
# mount /dev/ad6s1g /mnt/var

Теперь по очереди переносим каждую файловую систему:

# ( dump -0Lf - / ) | ( cd /mnt/root ; restore -rf - )
# ( dump -0Lf - /home ) | ( cd /mnt/home ; restore -rf - )
# ( dump -0Lf - /tmp ) | ( cd /mnt/tmp ; restore -rf - )
# ( dump -0Lf - /usr ) | ( cd /mnt/usr ; restore -rf - )
# ( dump -0Lf - /var ) | ( cd /mnt/var ; restore -rf - )

После переноса даем команду на останов системы и выключение:

# shutdown -p now

После этого отключаем старый HDD, а на его место ставим новый. Если не допустили никаких ошибок - система корректно загрузится с нового HDD. Если же нет - то скорее всего допущена ошибка в fstab -  внимательно проверяйте, не допустили ли какой опечатки и совпадают ли указанные пути с устройствами в /dev.

 

Ваша оценка: Нет Средняя: 5 (3 голоса)

 Спасибо, весьма помогло в

 Спасибо, весьма помогло в моей проблеме с HDD                    

Рад, что пригодилось - не зря

Рад, что пригодилось - не зря значит писал.

 Создадим в /mnt каталоги по

 Создадим в /mnt каталоги по количеству существующих файловых систем:

 

mkdir /mnt/root
mkdir /mnt/home
mkdir /mnt/tmp
mkdir /mnt/usr
mkdir /mnt/var

 +

Обратите внимание на то, что если сразу указать точку монтирования как /mnt/root, то получим в результате ad6s1d, а нам необходимо ad6s1a, поскольку адресация корневого раздела на ad4 - ad4s1a (см. вывод fstab). Чтобы "обхитрить" систему, указываем точку монтирования как / , а потом жмем клавишу "М" и задаем точку монтирования как /mnt/root. Еще одной особенностью является то, что все разделы сразу создать не получится - система в таком случае ругается на ошибки. Необходимо создать точку монтирования /mnt/root и после ее создания записать изменения, нажав на клавишу "W" - Write. После этого выходим из sysinstall и даем команду на отмонтирование/mnt/root:

umount /mnt/root

_________________________________

 

Совмещаем оба шага:

запускаем сразу sysinstall - label - А - меняем точку монтирования / - выбираем остальные разделы - W (записываем изменения) - выслушиваем ругань, закрываем sysinstall - повторяем процедуру, только теперь все успешно создается.

 

Дальше без всяких перезагрузок, однопользовательских загрузок и подобной чуши:

# cd /mnt/root
# dump -Lf- / | restore -rf-
# cd /mnt/tmp
# dump -Lf- /tmp | restore -rf-

и т.д. 

Если нужно меняем /mnt/root/fstab, перегружаемся с нового винта - профит.

Спасибо за предложенный

Спасибо за предложенный вариант. Нужно будет попробовать.

 Делал по Вашей статье

 Делал по Вашей статье разметку диска, а сам процесс клонирования делал так:

 

# cd / && pax -p eme -X -rw . /mnt/root 

# cd /var && pax -p eme -X -rw . /mnt/var  

 

 

Как говорится: "Есть много

Как говорится: "Есть много способов снять с кота шкуру..."

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература