Убунтология

Популярное содержимое

Бэкап или быстрый способ вернуть "все как было"

 

Автор статьи: SergeA

 

Введение

Если вы хотите иметь точку отката для вашей операционной системы, т.е. при необходимости восстановить "все как было" в случае неудачного эксперимента - необходимо освоить способы создания образов разделов. В нашем случае необходимо снять образ с корневого раздела, и других системных разделов кроме /home (домашнего раздела) и swap (раздела подкачки), если таковые имеются.

Для этого существует множество проприетарных (коммерческих) программ, таких как Norton ghost, Acronis True Image и другие, но описание работы с ними вы можете найти в соответствующей литературе, а мы рассмотрим применение штатной линуксовой утилиты — dd.

Эта утилита работает с блочными устройствами (например, раздел диска /dev/sda1, флешка /dev/sdh1) и создает их посекторные копии. Что это значит — а то, что для dd нет такого понятия как файл, каталог, занятое место, свободное место — она считывает сектора жесткого диска и может сохранить эту информацию уже как файл-образ. Преимущества этой утилиты являются одновременно и ее недостатками — размер файла-образа будет в точности равен размеру копируемого раздела, т. е. если мой корневой каталог находится на разделе в 20 ГБ, из которых занято только 5 ГБ, то размер файла-образа будет ровно 20 ГБ. Согласитесь, малозаманчивая перспектива хранить такие огромные файлы.

Ее синтаксис:

dd if=/dev/sda1 of=file.img

,где /dev/sda1 — это жесткий диск, с которого снимается образ, а file.img — создаваемый файл-образ.

Причем, здесь перечислены только минимально необходимые параметры (см. man dd).

Чтобы не сохранять образ такого громадного размера на диске (да и просто может не быть столько свободного места), мы воспользуемся архиваторами: gzip, bzip или bzip2, включенными в конвейер с утилитой dd. Результат работы архиватора будет налету перенаправляется в файл.

Определение наименований разделов

Итак, создадим копию корневого раздела (домашний каталог трогать не будем), но, сперва нам надо выяснить кто есть кто, т.е. точные наименования разделов. Это предельно важный момент, потому что если вы неправильно укажете раздел при развертывании образа, то безвозвратно потеряете данные на разделе, который ошибочно указали в качестве целевого. (Но не следует думать, что такой проблемы не в проприетарных программах - там дела обстоят еще хуже, например, Acronis True Image назначает буквы разделам, которые не всегда совпадают с буквами в самой Windows, и расположены они в другом порядке, поэтому единственный "маячок" - это размер раздела и его метка, если она прочиталась. В линуксе все намного проще - наименования разделов сами по себе не меняются никогда!)

Запустим команду: df -h и посмотрим на результат:

df -h
/dev/sdb1               20G  3,4G   16G  19% /
/dev/sdb11             19G   12G  5,8G  67% /home

Мы видим, что наш корневой раздел находится на разделе /dev/sdb1 — следовательно его и будем «бэкапить» (а при восстановлении в него будем развертывать образ!), осталось только решить — куда записывать файл-образ. Я запишу в домашний каталог (/dev/sdb11) - место есть, да и скорость записи будет выше, но хранить бэкапы лучше на сменных носителях - флешки, USB жесткие диски и т.д., поэтому после проверки контольной суммы (см. раздел "развертывание образа") образ необходимо перенести.

Примечание: я исхожу из того, что система установлена на 3 раздела: /, /home и swap, если у вас больше, то надо делать бэкап и остальных разделов. В случае же если /home находится на одном дисковом разделе с корневым, то он автоматически попадет в бекап, но сохранять в нем файл-образ будет невозможно! Для сохранения воспользуйтесь другими разделами или устройствами.

Создание образа раздела

В процессе работы системы постоянно создаются и изменяются файлы (логи), поэтому нецелесообразно делать бекап корневого раздела из-под запущенной с него же системы - контрольные суммы могут не совпасть, поэтому загружаемся с Live CD ubuntu и начинаем работу.

Прежде всего нам необходимо примонтировать диск, на который будем записывать файл-образ. Я возьму домашний каталог хост системы (напомню, что он у меня на отдельном дисковом разделе /dev/sdb11), его и необходимо примонтировать:

sudo mount -o rw /dev/sdb11 /media

Теперь проверим что получилось:

ubuntu@ubuntu:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
aufs                  502M  223M  280M  45% /
......................................................................
......................................................................
none                  502M     0  502M   0% /lib/init/rw
/dev/sdb11             19G   17G  379M  98% /media

Теперь мой "домашний" каталог доступен на запись по адресу: /media/serg/

Для того чтобы снять образ с корневого раздела (/dev/sdb1) монтировать его не требуется.

Итак, бэкапим корневой раздел, но для этого нам потребуются права РУТA (sudo -i т.к простое sudo с командой в этом режиме не работает).

sudo -i
dd if=/dev/sdb1 bs=8096 | gzip -9cf > /media/serg/root.gz

Где bs=8096 - это размер блока одновременно считываемых и записываемых данных в байтах.

Примечание: если у вас недостаточно места в домашнем каталоге или он расположен на одном разделе с корневым - необходимо примонтировать другой диск и прописать полный путь для сохранения образа, (например, у вас есть раздел, смонтированный в /media/films, то команда будет выглядеть так: dd if=/dev/sdb1 bs=8096 | gzip -9cf > /media/films/root.gz изменится и путь для обращения к файлу-образу при восстановлении).

Учтите — это долго и нудно, так что придется подождать.

Мы создали сжатый gzip`ом файл-образ корневого раздела root.gz, его размер 7,6 ГБ, что гораздо меньше чем самого корневого раздела (20ГБ).

Возможно возникнет вопрос - как же так, занято всего 5 ГБ, а архив занимает 7,6 ГБ - отвечаю - это результат сжатия не моих файлов, а 20 ГБ образа, созданного утилитой dd.

Чтобы убедиться в безошибочности работы архиватора, создадим контрольную сумму нашего исходного раздела, а проверим ее после развертывания:

Создание контрольной суммы раздела

Посчитаем md5 сумму раздела /dev/sdb1:

dd if=/dev/sdb1 bs=8096 | md5sum - > /media/serg/root.md5

Это контрольная сумма корневого раздела записанная в файл root.md5, к ней мы вернемся чуть позже.

Развертывание образа

Это самый важный и ответственный этап - собственно то, для чего все и затевалось, если с вашей системой случился крах - вы сможете быстро получить назад свою готовую и полностью настроенную систему со всеми установленными программами. (Переустановка не всегда лучший выбор).

Для этого необходимо загрузиться с Live CD ubuntu. Теперь, внимание, при загрузке с Live CD разделы жесткого диска не примонтированы, (а без доступа к домашнему каталогу хост системы мы не сможем обратиться к файлу-образу!), поэтому необходимо сделать это вручную. Вы помните, что наш домашний каталог /home/serg лежал в /dev/sdb11, монтируем его:

 

sudo mount /dev/sdb11 /media

Теперь мы знаем, что наш файл-образ лежит в /media/serg (это мой домашний каталог — у вас будет свой!).

Примечание: если ваш файл-образ находится на сменном устройстве, то его необходимо подключить физически и примонтировать.

Развертываем образ, но сперва проверим правильность его распаковки:

sudo gunzip -c /media/serg/root.gz | md5sum

Сравните этот результат с тем, что вы создали раньше в файле root.md5:

cat /media/serg/root.md5

Примечание: эту процедуру неплохо бы сделать сразу после создания образа и после переноса бэкапа на сменный носитель.

Они должны совпасть (только вместо ../serg - ваше имя!), теперь развертываем образ (опять нужен РУТ):

sudo -i
gunzip -c /media/serg/root.gz | dd of=/dev/sdb1 bs=8096

Прмечание: несколько раз проверьте правильность указания целевого раздела (у меня это /dev/sdb1, у вас будет свой).

И напоследок проверим, а без ошибок ли все прошло:

sudo dd if=/dev/sdb1 bs=8096 | md5sum

Контрольная сумма свежеразвернутого раздела опять-таки должна совпадать с:

cat /media/serg/root.md5

Если все совпадает — то вы успешно откатили систему к исходному состоянию. Перезагружайтесь и получите свое "все как было". Если система не грузится - переустановите загрузчик.

Примечание: вы можете не создавать контрольную сумму и не проверять правильность распаковки, но тогда нет гарантий безошибочности процесса.

 
линзы acuvue oasys, контактные линзы acuvue oasys цена. . Заказать окна пластиковые под дерево цены разумные Поиск работы по вакансии Секретарь подбор .
  • Архив с марта 1995. Заявка онлайн.
    diamondteam.ru |
  • Каталог татуировок, портфолио. Информация об акциях и спецпредложениях.
    salon-lanet.ru |
  • Подбор подарка по назначению, поводу, цене. Условия доставки.
    happiness-shop.ru |