Полное восстановление системы Linux

20

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

Что я пробовал в прошлом:

  1. Сделать базовый формат / переустановить с установочных дисков Fedora
  2. Убедитесь, что сеть включена
  3. Скопируйте все из резервной копии rsync поверх недавно установленной системы

Этот способ работает, но я не думаю, что каждый установленный пакет работает на 100% позже.

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

Саймон Фостер
источник
Когда вы говорите, что хотите установить на другие машины, вы имеете в виду другие «идентичные / машины» или больше как настольный компьютер и ноутбук?
Ichorus
аппаратное обеспечение было бы другим, но им нужны одни и те же пакеты программного обеспечения
Simon Foster

Ответы:

17

Вот что я сделал (предполагается, что один диск, в / 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 (спасибо commenter Mark), чтобы заставить ядро ​​перечитать таблицу разделов.

  • Смонтируйте все разделы в / restore /. Я делаю точки монтирования идентичными при восстановлении, поэтому, если у меня есть / boot, / var в моем источнике, я получаю / restore / boot, / restore / var и т. Д.

  • используйте rsync, чтобы восстановить все.

kbyrd
источник
3
Я делал это несколько раз, и у меня есть преимущество использования стандартных команд командной строки linux. Я использую rsnapshot, скрипт perl для rsync, для создания резервных копий на центральный сервер. Затем rsync вернул все обратно после загрузки из sysrescuecd и добавления таблицы разделов. Кстати, «partprobe» перечитает таблицу разделов
Марк Портер
ОК, это может рассматриваться как мерзкий взлом, но, поскольку вы можете заставить ядро ​​перечитать таблицу разделов, выполнив sysctl (), как это делает fdisk, вы также можете иметь fdisk - что, в отличие от partprobe, всегда в моем опыте - делать это: fdisk / dev / yourdisk << EOF w EOF
Бернд Хауг
Спасибо за все предложения, я знал, что должно быть лучшее решение. Попробую эти предложения и посмотрим, что лучше для меня.
Саймон Фостер
3
Не забывайте считать с дд! "dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1" и "dd bs = 512 if = / path / to / sda.layout of = / dev / sda count = 1"
Стивен
@ Стивен: Дерьмо! Спасибо за улов. Могу ли я проголосовать за комментарий?
kbyrd
6

Я никогда полностью не клонирую системы. Вы никогда не знаете, что может измениться, и клонированный образ вашей системы уже устарел, когда произойдет одно изменение. Лучший способ сделать это - создать процедуру, которая позволит вам создавать функционально идентичные системы. Одной из возможностей является что-то вроде Kickstart, AutoYaST или аналогичных инструментов. Сохраняйте хорошие резервные копии своей конфигурации и в идеале используйте систему управления конфигурацией, такую ​​как Bcfg2, Puppet или CFEngine, чтобы конфигурировать все, а не делать это вручную. Затем, когда вам нужно создать новую систему, похожую на другую, которая у вас есть, или воссоздать существующую систему, это простая и четко определенная процедура.

Камил Кисиэль
источник
3

Это потребует больше усилий, но Kickstart и Revisor позволяют настроить установку и использовать ее на других машинах. Вы можете включить настроенные версии ваших файлов настроек.

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

dkaylor
источник
2

Возьмите копию компакт-диска восстановления системы , и после первоначальной минимальной установки загрузитесь с нее, смонтируйте и выполните chroot на свой диск, а затем выполните rsync. После его завершения вам может понадобиться запустить update-grub, чтобы загрузить его с правильного загрузочного устройства и ядра.

PGS
источник
2

Я всегда думал, что способ установки новой системы Gentoo (из резервной копии или иным способом) был лучшим из-за ее простоты.

  1. Создать работающую, минимальную систему.
  2. Загрузите рабочую систему как жесткий диск в livecd.
  3. Запакуйте файловую систему и сохраните где-нибудь.
  4. Загрузите целевую систему с помощью livecd.
  5. Подготовьте целевой жесткий диск и установите его.
  6. Разархивируйте на жесткий диск.
  7. Введите chroot.
  8. Настройте загрузчик и другие системные вещи.
  9. Перезагрузись и иди.
  10. Установите новое программное обеспечение / скопируйте пользовательские папки / добавьте другие файлы по мере необходимости.
andrewd18
источник
2

Попробуйте Clonezilla Live CD. Вы можете загрузить сеанс в реальном времени и создать образ своей машины без необходимости что-либо устанавливать. Затем у вас есть возможность сохранить копию изображения на сетевом ресурсе или на удаленном компьютере и т. Д.

TimK
источник
0

Если это точно такая же машина, я бы просто использовал ее ddдля создания образа диска, а затем заново изобразил его по мере необходимости (возможно, изменив некоторые конфигурации впоследствии, если это будет необходимо).

Если вы меняете аппаратное обеспечение, у меня был некоторый успех при создании tarball или полной резервной копии rsync корня файловой системы. Я не уверен, зачем вам сначала нужна полная установка - пока вы делаете полную резервную копию, базовая установка Fedora не должна быть предварительным условием.

Тим
источник
0

Ваша процедура может вызвать многочисленные проблемы, и ее следует избегать.

Есть два основных рекомендуемых способа сделать это, и третий, если вы просто пытаетесь создать среду разработки.

обработки изображений

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

Для создания реальных изображений я бы порекомендовал любой инструмент или продукт, который может клонировать жесткие диски.

Конфигурация / Резервное копирование домашнего каталога

На своей основной машине регулярно выполняйте резервное копирование (любым удобным для вас способом), какой из следующих каталогов (или других) вам требуется:

/ home - все личные настройки пользователя, документы и файлы
/ etc - configurations
/ opt - специальное программное обеспечение не установлено через менеджер пакетов
/ usr / local - специальное программное обеспечение не установлено через менеджер пакетов
/ var - logs и т. д.

При восстановлении переустановите операционную систему на соответствующих компьютерах, а затем скопируйте каждый из них (или только соответствующие файлы) в нужное место.

Виртуальные машины со снимками

Создайте виртуальную машину в VMWare (или как вам угодно). Когда он настроен так, как вы хотите, создайте снимок. Этот моментальный снимок затем можно легко восстановить на любое количество новых или существующих виртуальных машин.

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

Визуализация является решением грубой силы. Если вы можете, просто сделайте резервную копию своих данных и не беспокойтесь о самой ОС. Попытка полностью восстановить это напрашивается на неприятности.

Если вы можете уточнить, каково ваше окончательное намерение, я могу предоставить более подробное решение.

Rym
источник
0

Поскольку вы говорите, что «оборудование будет другим», SystemImager может оказаться очень полезным.

Это всего лишь набор сценариев-оболочек для PXE и ​​Rsync. Поэтому создаваемая им «резервная копия» - это просто полная структура каталогов вашего резервного сервера Linux. Вы можете "CD" в этот каталог и изменить вещи вокруг, как вы кормите. (SystemImager самостоятельно управляет изменением настроек сети при выталкивании изображения.)

Вы можете зайти на свой резервный сервер и запустить yum или apt для установки программного обеспечения, прежде чем вытолкнуть образ.

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

Не сейчас
источник
0

Мне очень повезло с Mondo Rescue. В основном он создает резервные копии всех ваших файлов и разделов на загрузочном компакт-диске для последующего использования. Он может обрабатывать изменения в разделах и дисках.

http://www.mondorescue.org/

JD Frias
источник
0
  • Самый безопасный способ - клонировать целые диски или, по крайней мере, соответствующие разделы и восстанавливать их с помощью Live CD.

  • Другой более экономичный способ - использовать dump (xfsdump для XFS), но в этом случае вам придется заново создавать (форматировать) разделы вручную. Не забудьте создать их с одинаковыми параметрами, особенно с UUID и LABEL.

  • Вы также можете использовать tar с --xattrs параметром для сохранения расширенных атрибутов каждого файла.

Кристиан Чиупиту
источник
1
Современный rsync в Linux имеет -X и -A для расширенных атрибутов и ACL соответственно.
kbyrd
0

partimage и partclone (части Clonezilla) являются полезными утилитами для создания полных образов системы.

Как вы определили, полные образы системы не обязательно переносимы системой: обычно из-за имен устройств.

Это может быть так же просто, как переустановка GRUB (предпочтительно на отдельном / загрузочном разделе) и MBR после создания образа (например, с LiveCD).

Другой подход заключается в использовании инструментов управления конфигурацией для определения политик, которые применяются к базовому образу (например, базовые блоки Vagrant); и отдельные резервные копии данных в блочное и / или объектное хранилище (EBS / S3, Openstack Block Storage / Openstack Object Storage)

Уэс Тернер
источник