Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Восстановление системы или как и что сохранять.  (Прочитано 3386 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Иваныч

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
    • Блог Семенова
Здравствуйте!
Начав плотно работать с Linuxом обнаружил что какой то определенной методики или способа для сохранения/восстановления данных и системы нету. Есть куча приложений с оконным интерфейсом которые запускают стандартные консольные утилиты со своими параметрами. При этом набор функций ограничен тем что создатели програмы посчитали нужным.  А пользоваться ими нужно только тщательно изучив принцип работы. По этому я пришел к выводу, что таким деликатным вопросом нужно заняться самому и сделать свое решение на скриптах. Но не хватает знаний о тонкостях организации файловой системы. Вот прошу форумчан по мере возможностей заполнить пробелы.
И так. Мы имеем работающую систему состояние которой нужно сохранить для последующего восстановления. Как это сделать нужно подумать еще до установки. Я пришел к выводу что для удобства систему нужно устанавливать на разные разделы. (корневая система) /, загрузочная часть (boot), Каталог пользователей (home) (Еще я отдельно делаю диски для var и tmp но это не приципиально).  Теперь встает вопрос как это правильно сохранить. Диск который монтируется в BOOT содержит загрузчик и прочие хитрости, его необходимо копировать "один-в-один".  Я пользуюсь таким скриптом (использую после загрузки с liveCD):
# Задаем разделы
boot="/media/a18c47a3-213b-4fb8-b3f7-9ce996dd66f6" # тут смонтирован раздел boot
aboot="/dev/sdb1" # это физическое устройство boot
adisk="/dev/sdb9" # физический раздел для копирования резервных копий
adir="/media" # папка куда монтируются диски в загруженной системе
apo="/hlam" # папка в которую монтируется диск для резервных копий
# Архивация boot
#
# Идем в каталог для монтирования
cd /
cd $adir
#  создаем и монтируем диск для резервных копий
sudo mkdir $adir$apo
sudo mount $adisk $adir$apo -t ext3
#
# Снимаем образ
cd $adir$apo
sudo dd if=$aboot | sudo gzip > boot2dd.img.gz

В итоге мы получаем файл boot2dd.img.gz который является точной копией загрузочного диска наше


Пользователь решил продолжить мысль 11 Ноября 2009, 22:35:00:
Черт, нечаянно ентер нажал :)

В общем мы получили копию диска с которого загружаемся. И теперь можем востановить загрузочную часть системы в любой ситуации.

А вот как быть дальше? Как сохранять остальную систему?
С помощью DD надежно но не функционально. Как быть с файлами к которым нет доступа? Если под рутом сохранить папку home в архив, то нормально ли она потом востановится?
И есть ли файлы которые требуют одельного подхода к архивации?
Какие папки НЕНАДО сохранять...


Пользователь решил продолжить мысль 12 Ноября 2009, 00:40:57:
Забыл!
Что бы восстановить из архива наш загрузочный диск нам нужно просто из теминала находясь в каталоге с резервной копией выполнить такую команду:
sudo cat boot2dd.img.gz | sudo gunzip | sudo dd of=/dev/sdb1
« Последнее редактирование: 12 Ноября 2009, 00:40:57 от Иваныч »

Оффлайн Tirael

  • Участник
  • *
  • Сообщений: 157
    • Просмотр профиля
нескромный вопрос: а acronis-ом не проще сделать образ тех разделов которые тебе нужны?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Восстановление системы или как и что сохр
« Ответ #2 : 12 Ноября 2009, 01:06:20 »
С помощью DD надежно но не функционально. Как быть с файлами к которым нет доступа?
dd можно использовать только на отмонтированных или смонтированных в read-only системах, т.к. запись на них в момент дампа может оказать губительную роль.

Если под рутом сохранить папку home в архив, то нормально ли она потом востановится?
Да, если это tar-архив.

И есть ли файлы которые требуют одельного подхода к архивации?
Все спец-файлы (устройства, фифо, сокеты, софт/хард-линки). tar их нормально должен обработать в любом случае.

