Возможно ли сделать горячую копию системы?

10

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

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

grub-install  /dev/sdc1 

но я получил эту ошибку:

The file /boot/grub/stage1 not read correctly.

Я знаю, что я делаю не очень чисто, поэтому у вас есть хорошее решение для достижения моих целей или идея для решения проблемы grub?

Гаэль Барбин
источник
Если вы должны продолжать работать, это означает, что он действительно что-то делает. Если это так, то почти наверняка содержимое вашей системы будет меняться во время резервного копирования. Это делает результаты несколько непредсказуемыми - тестируйте много перед использованием в производстве.
Джо

Ответы:

8

Есть несколько вариантов, у каждого из которых есть компромиссы. Вы не можете использовать ddдля клонирования файловую систему, когда она смонтирована для чтения / записи, иначе клон будет поврежден, так как источник изменяется во время копирования, поэтому назначение будет частично устаревшим, а частично - нет. Если вы действительно хотите иметь возможность использовать ddгорячее копирование раздела, вы можете сделать это с помощью снимков LVM . Это требует, чтобы вы сначала установили систему с помощью LVM , но затем вы можете создать моментальный снимок в любое время, а поскольку моментальный снимок заморожен и не смонтирован, вы можете безопасно ddсохранить моментальный снимок, а затем удалить его. Другой недостаток использованияddзаключается в том, что он тратит время на копирование всего неиспользуемого пространства в томе и требует, чтобы место назначения было как минимум таким же большим, даже если большая часть источника не используется.

Вместо использования ddвы можете просто использовать традиционные инструменты резервного копирования, такие как tarили dumpдля резервного копирования снимка. Преимущество этого заключается в том, что вы не тратите время на копирование свободного места и могут быть восстановлены в меньший раздел, если в нем есть место для файлов. Вы также можете извлечь только некоторые файлы, чтобы выполнить частичное восстановление. Вам также не нужно использовать LVM с этим методом: если вы уверены, что файлы не изменяются при создании резервной копии, это безопасно делать на смонтированной файловой системе. Худшее, что может случиться, - это то, что отдельный файл, измененный во время резервного копирования, будет поврежден, а не вся резервная копия, как это может случиться dd.

Как вы, наверное, поняли, после восстановления файловой системы вам все равно нужно переустановить grub, чтобы система загрузилась. Я не уверен, почему вы получили эту ошибку, когда пытались, но кажется, что вы использовали grub-legacy, так как grub2 не имеет stage1.

psusi
источник
Я не использовал LVM, но я мог, я ищу долговременное решение. Достаточно ли скопировать все системное дерево (кроме proc) и затем изменить grub?
Гаэль Барбин
@ Gael, достаточно скопировать все файлы и переустановить grub, да. Вам также может понадобиться обновить UUID в / etc / fstab. Обратите внимание, что если вы используете, tarвы хотите исключить не только / proc, но также / dev, / sys и / run, либо использовать --one-file-systemпереключатель, чтобы не допустить его перехода в другие файловые системы.
Псуси
спасибо, попробую с дегтем. Это решение может позволить полный контроль над резервной копией.
Гаэль Барбин
3

Использование чего-то вроде rsyncили tarдля копирования раздела может быть проще. Я бы смонтировал раздел во второй точке монтирования, как /mntперед копированием. Эти параметры также позволяют изменить размер или тип раздела. У вас могут быть структуры на дополнительных разделах. У меня часто есть отдельные разделы для /varи /usr. Это также необходимо учитывать.

Возможно, вам придется покопаться в grubдокументации, чтобы определить, как правильно настроить таргетинг на диск и раздел. install-grubможет делать неверные предположения, которые не делают то, что вы хотите.

Существуют такие инструменты, как, например, mondoпозволяющие создать загрузочный компакт-диск восстановления с установленной на нем ОС.

BillThor
источник
Я использовал dd, потому что говорил мне, что другие инструменты копирования файлов будут копировать только файлы, а не mbr и таблицу разделов. Я бросил взгляд на Мондо, и это могло самое простое решение. Спасибо
Гаэль Барбин
@Gael Если вы только клонируете SD1, вы не получите MBR. Есть ряд инструментов, которые обновят MBR при необходимости. Обычно он уже имеет код для поиска загрузочной записи.
BillThor
1

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

Однако вы можете попробовать следующие варианты:

  1. Запустите систему в виртуальной машине. Вы можете создать снимок системы, а затем сделать резервную копию этого снимка. Когда резервное копирование выполнено, снимок может быть легко удален. Это решает проблемы, упомянутые выше.
  2. Делайте резервные копии на уровне файловой системы, а не на уровне устройства. Я могу рекомендовать rsnapshot для этого.
Вилмантас Баранаускас
источник
Я ищу решение, которое позволит сделать резервную копию системы, не выключая ее. Таким образом, независимо от используемого метода, система должна быть запущена. Если для копирования системы достаточно скопировать только файловую систему, rsync выполнит эту работу, что принесет rsnapshot?
Гаэль Барбин
rsnapshot предоставляет вам столько дополнительных инкрементных резервных копий, сколько вам нужно (ежечасно, ежедневно, еженедельно, ежемесячно), а резервные копии доступны в простой полной структуре каталогов, несмотря на то, что они инкрементные.
Вильмантас Баранаускас