Повне відновлення системи Linux


20

Мені знайоме використання rsync для резервного копіювання різних файлів із моєї системи, але який найкращий спосіб повністю відновити машину.

Що я намагався раніше:

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

Цей спосіб працює, але я не думаю, що кожен встановлений пакет працює на 100% згодом.

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


Коли ви говорите, що хочете встановити на інших машинах, ви маєте на увазі інші «ідентичні / машини чи більше подібні до робочого столу та ноутбука?
Іхор

апаратне забезпечення було б іншим, але хотіли б однакових програмних пакетів для обох
Simon Foster

Відповіді:


17

Ось що я зробив (це передбачає один диск, в / dev / sda)

  • використовувати dd для резервного копіювання таблиці MBR та розділів: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • використовуйте rsync, щоб скопіювати всю річ з чимось на зразок: "rsync -axvPH - numeric-id ..."

Після відновлення я роблю це:

  • завантажте цільову машину за допомогою sysrescuecd , я, як правило, матиму файл sda.layout на USB-накопичувачі.

  • відновіть таблицю MBR / розділів з dd: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • Використовуйте partprobe (спасибі коментатор Mark), щоб отримати ядро ​​для перечитування таблиці розділів.

  • Змонтуйте всі різні ділянки під / відновити /. Я роблю точки монтажу однаковими під час відновлення, тому, якщо у моєму джерелі є / boot, / var, я закінчуюсь з / Resto / boot, / Resto / var тощо.

  • використовуйте rsync для відновлення всієї речі.


3
Я робив це кілька разів і має перевагу використання стандартних команд Linux CLI. Я використовую rsnapshot, сценарій perl навколо rsync для створення резервних копій на центральний сервер. Потім rsync все це назад після завантаження з sysrescuecd та dd'ing таблиці розділів. BTW, "partprobe" перечитає таблицю розділів
Марк Портер

Гаразд, це може розглядатися як мерзенний хак, але оскільки ви можете змусити ядро ​​перечитати таблицю розділів, видавши sysctl (), як це робить fdisk, ви також можете мати fdisk - який, на відміну від partprobe, завжди є в моєму досвіді - так it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

Дякую за всілякі пропозиції, я знав, що там повинно бути краще рішення. Спробую ці пропозиції і побачити, що для мене найкраще працює.
Саймон Фостер

3
Не забувайте рахувати з dd! "dd bs = 512, якщо = / dev / sda з = ​​/ резервного копіювання / sda.layout count = 1" та "dd bs = 512, якщо = / шлях / до / sda.layout = / dev / sda count = 1"
Стівен

@Steven: Лайно! Дякую за улов. Чи можу я проголосувати за коментар?
kbyrd

6

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


3

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

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


2

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


2

Я завжди думав, що спосіб Gentoo встановити нову систему (із резервного копіювання чи іншим способом) був найкращим завдяки своїй простоті.

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

2

Спробуйте clonezilla live CD. Ви можете завантажуватись на сеанс прямого перегляду та зображувати свою машину, не встановлюючи нічого. Потім у вас є можливість зберігати копію зображення на мережевій папці або віддаленій машині тощо.


0

Якщо це точно та сама машина, я б просто використала ddдля створення образу диска, а потім переробити його за необхідності (можливо, змінивши деякі конфігурації згодом, якщо це доречно).

Якщо ви перемикаєте обладнання, у мене був певний успіх у створенні тарболу або повного резервного копіювання rsync кореня файлової системи. Я не впевнений, навіщо вам спочатку потрібна повна установка - доки ви берете повну резервну копію, базова установка Fedora не повинна бути обов’язковою умовою.


0

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

Є два основні рекомендовані способи вирішити це, і третій, якщо ви просто намагаєтеся створити середовище розвитку.

Зображення

Якщо обладнання, яке ви відновите TO, буде однаковим чи подібним, досить скористатися інструментом візуалізації диска, щоб зробити копію всього жорсткого диска або масиву. Коли ви хочете відновити, просто перемалюйте машини, на яких йдеться, із цим зображенням. Якщо ви розміщуєте зображення на декількох машинах, пам’ятайте, що вам потрібно буде оновити будь-які налаштування для інших пристроїв на інших пристроях (ім’я хоста, статична IP-адреса тощо), щоб вони не суперечили один одному.

Щоб зробити фактичну візуалізацію, я рекомендую будь-який інструмент або продукт, який може клонувати жорсткі диски.

Резервне копіювання конфігурації / домашнього каталогу

На своїй основній машині регулярно створюйте резервні копії (будь-яким способом, який вам подобається) залежно від потрібних нижче каталогів (або інших):

/ home - всі особисті налаштування, документи та файли користувача
/ тощо - конфігурації
/ opt - спеціальне програмне забезпечення, не встановлене через менеджер пакунків
/ usr / local - спеціальне програмне забезпечення, не встановлене через менеджер пакунків
/ var - журнали тощо

Під час відновлення перевстановіть ОС на відповідні машини, а потім скопіюйте кожен із них (або лише відповідні файли) у потрібне місце.

Віртуальні машини із знімками

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

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

Зображення - це жорстоке рішення. Якщо можете, просто створіть резервну копію даних і не переживайте за саму ОС. Намагаючись відновити його повністю, це вимагає неприємностей.

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


0

Оскільки ви кажете, що "обладнання буде іншим", SystemImager може стати дуже зручним.

Це лише купа обгорткових скриптів навколо PXE та Rsync. Тому створена "резервна копія" - це лише повна структура каталогу вашого резервного сервера Linux. Ви можете "CD" в цей dir і міняти речі навколо, як ви годуєте. (SystemImager самостійно керує зміною мережевих налаштувань, коли виштовхуєте зображення.)

Ви можете chroot на ваш резервний сервер і запустити yum або apt для встановлення програмного забезпечення, перш ніж виштовхувати зображення.

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


0

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

http://www.mondorescue.org/



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)

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