Какие папки НЕНАДО сохранять...
/tmp /proc /sys /lost+found /var/tmp /mnt /media ~/.gvfs(сюда монтируются гномом удалённые и виртуальные файловые системы)

В целом, команда архивирования всей системы должна выглядеть так:
tar cvjf backup.tar.bz2 --exclude=/home/*/.gvfs --exclude=/var/tmp --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys /
В момент архивирования все программы, работающие с файлами лучше будет выключить.
Как это сделать нужно подумать еще до установки.
Также до установки рекомендую посмотреть в сторону менеджера LVM. С ним проще будет делать полные бекапы системы. Он поддерживает снепшоты - мгновенные снимки файловой системы. Т.е. можно будет сделать в такой последовательности: остановить сервисные демоны - сделать снепшот - запустить демоны - сделать бекап со снепшота. При этом на простой демонов на время бекапа не будет тратится время.




Пользователь решил продолжить мысль 11 Ноября 2009, 21:08:29:
нескромный вопрос: а acronis-ом не проще сделать образ тех разделов которые тебе нужны?
Дык весь кайф - это бекапить не останавливая систему.
« Последнее редактирование: 12 Ноября 2009, 01:12:19 от Mam(O)n »

Оффлайн Иваныч

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
    • Блог Семенова
Re: Восстановление системы или как и что сохр
« Ответ #3 : 12 Ноября 2009, 01:39:11 »
С помощью DD надежно но не функционально. Как быть с файлами к которым нет доступа?
dd можно использовать только на отмонтированных или смонтированных в read-only системах, т.к. запись на них в момент дампа может оказать губительную роль.
Да, это это я понял. Поэтому для сохранения загружаюсь с диска. То есть загружаюсь в другой системе. Бекап загрузочного диска редкое дело, так что не функциональность нестрашна.

Если под рутом сохранить папку home в архив, то нормально ли она потом востановится?
Да, если это tar-архив.
И есть ли файлы которые требуют одельного подхода к архивации?
Все спец-файлы (устройства, фифо, сокеты, софт/хард-линки). tar их нормально должен обработать в любом случае.
Вот выделенное красным меня и смущает :) Как я понял tar это не всегда tar. А в чем загвоздка?

Какие папки НЕНАДО сохранять...
/tmp /proc /sys /lost+found /var/tmp /mnt /media ~/.gvfs(сюда монтируются гномом удалённые и виртуальные файловые системы)
В целом, команда архивирования всей системы должна выглядеть так:
tar cvjf backup.tar.bz2 --exclude=/home/*/.gvfs --exclude=/var/tmp --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys /
То что в системе есть cмонтированные диски эта команда учтет?
Как выглядит восстановление потом?  Например вся система убита и диск отформатирован и мы хотим восстановить ее. Загружаемся с LiveCD  а дальше?
Нам ведь нужно что бы папка home из архива раз архивировалась не в текущую папку home, в на диск sda5  и.т.д.  для каждой папки.

В момент архивирования все программы, работающие с файлами лучше будет выключить.
Как это сделать нужно подумать еще до установки.
Также до установки рекомендую посмотреть в сторону менеджера LVM. С ним проще будет делать полные бекапы системы. Он поддерживает снепшоты - мгновенные снимки файловой системы. Т.е. можно будет сделать в такой последовательности: остановить сервисные демоны - сделать снепшот - запустить демоны - сделать бекап со снепшота. При этом на простой демонов на время бекапа не будет тратится время.
Уже читал про LVM но еще не разобрался. Еще много других вещей не усвоено :)

нескромный вопрос: а acronis-ом не проще сделать образ тех разделов которые тебе нужны?
Не проще по нескольким причинам:
1) дорого для личного пользования покупать акроникс.
2) не хочется обрастать лишним софтом когда поставленную задачу делают утилиты самой системы.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Восстановление системы или как и что сохр
« Ответ #4 : 12 Ноября 2009, 02:03:12 »
Да, это это я понял. Поэтому для сохранения загружаюсь с диска. То есть загружаюсь в другой системе. Бекап загрузочного диска редкое дело, так что не функциональность нестрашна.
Ради этого это можно на живой системе на время бекапа отмонтировать или перемонтировать в ro

