====== Скрипт переноса системы на другой физический диск ======
**Задача**: есть установленная и настроенная система на одном из дисков. Нужно ее скопировать со старого диска на новый диск с целями резервного копирования, или же подмены старого диска новым.
Этапы:
**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, если нужно.
Некоторые замечания.
- Во-первых, dump позволяет делать дамп с работающей системы, для этого используется ключ -L
- Во-вторых, не обязательно монтировать исходную файловую систему, можно делать дамп прямо с устройства, к примеру:
dump -C16 -0af - /dev/ad2s1a | ( cd /mnt; restore -rf - )
где
- С16 - размер блока в 16Мб
- /mnt точка монтирования файловой системы на диске назначения.
TAG: {{tag> sysadmin FreeBSD backup shell_scripting }}
~~DISCUSSION~~