Чи можливо зробити гарячу копію системи?


10

Я б хотів створити резервну копію моєї системи, не вимикаючи її. Клон системи також повинен працювати в іншій машині.

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

grub-install  /dev/sdc1 

але я отримав цю помилку:

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

Я знаю, що я роблю не дуже чисто, тож у вас є гарне рішення, щоб досягти моїх цілей чи ідеї вирішити проблему з гріхом?


Якщо вам доведеться продовжувати працювати, це означає, що він насправді щось робить. Якщо це так, то майже впевнено, що вміст вашої системи буде змінюватися під час резервного копіювання. Це робить результати дещо непередбачуваними - тестуйте багато, перш ніж використовувати у виробництві.
Джо

Відповіді:


8

Існує кілька варіантів, в яких кожен має компроміси. Ви не можете використовувати ddдля клонування файлової системи, поки вона встановлена ​​для читання / запису, або клон закінчиться пошкодженим, оскільки джерело змінюється під час копіювання, тому призначення буде частково застарілим, а частково - не застарілим. Якщо ви дійсно хочете мати можливість використовувати ddдля гарячої копіювання розділу, ви можете зробити це за допомогою знімків LVM . Це вимагає, щоб ви встановили систему, використовуючи LVM, в першу чергу, але потім ви можете створити знімок у будь-який час, і оскільки знімок заморожений і не змонтований, ви можете безпечно ddзробити знімок, а потім видалити знімок. Інша нижня сторона до використанняddполягає в тому, що він витрачає час на копіювання всього невикористаного простору в томі, і вимагає, щоб призначення було принаймні таким же великим, навіть якщо більша частина джерела не використовується.

Замість того, щоб використовувати dd, ви можете просто використовувати традиційні засоби резервного копіювання, такі як tarабо dumpдля резервного копіювання знімка. Це має перевагу в тому, що він не витрачає час на копіювання вільного простору, і його можна відновити на менший розділ, доки в ньому є місце для файлів. Ви також можете витягти лише деякі файли для часткового відновлення. Вам також не потрібно використовувати LVM за допомогою цього методу: якщо ви впевнені, що жоден файл не змінюється під час створення резервної копії, це безпечно робити у змонтованій файловій системі. Найгірше, що може статися, це те, що окремий файл, який модифікується під час створення резервної копії, буде пошкодженим, а не вся резервна копія, як це може статися dd.

Як вам здається, ви зрозуміли, що після відновлення файлової системи вам все одно потрібно перевстановити grub, щоб змусити систему завантажитися. Я не впевнений, чому ви отримали цю помилку під час спроби, але, здається, ви використовували grub-спадщину, оскільки grub2 не має етап1.


Я не використовував LVM, але міг, шукаю довговічне рішення. чи достатньо скопіювати все системне дерево (за винятком proc), а потім змінити grub?
Гаель Барбін

@Gael, достатньо скопіювати всі файли та перевстановити grub, так. Вам також може знадобитися оновити UUID в / etc / fstab. Зауважте, що якщо ви використовуєте, tarви хочете виключити не тільки / proc, але також / dev, / sys та / run, або скористайтесь --one-file-systemперемикачем, щоб не допустити його сходу до інших файлових систем.
psusi

дякую, я спробую з дьогтем. Це рішення може забезпечити повний контроль резервної копії.
Гаель Барбін

3

Використовувати щось на кшталт rsyncабо tarскопіювати розділ може бути простішим. Я би змонтував розділ на другій точці монтажу, як /mntперед копією. Ці параметри також дозволяють змінити розмір або тип розділу. У вас можуть бути структури і на додаткових розділах. У мене часто є окремі розділи для /varта /usr. Це потрібно буде також врахувати.

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

Є такі інструменти, mondoякі дозволяють створити завантажувальний компакт-диск для відновлення із встановленою на ньому вашою ОС.


Я використовував dd, тому що я говорив мені, що інші інструменти для копіювання файлів копіюватимуть лише файли, а не mbr та таблицю розділів. Я кинув погляд на мондо, і це могло найпростіше рішення. Дякую
Gaël Barbin

@Gael Якщо ви клонуєте лише SD1, ви не отримаєте MBR. Існує ряд інструментів, які при необхідності оновлять MBR. Зазвичай він вже має код для пошуку завантажувального запису.
BillThor

1

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

Однак ви можете спробувати наступні варіанти:

  1. Запустіть систему в межах VM. Ви можете створити знімок системи, а потім зробити резервну копію цього знімка. Після резервного копіювання знімок можна легко відкинути. Це вирішує проблеми, згадані вище.
  2. Робіть резервну копію на рівні файлової системи, а не на рівні пристрою. Я можу порекомендувати для цього rsnapshot.

Я шукаю рішення, яке дозволить створити резервну копію системи, не вимикаючи її. Отже, незалежно від використовуваного методу, система повинна працювати. Якщо для копіювання системи достатньо лише файлової системи, rsync зробить роботу, що приносить rsnapshot?
Гаель Барбін

rsnapshot надає вам стільки додаткових кількох резервних копій, скільки вам потрібно (щогодини, щоденно, щотижня, щомісяця), а резервні копії доступні у звичайній повною структурі каталогів, незважаючи на те, що вони збільшуються.
Вільмантас Баранаускас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.