Вот выделенное красным меня и смущает :)
Ну конечно не только tar может использоваться, просто про другие не знаю. Всё дело в том, что не родные архиваторы (типа rar) не понимают, что кроме файлов и каталогов могут еще и спец файлы существовать. И не все могут права и UID+GID сохранять в архивах.

Как я понял tar это не всегда tar. А в чем загвоздка?
Чего то теперь я не понял, как ты понял. Как это tar не всегда tar?

То что в системе есть cмонтированные диски эта команда учтет?
Она не диски архивирует, а файлы. На то, как что там смонтировано ей пофиг, она на это не смотрит.

Как выглядит восстановление потом?  Например вся система убита и диск отформатирован и мы хотим восстановить ее. Загружаемся с LiveCD  а дальше?
Нам ведь нужно что бы папка home из архива раз архивировалась не в текущую папку home, в на диск sda5  и.т.д.  для каждой папки.
Дальше разбиваем, как надо. Монтируем все, что разбили, т.е. создаем необходимое дерево каталогов для монтирования в каком-нибудь каталоге live-cd системы и монтируем соответствующие разделы. Потом sudo tar -xvjf архивчег.tar.bz2 -C тот_самый_какой-нить_каталог. Sudo важно, чтоб UID/GID восстановить.

Оффлайн Иваныч

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
    • Блог Семенова
Re: Восстановление системы или как и что сохр
« Ответ #5 : 12 Ноября 2009, 02:33:18 »
Чего то теперь я не понял, как ты понял. Как это tar не всегда tar?
А просто часто встречаются фразы типа "используйте правильный tar" или "значит архив создан не tar`ом"
Ну вот я и решил что есть какой то tar который не tar. Ну может какой нибудь  tar2 кто то написал, а народ путается.

То что в системе есть cмонтированные диски эта команда учтет?
Дальше разбиваем, как надо. Монтируем все, что разбили, т.е. создаем необходимое дерево каталогов для монтирования в каком-нибудь каталоге live-cd системы и монтируем соответствующие разделы. Потом sudo tar -xvjf архивчег.tar.bz2 -C тот_самый_какой-нить_каталог. Sudo важно, чтоб UID/GID восстановить.
При архивирование естественно тоже надо sudo использовать иначе просто не сохраняться файлы.

Ну при таком раскладе понятно почему нет полноценных оконных приложений для бекапа системы. В них смысла нету если все можно двумя командами делать.  Но boot раздел все равно нужно через dd копировать, там ведь загрузочная запись. Или tar ее тоже как надо воcстановит?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Восстановление системы или как и что сохр
« Ответ #6 : 12 Ноября 2009, 16:23:36 »
Ну вот я и решил что есть какой то tar который не tar. Ну может какой нибудь  tar2 кто то написал, а народ путается.
Конечно существуют старые версии tar, но это не актуально при использовании последних версий программы. Еще стоит учесть, что tar это прежде всего утилита для создания архива. Сжатием архива занимаются другие программы. Отсюда tar.gz tar.bz2 tar.lzma. Причем сжатие .gz и .bz2 tar внутри себя поддерживает, нужно лишь указать опции -z или -j соответственно форматам.

Но boot раздел все равно нужно через dd копировать, там ведь загрузочная запись. Или tar ее тоже как надо воcстановит?
Нет, boot record не трогает, т.к. он в файловой системе не отображается. Тут еще есть некоторые моменты с MBR. Потом, как-нибудь расскажу.

Оффлайн Иваныч

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
    • Блог Семенова
Нет, boot record не трогает, т.к. он в файловой системе не отображается. Тут еще есть некоторые моменты с MBR. Потом, как-нибудь расскажу.

Спасибо.
Вроде бы разобрался. home папку текущего юзера не получилось правда сделать. Вылетает. Поэтому решил сделать два скрипта. Один архивирует систему без home:
tar cvjf backupnothome.tar.bz2 --exclude=/home --exclude=/var/tmp --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/.Trash-* --exclude=/var/.Trash-* --exclude=/tmp/.Trash-* --exclude=/mnt --exclude=/sys /
Его можно запустить прямо из ситемы.

