Я знаком с использованием rsync для резервного копирования различных файлов в моей системе, но каков наилучший способ полностью восстановить машину?
В прошлом я пробовал:
Этот способ вроде как работает, но я не думаю, что каждый установленный пакет после этого работает на 100%.
Я хочу иметь возможность восстановить свою систему с минимальными усилиями, чтобы все работало так же, как в момент создания резервной копии. Также, если возможно, установите на другие машины и, возможно, получите две машины с одинаковыми пакетами и данными.
Вот что я сделал (предполагается, что один диск в / dev / sda)
используйте dd для резервного копирования MBR и таблицы разделов: «dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout»
используйте rsync, чтобы скопировать все, например: "rsync -axvPH --numeric-ids ..."
При восстановлении я делаю это:
загрузите целевую машину с помощью sysrescuecd, У меня обычно есть файл sda.layout на USB-накопителе.
восстановить таблицу MBR / разделов с помощью dd: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"
Используйте partprobe (спасибо комментатору Марка) чтобы ядро перечитало таблицу разделов.
Смонтируйте все различные разделы в / restore /. Я делаю точки монтирования идентичными при восстановлении, поэтому, если у меня есть / boot, / var в моем источнике, я получаю / restore / boot, / restore / var и т. Д.
используйте rsync, чтобы восстановить все.
Я никогда не клонирую системы полностью. Вы никогда не знаете, что может измениться, а ваш системный клонированный образ уже устарел в момент, когда происходит одно изменение. Лучший способ сделать это - установить процедуру, которая позволит вам производить функционально идентичные системы. Одна из возможностей - это что-то вроде Kickstart, AutoYaST или подобных инструментов. Сохраняйте хорошие резервные копии своей конфигурации и в идеале используйте систему управления конфигурацией, такую как Bcfg2, Puppet или CFEngine, чтобы настраивать все, а не делать это вручную. Затем, когда вам нужно создать новую систему, похожую на другую, которая у вас есть, или воссоздать существующую систему, это простая и четко определенная процедура.
Сначала потребуется больше усилий, но Кикстарт и Ревизор позволяют настроить установку и использовать ее на других машинах. Вы можете включить индивидуальные версии файлов настроек.
Вы также можете рассмотреть возможность хранения домашнего каталога в отдельном разделе. Вы можете оставить этот раздел в покое при выполнении чистой установки на другой раздел.
Я всегда думал, что способ Gentoo установки новой системы (из резервной копии или как-то иначе) был лучшим из-за своей простоты.
Возьмите копию cd восстановления системы, и после начальной минимальной установки загрузитесь с него, смонтируйте и chroot на свой диск, а затем выполните rsync. После его завершения вам может потребоваться запустить update-grub, чтобы он загрузился с правильного загрузочного устройства и ядра.
Попробуйте clonezilla live cd. Вы можете загрузиться в живую сессию и создать образ своей машины, не устанавливая ничего. Затем у вас есть возможность сохранить копию изображения на сетевом ресурсе или на удаленном компьютере и так далее.
Если это точно такая же машина, я бы просто использовал dd
чтобы создать образ диска, а затем повторно создать его образ при необходимости (возможно, впоследствии изменив некоторые конфигурации, если это необходимо).
Если вы меняете оборудование, мне удалось создать архив или полную резервную копию корневого каталога файловой системы с помощью rsync. Я не уверен, зачем вам сначала нужна полная установка - пока вы делаете полную резервную копию, базовая установка Fedora не должна быть предварительным условием.
Ваша процедура может вызвать множество проблем, и ее следует избегать.
Есть два основных рекомендуемых способа сделать это, а третий - если вы просто пытаетесь создать среду разработки.
Изображения
Если оборудование, которое вы будете восстанавливать, будет таким же или достаточно похожим, используйте инструмент создания образа диска, чтобы сделать копию всего жесткого диска или массива. Если вы хотите восстановить, просто повторно создайте образ соответствующих машин с этим образом. Если вы создаете образ на нескольких машинах, имейте в виду, что вам нужно будет обновить любые машинные настройки на других устройствах (имя хоста, статический IP-адрес и т. Д.), Чтобы они не конфликтовали друг с другом.
Чтобы создать образ, я бы порекомендовал любой инструмент или продукт, который может клонировать жесткие диски.
Конфигурация / резервное копирование домашнего каталога
На своем основном компьютере регулярно выполняйте резервное копирование (любым способом) любого из следующих каталогов (или других), которые вам требуются:
/ home - все личные настройки, документы и файлы пользователя.
/ etc - конфигурации
/ opt - специальное ПО, не устанавливаемое через менеджер пакетов
/ usr / local - специальное ПО, не устанавливаемое через диспетчер пакетов
/ var - журналы и тому подобное
При восстановлении переустановите ОС на соответствующих машинах, а затем скопируйте каждый из них (или только соответствующие файлы) в надлежащее место.
Виртуальные машины со снимками
Создайте виртуальную машину в VMWare (или как вам удобнее). Когда он будет настроен так, как вы хотите, создайте снимок. Затем этот моментальный снимок можно легко восстановить на любое количество новых или существующих виртуальных машин.
Как правило, следует выполнять резервное копирование только данных и конфигураций (как бы вы их ни определяли). ОС и программное обеспечение можно легко перестроить в любое время: ценно только ваш собственный контент. Если эта настройка предназначена для разработки и вам необходимо обеспечить идентичную среду (а не просто заставить все снова работать), то моментальные снимки на виртуальной машине - действительно ваш лучший выбор.
Визуализация - это решение грубой силы. Если можете, просто сделайте резервную копию своих данных и не беспокойтесь о самой ОС. Пытаться восстановить его полностью - напрасно.
Если вы можете уточнить, каковы ваши конечные намерения, я могу предоставить более подробное решение.
Поскольку вы говорите "оборудование будет другим", SystemImager может очень пригодиться.
Это просто набор сценариев-оберток для PXE и Rsync. Следовательно, «резервная копия», которую он создает, представляет собой всего лишь полную структуру каталогов вашего резервного сервера Linux. Вы можете «cd» в этот каталог и менять что-то по мере того, как вы кормите. (SystemImager управляет изменением сетевых настроек самостоятельно, когда вы выталкиваете изображение.)
Вы можете выполнить chroot на своем резервном сервере и запустить yum или apt для установки программного обеспечения, прежде чем выгрузите образ.
Изменить: вы можете взглянуть на сценарий SI, который создает разделы / логические тома и изменить его в соответствии с размером диска целевых машин. Вы также можете добавлять / удалять модули ядра.
Мне очень повезло с Mondo Rescue. По сути, он создает резервные копии всех ваших файлов и разделов на загрузочный компакт-диск для дальнейшего использования. Он может обрабатывать изменения в разделах и дисках.
partimage может помочь с этим
Самый безопасный способ - клон диски целиком или, по крайней мере, соответствующие разделы и восстановить их с помощью Live CD.
Еще один более эффективный метод - использовать свалка (xfsdump для XFS), но в этом случае вам придется воссоздавать (форматировать) разделы вручную. Не забудьте создать их с одинаковыми параметрами, особенно UUID и LABEL.
Вы также можете использовать деготь с --xattrs
параметр для сохранения расширенных атрибутов каждого файла.
partimage и partclone (части Clonezilla) - полезные утилиты для создания полных образов системы.
Как вы определили, полные образы системы не обязательно переносимы в систему: обычно из-за имен устройств.
Это может быть так же просто, как переустановка GRUB (желательно в отдельном / boot разделе) и MBR после создания образа (например, с LiveCD).
Другой подход - использовать инструменты управления конфигурацией для определения политик, которые применяются к базовому изображению (например, базовые блоки Vagrant); и разделять резервные копии данных в блочное и / или объектное хранилище (EBS / S3, Openstack Block Storage / Openstack Object Storage)