Резервное копирование и восстановление системного раздела 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
>Создание дампа
>Подключить сетевой диск:
>...
>Выгрузить конфигурацию слайсов:
>...
>Выгрузить конфигурацию разделов:
>...
>Восстановление на "левый: винчестерПрикольно. А где, собсно, вызов dump для дампа собсно данных?
ему и так пойдет, видимо.После restore еще в корне файл лишний убить надо, да еще выход из vi не такой замудренный, а после ESC достаточно ZZ.
Короче, ждем правильную редакцию статьи
блин, с дампом точно, промазал ;)) как создать дамп подробно расписано у rm-rf.ucoz.ru, поэтому на этом я не сосредотачивался, а вот над восстановлением пришлось повозиться...насчет vi - что знал, то и написал.
да и насчет опций restore есть у меня сомнения... постараюсь в ближайшее время все косяки устранить
про дамп добавил, жду когда модератор проверит
Вместо инопланетянского vi надо использовать человеческий ee.
особенно классно чувствуют себя любители ее в ситуации, когда всё отвалилось и надо грузиться в single user mode и там что-то править. Мне лично человек звонил и слёзно просил сказать, как выйти из vi, а в идеале - чтобы вся им натворённая вакханалия не сохранилась.
vi нужно обязательно уметь пользоваться, хотя бы на минимальном уровне. А при достаточном скилле это вообще сумасшедший редактор по своим возможностям
> vi нужно обязательно уметь пользоваться, хотя бы на минимальном уровне. А при
> достаточном скилле это вообще сумасшедший редактор по своим возможностямНеобходимый минимум команд /usr/bin/vi для пользователя обычных редакторов, созданных для стандартных компьютерных клавиатур, а не для телетайпа:
Переход в режим набора текста: "a"
Выход из режима набора текста с его сохранением: "ESC:qw"
Выход из режима набора текста без его сохранения: "ESC:q!"
ВСЁ. Этого достаточно, чтобы ничего не запортить. В других случаях vi/vim бибикает и всё портит!Если не ССЗБ, то лучше использовать /usr/bin/ee с развитой системой меню и наглядных опций редактирования, а то придётся в КАЖДОЙ статье объяснять неофитам, как пользоваться убожищем vi.
>А при достаточном скилле это вообще сумасшедший редактор по своим возможностямvi умеет только пищать и всё портить. Вот vim - это реально крутой редактор. Жаль, что его в базовую систему не включают.
Блин, как меня этот fud порадовал! :)
> Вместо инопланетянского vi надо использовать человеческий ee.Вечно нужно встрять со своим ее?
Бывает иногда полезным переопределить переменную окружения TMPDIR, например:
# export TMPDIR=/mnt/disk1
Я делаю всегда, особенно, если на машине меньше 1Gb оперативки. Неприятно, когда restore не может записать временные файлы.
>dd if=/dev/zero of=/dev/ad0 bs=1M count=1000Если используются geom модули, то данная команда не верна, т.к. свою информацию они хранят в последних 5МБ. т.е. при такой команде достаточно велика вероятность, что получите в итоге хрен знает что.
> Выгрузить конфигурацию слайсов:
>
> fdisk -p /mnt/smb/backup/fdisk.cfКак написано, у меня не работает. Работает так:
fdisk -p > /mnt/smb/backup/fdisk.cf>Выгрузить конфигурацию разделов:
>
> bsdlabel /dev/ad0s1 > /mnt/smb/backup/bsdlabel.ad0s1А их может быть несколько. Для начинающих, как для меня, следовало бы упомянуть ;)
>Собственно, создаем дамп:
>
> dump -0aLuf /mnt/smb/backup/root.dumpКак я понял из документации, если точек монтирования несколько, то дамп нужно создавать для каждой. И лучше сразу в архив:
dump -0aLuf - [точка монтирования] | gzip -9 > /mnt/smb/backup/[имя точки монтирования].dump.gz
Например, для моего случая:
dump -0aLuf - / | gzip -9 > /mnt/smb/backup/root.dump.gz
dump -0aLuf - /usr | gzip -9 > /mnt/smb/backup/usr.dump.gz
dump -0aLuf - /var | gzip -9 > /mnt/smb/backup/var.dump.gz
Если кому интересно, немного больше именно текстовой информации о резервном копировании и восстановлении данных, так сказать в дополнение к существующей теме http://4debian.info/posts/administration/id-438-debian-admin...
> Если кому интересно, немного больше именно текстовой информации о резервном копировании
> и восстановлении данных, так сказать в дополнение к существующей теме http://4debian.info/posts/administration/id-438-debian-admin...Неинтересно становится сразу после фразы: "В Unix системах существует встроенная программа dd с помощью которой можно провести данные действия.".
dd не предназначена для резервного копирования.
> dd не предназначена для резервного копирования.При копировании простых файлов в виде баз данных и т.д. - я спорить не буду, поскольку для этого есть более безопасные (в плане ввода команды при ошибке) и удобные решения. Но при создании копий системных разделов - я больше предпочитаю использовать dd в результате получая полностью исходный вариант данных, особенно чувствительно это при обслуживании всяких умников на windows которые каждый месяц обращаются с проблемами (утрирую но суть уловили) восстановление системы сводится к создании копии текущего раздела, восстановлении исходного состояния с установленными программами и драйверами, в последующем переносом нужных файлов с проверкой (например антивирус, если требуется) и все не более чем через час человек снова получает работающий компьютер без потери данных. И еще очень интересно, что даже через всякие акронисы они не могут восстановить тот "негатив", который привел к краху (это про вирусы).
P.S. Я не в коем случае не настаиваю, что это единственный правильный метод, но к каждой задаче свой подход и это не бесполезный вариант.