И второй скрипт запускается перед загрузкой
tar cvjf backuponlyhome.tar.bz2 --exclude=/home/lost+found --exclude=/home/.Trash-* --exclude=/home/*/.gvfs /home
Ну и boot по старому:
dd if=$aboot | gzip > $adir$apo$apo1/lastboot2dd.img.gz
Такой бекап конечно намного меньше того как было раньше, когда я делал образ всех дисков. И бекапится все таки стало удобнее и быстрее. Только жалко проверить качество не получится пока  :)

Пока буду работать над автоматизацией. Надо все в кроне прописать и забыть. И в grub menu пункт "откатить систему".

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
В продолжение про MBR и GRUB.

По крайней мере до второй версии груба оно было так. Из за лимитированного объема загрузочной записи, GRUB разделен на две части - stage1 и stage2 соответственно. Бывает еще и промежуточный stage 1.5, но я его не буду больше упоминать. Так вот stage1 может находится в MBR (главная загрузочная запись) или в VBR (загрузочная запись на разделе диска). Причем, в случае с VBR его должен сначала загружать какой-нибудь загрузчик из MBR. Но всёже, в основном, stage1 ставится в MBR. А вот stage2 находится не в BR (загрузочной области), а непосредственно на разделе /boot в файловой системе. Для его загрузки, в stage1 жестко прописан номер раздела и последовательность блоков на диске. Так вот, если перезаписать этот stage2 на /boot разделе, то система возможно не будет грузится, т.к. может поменяться физическое расположение файла. Чтобы это исправить нужно будет обновить stage1. То есть по-сути переустановить grub.

Так к чему я это.
  • Восстановление /boot из дампа не восстановит stage1 в mbr, если он там был.
  • Если идет восстановление на новой таблице разделов (типа новый диск и всё такое), то порядок разделов должен быть идентичным.
Так вот, чтоб было универсальнее, нужно еще и восстановитель груба делать. А при этом, можно не беспокоится о сохранении точного образа /boot и бэкап хранить в таре.

Все вышеописанное мной, к сожалению всего-лишь мои теоретические познания, на практике я это не применял.

Вроде бы разобрался. home папку текущего юзера не получилось правда сделать. Вылетает.
А как вылетает? На что ругается?

И в grub menu пункт "откатить систему".
Вот это уже интересно! Причем, если это автоматизировать так, чтоб можно было выбирать, что откатить. Да и если еще вместо tar использовать инкрементальный backup, то будет вообще круто!


Вот бы еще какую-нить версионную ФС опробовать для /, исключив /home /var и всякую хню, к системе не относящейся...  Было бы еще интересней.

Оффлайн Иваныч

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
    • Блог Семенова
. Так вот, если перезаписать этот stage2 на /boot разделе, то система возможно не будет грузится, т.к. может поменяться физическое расположение файла. Чтобы это исправить нужно будет обновить stage1. То есть по-сути переустановить grub.
Так к чему я это.
  • Восстановление /boot из дампа не восстановит stage1 в mbr, если он там был.
  • Если идет восстановление на новой таблице разделов (типа новый диск и всё такое), то порядок разделов должен быть идентичным.
Так вот, чтоб было универсальнее, нужно еще и восстановитель груба делать. А при этом, можно не беспокоится о сохранении точного образа /boot и бэкап хранить в таре.

Все вышеописанное мной, к сожалению всего-лишь мои теоретические познания, на практике я это не применял.
Хм... Ну это пробовать надо. Но по моему нет смысла в специальном размещение stage1. Достаточно того что MBR у нас там где он есть. Хотя может разработчики GRUB другого мнения. Жаль нечем посмотреть снимаемые образы. Так бы можно было посмотреть что и куда записывается.

Цитата: Mam(O)n
Вроде бы разобрался. home папку текущего юзера не получилось правда сделать. Вылетает.
А как вылетает? На что ругается?

У меня несколько процессов которые кеш постоянно скидывают на винт, вот он на них спотыкался. Писал что то типа "Завершение из за предыдущих ошибок". 

Цитата: Mam(O)n
И в grub menu пункт "откатить систему".
Вот это уже интересно! Причем, если это автоматизировать так, чтоб можно было выбирать, что откатить. Да и если еще вместо tar использовать инкрементальный backup, то будет вообще круто!

Вот бы еще какую-нить версионную ФС опробовать для /, исключив /home /var и всякую хню, к системе не относящейся...  Было бы еще интересней.



А tar не умеет делать инкрементальный архивов? В принципе у него ведь для это все данные есть. Время доступа, права, размер. Надо только просканировать диск и взять то что изменилось. Правда тогда я думаю система будет 24 часа в сутки "бекапиться" :) Работать вообще не будет.

А насчет восстановления из загрузки. Это ведь должно быть несложно по идее? Нужно просто создать еще один раздел с системой и прописать в его загрузочных конфигах скрипты которые развернут бекап.  А в конце перезагрузка.
И прописать в меню grub это дело.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Восстановление системы или как и что сохр
« Ответ #10 : 12 Ноября 2009, 22:40:32 »
Достаточно того что MBR у нас там где он есть.
MBR он и в убунту MBR. Master Boot Record. Это часть диска а не программа, находящаяся в начале оного, перед таблицей разделов, где размещается программа загрузки. VBR, Volume Boot Record, это часть раздела(partition) на диске, где тоже может размещаться загрузчик. Так я говорил о том, что stage1 может находится как в MBR так и на каком-нить из VBR. Но это редко бывает. Так вот, если слетит stage1 в MBR, то на этот случай желательно тоже припасти артиллерию, т.е. кроме раздела на диске, еще и LiveCD склепать такойже тематики.

Жаль нечем посмотреть снимаемые образы. Так бы можно было посмотреть что и куда записывается.
Так в mcedit есть редактор hexов. Или ghex гуёвый. Да и груб сам наверное умеет рассказать всё о себе.

У меня несколько процессов которые кеш постоянно скидывают на винт, вот он на них спотыкался. Писал что то типа "Завершение из за предыдущих ошибок". 
Вот тут то какраз и LVM помог-бы. Хотя я чтото невидел таких ситуаций, чтобы файл невозможно было прочитать из за записи в него. Тут чтото другое похоже. Если в tar -v убрать, то он должен только ошибки сыпать в консоль. Кстати их неплохо было бы тоже сохранять при бекапе в качестве лога, т.е. перенаправить вывод stderr в файл с помощью 2>filename.log на кноце команды.

А tar не умеет делать инкрементальный архивов? В принципе у него ведь для это все данные есть. Время доступа, права, размер. Надо только просканировать диск и взять то что изменилось. Правда тогда я думаю система будет 24 часа в сутки "бекапиться" :) Работать вообще не будет.
Плин, попутал. Я хотел сказать дифференциальную. Тогда даже быстрее бекапится будет, т.к. в архив попадут только изменения.

А насчет восстановления из загрузки. Это ведь должно быть несложно по идее? Нужно просто создать еще один раздел с системой и прописать в его загрузочных конфигах скрипты которые развернут бекап.  А в конце перезагрузка.
И прописать в меню grub это дело.
Да, всё верно, ничего сложного. Минимальную систему поставить на один раздел и её прописать в груб.


Пользователь решил продолжить мысль 12 Ноября 2009, 20:48:06:
офф. Пипец, думаю всё, крыша поехала. Пишу по-русски "убунту", а оно при постинге на "Ubuntu" автоматом заменяется. Ведь помню, что специально по-русски писал. Админы, предупреждать же надо!
« Последнее редактирование: 12 Ноября 2009, 22:48:25 от Mam(O)n »

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
rsnapshot http://www.rsnapshot.org/

rsnapshot (universe)

« Последнее редактирование: 14 Ноября 2009, 03:19:29 от mazut »
Патрикеич.
Под наблюдением.

 

Страница сгенерирована за 0.025 секунд. Запросов: 20.