Резервное копирование и восстановление системного раздела FreeBSD с применением SMB-ресурса в качестве промежуточного хранилища дампа. В любой сети, как правило, полно Windows ПК с достаточно большими винчестерами, что позволяет рассматривать SMB-ресурс как удобное средство хранения резервных копий системы.В данной статье описано как можно обеспечить возможность восстановления работоспособной системы "с нуля", все что нужно - это LiveFS CD и корректный дамп работавшей некогда системы. Причем восстанавливать можно и на другое железо, принципиально это не влияет на технологию. Я, в частности, перенес систему с виртуальной машины на аппаратную (правда ОС была голая практически).
Первоисточники (авторам которых огромное спасибо за их труд):
http://rm-rf.ucoz.ru/publ/11-1-0-14
http://sysadmins.ru/post7706741.html#7706741
++ Создание дампа
Подключить сетевой диск:
mkdir /mnt/smb/
mkdir /mnt/smb/backup
mount_smbfs //user@хост/backup /mnt/smb/backup
Выгрузить конфигурацию слайсов:
fdisk -p /mnt/smb/backup/fdisk.cf
Выгрузить конфигурацию разделов:
bsdlabel /dev/ad0s1 > /mnt/smb/backup/bsdlabel.ad0s1
++ Восстановление на "левый: винчестер
Загрузиться с LiveFS CD (для виртуалки - убедиться что выставлена загрузка с CD в первую очередь)
Войти в режим Fixit (CD/DVD)
Для надежности (и только в том случае, если данные на имеющемся винчестере никому не нужны) (я делал это чтобы убедиться что восстановление действительно происходит по-честному) - затираем данные на имеющемся винчестере:
dd if=/dev/zero of=/dev/ad0 bs=1M count=1000
Желательно убедиться что теперь при попытке загрузки с винчестера ничего хорошего не выйдет ;)
Поднять сеть:
ifconfig le0 192.168.0.99 255.255.255.0 192.168.0.1
Для удобства вписываем NetBIOS-имя того ПК, на котором лежит образ, в файл hosts:
echo "192.168.0.10 хост" >> /etc/hosts
(проверка : ping backup - должны ходить пакеты)
Нужно помочь mount_smbfs загрузиться:
mkdir /boot/kernel
cp /dist/boot/kernel/smbfs.ko /boot/kernel
cp /dist/boot/kernel/lib*.ko /boot/kernel
Создаем путь для точки монтирования:
mkdir /mnt/smb
mkdir /mnt/smb/backup
Монтируем:
mount_smbfs //user@хост/backup /mnt/smb/backup
cd /mnt/smb/backup/vmtest03
Восстанавливаем таблицу слайсов:
fdisk -f fdisk.cf /dev/ad0
возникает предупреждение (Class not found), а также возможно ругательство на геометрию раздела - игнорируем !
Восстанавливаем таблицу разделов и стандартный загрузочный код:
bsdlabel -R -B /dev/ad0s1 bsdlabel.ad0s1
Инициализируем UFS на разделе куда будем разворачивать root:
newfs /dev/ad0s1a
Монтируем его:
mkdir /mnt/root
mount /dev/ad0s1a /mnt/root
Восстанавливаем содержимое:
cd /mnt/root
restore -vxf /mnt/smb/backup/root.dump
Извлекаем CD, перезагружаемся.
Внимание ! Если код устройства тома, на который вы восстанавливаете, отличается от кода устройства при создании (например был ad0, стал ad6), придется вручную подключать root и править /etc/fstab
Запускаем редактор:
vi /etc/fstab
По умолчанию мы оказываемся в "командном" режиме. Переводим курсор в то место, где нам надо заменить символы, например в строку с текстом /ad0s1a под 0. Жмем "x" - 0 удаляется. Теперь жмем "i". Перешли в режим вставки. Жмем 6. Получилось /ad6s1a. Жмем Esc. Теперь мы снова в командном режиме. Жмем ":" - переходим в командную строку vi. Жмем "wq" и Enter - команда "сохранить и выйти".
PS: После восстановления из дампа, если необходимо, можно поднять зеркало "вживую" - как это сделать описано в статье http://www.opennet.me/base/sys/freebsd_gmirror_raid1.txt.html Винчестер 120 Гб дублируется (без прочей нагрузки) примерно за час - полтора.
URL:
Обсуждается: http://www.opennet.me/tips/info/2561.shtml