Скрипт переноса системы на другой физический диск

Задача: есть установленная и настроенная система на одном из дисков. Нужно ее скопировать со старого диска на новый диск с целями резервного копирования, или же подмены старого диска новым.

Этапы: 1. грузимся в однопользовательский режим либо же с Rescue-диска (например, Frenzy). В однопользовательском режиме не забываем:

fsck -p 
mount -u / 
mount -a 
swapon -a 
adjkerntz -i 

2. размечаем и создаем файловые системы на диске назначения

3. для каждой исходной файловой системы создаем папку, куда будем монтировать соответствующую файловую систему диска назначения и монтируем файловые системы диска назначения:

mkdir /backup
mkdir /backup/root
mkdir /backup/usr
mkdir /backup/var

mount /dev/ad1s1a /backup/root
mount /dev/ad1s1e /backup/var
mount /dev/ad1s1f /backup/usr

4. Все готово, чтобы сделать перенос:

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

umount /backup/root
umount /backup/var
umount /backup/usr

tunefs -n enable /dev/ad1s1a
tunefs -n enable /dev/ad1s1e
tunefs -n enable /dev/ad1s1f

Заталкиваем это все в скрипт sh, если нужно.

Некоторые замечания.
  1. Во-первых, dump позволяет делать дамп с работающей системы, для этого используется ключ -L
  2. Во-вторых, не обязательно монтировать исходную файловую систему, можно делать дамп прямо с устройства, к примеру:
dump -C16 -0af - /dev/ad2s1a | ( cd /mnt; restore -rf - )
где
- С16 - размер блока в 16Мб
- /mnt точка монтирования файловой системы на диске назначения.

TAG: