Резервное копирование и восстановление системного раздела 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
Собственно, создаем дамп:
dump -0aLuf /mnt/smb/backup/root.dump
Восстановление на внешний винчестер
Загрузиться с 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 загрузиться (см. также PPS в конце статьи, п.2):
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 -rvf /mnt/smb/backup/root.dump
rm /restoresymtable
Извлекаем CD, перезагружаемся.
Внимание ! Если код устройства тома, на который вы восстанавливаете, отличается
от кода устройства при создании (например был ad0, стал ad6), придется вручную
подключать root и править /etc/fstab
Запускаем редактор:
vi /etc/fstab
По умолчанию мы оказываемся в "командном" режиме. Переводим курсор в то место,
где нам надо заменить символы, например в строку с текстом /ad0s1a под 0. Жмем
"x" - 0 удаляется. Теперь жмем "i". Перешли в режим вставки. Жмем 6. Получилось
/ad6s1a. Жмем Esc. Теперь мы снова в командном режиме. Жмем ":" - переходим в
командную строку vi. Жмем "wq" и Enter - команда "сохранить и выйти".
PS: После восстановления из дампа, если необходимо, можно поднять зеркало
"вживую" - как это сделать описано в статье
https://www.opennet.ru/base/sys/freebsd_gmirror_raid1.txt.html Винчестер 120 Гб
дублируется (без прочей нагрузки) примерно за час - полтора.
PPS: Если нужно восстановить на уже поднятый gmirror: принципиально все то же
самое, только есть два нюанса:
1) если дамп был создан с обычного adX раздела, то в конфигурации корневого
раздела не будет о GEOM-настройках ни слова, поэтому необходимо исправить
/etc/fstab (вместо /dev/adXsY пишем /dev/mirror/gmZsY), а также добавить строку
'geom_mirror_load="YES"' в /boot/loader.conf - без этого примонтировать корень
с зеркала не удастся.
2) чтобы загрузить gmirror и smbfs с LiveFS CD, можно в меню загрузки LiveFS
выбрать п. 6 "Escape to loader command prompt", ввести в командной строке load
smbfs, load geom_mirror, затем boot.
|