The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Резервное копирование и восстановление системного раздела FreeBSD с применением SMB-ресурса
Резервное копирование и восстановление системного раздела 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: После восстановления из дампа, если необходимо, можно поднять зеркало
"вживую" - как это сделать описано в статье
http://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.
 
11.04.2011 , Автор: 62mkv
Ключи: smb, dump, restore, backup, freebsd / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Диски и файлы / Резервное копирование

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, анон (?), 23:50, 10/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Создание дампа
    >Подключить сетевой диск:
    >...
    >Выгрузить конфигурацию слайсов:
    >...
    >Выгрузить конфигурацию разделов:
    >...
    >Восстановление на "левый: винчестер

    Прикольно. А где, собсно, вызов dump для дампа собсно данных?

     
     
  • 2.2, getfr (?), 02:36, 11/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ему и так пойдет, видимо.

    После restore еще в корне файл лишний убить надо, да еще выход из vi не такой замудренный, а после ESC достаточно ZZ.

    Короче, ждем правильную редакцию статьи

     

  • 1.3, 62mkv (ok), 06:09, 11/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    блин, с дампом точно, промазал ;)) как создать дамп подробно расписано у rm-rf.ucoz.ru, поэтому на этом я не сосредотачивался, а вот над восстановлением пришлось повозиться...

    насчет vi - что знал, то и написал.

    да и насчет опций restore есть у меня сомнения... постараюсь в ближайшее время все косяки устранить

     
  • 1.4, 62mkv (ok), 06:15, 11/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    про дамп добавил, жду когда модератор проверит
     
  • 1.5, iZEN (ok), 07:08, 11/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вместо инопланетянского vi надо использовать человеческий ee.
     
     
  • 2.6, анон (?), 16:37, 11/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    особенно классно чувствуют себя любители ее в ситуации, когда всё отвалилось и надо грузиться в single user mode и там что-то править. Мне лично человек звонил и слёзно просил сказать, как выйти из vi, а в идеале - чтобы вся им натворённая вакханалия не сохранилась.
    vi нужно обязательно уметь пользоваться, хотя бы на минимальном уровне. А при достаточном скилле это вообще сумасшедший редактор по своим возможностям
     
     
  • 3.7, iZEN (ok), 18:05, 11/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > vi нужно обязательно уметь пользоваться, хотя бы на минимальном уровне. А при
    > достаточном скилле это вообще сумасшедший редактор по своим возможностям

    Необходимый минимум команд /usr/bin/vi для пользователя обычных редакторов, созданных для стандартных компьютерных клавиатур, а не для телетайпа:
    Переход в режим набора текста: "a"
    Выход из режима набора текста с его сохранением: "ESC:qw"
    Выход из режима набора текста без его сохранения: "ESC:q!"
    ВСЁ. Этого достаточно, чтобы ничего не запортить. В других случаях vi/vim бибикает и всё портит!

    Если не ССЗБ, то лучше использовать /usr/bin/ee с развитой системой меню и наглядных опций редактирования, а то придётся в КАЖДОЙ статье объяснять неофитам, как пользоваться убожищем vi.

     
  • 3.9, анон (?), 00:03, 12/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >А при достаточном скилле это вообще сумасшедший редактор по своим возможностям

    vi умеет только пищать и всё портить. Вот vim - это реально крутой редактор. Жаль, что его в базовую систему не включают.

     
  • 2.10, Анонимка (?), 10:26, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, как меня этот fud порадовал! :)
     
  • 2.13, Аноним (-), 11:01, 20/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вместо инопланетянского vi надо использовать человеческий ee.

    Вечно нужно встрять со своим ее?

     

  • 1.8, daloman (ok), 20:11, 11/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Бывает иногда полезным переопределить переменную окружения TMPDIR, например:



    # export TMPDIR=/mnt/disk1



    Я делаю всегда, особенно, если на машине меньше 1Gb оперативки. Неприятно, когда restore не может записать временные файлы.
     
  • 1.12, Аноним (-), 08:58, 18/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >dd if=/dev/zero of=/dev/ad0 bs=1M count=1000

    Если используются geom модули, то данная команда не верна, т.к. свою информацию они хранят в последних 5МБ. т.е. при такой команде достаточно велика вероятность, что получите в итоге хрен знает что.

     
  • 1.14, gardener (ok), 21:14, 28/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Выгрузить конфигурацию слайсов:
    >
    >   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

     
  • 1.15, dagerys (ok), 15:51, 26/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если кому интересно, немного больше именно текстовой информации о резервном копировании и восстановлении данных, так сказать в дополнение к существующей теме http://4debian.info/posts/administration/id-438-debian-administration-dd-cp.h
     
     
  • 2.16, iZEN (ok), 16:03, 26/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Если кому интересно, немного больше именно текстовой информации о резервном копировании
    > и восстановлении данных, так сказать в дополнение к существующей теме http://4debian.info/posts/administration/id-438-debian-administration-dd-cp.h

    Неинтересно становится сразу после фразы: "В Unix системах существует встроенная программа dd с помощью которой можно провести данные действия.".

    dd не предназначена для резервного копирования.


     
     
  • 3.17, dagerys (ok), 19:44, 26/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > dd не предназначена для резервного копирования.

    При копировании простых файлов в виде баз данных и т.д. - я спорить не буду, поскольку для этого есть более безопасные (в плане ввода команды при ошибке) и удобные решения. Но при создании копий системных разделов - я больше предпочитаю использовать dd в результате получая полностью исходный вариант данных, особенно чувствительно это при обслуживании всяких умников на windows которые каждый месяц обращаются с проблемами (утрирую но суть уловили) восстановление системы сводится к создании копии текущего раздела, восстановлении исходного состояния с установленными программами и драйверами, в последующем переносом нужных файлов с проверкой (например антивирус, если требуется) и все не более чем через час человек снова получает работающий компьютер без потери данных. И еще очень интересно, что даже через всякие акронисы они не могут восстановить тот "негатив", который привел к краху (это про вирусы).

    P.S. Я не в коем случае не настаиваю, что это единственный правильный метод, но к каждой задаче свой подход и это не бесполезный вариант.

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру