Системне зображення запущеної системи Debian?


22

Чи можливо створити резервну копію запущеної системи Debian в якомусь файлі зображень, який можна просто записати на інший жорсткий диск, використовуючи dd у разі відмов оригінальної (резервної копії) системи Debian?

Я особливо шукаю інструмент, безпосередньо доступний у сховищах, оскільки у мене Debian Wheezy працює на малиновому пі, і тому мені потрібна підтримка архітектури ARM, яка надається досить надійно для пакетів репозиторіїв Debian.


2
Я б не рекомендував намагатися отримати копію блоку для блоку з файлової системи, встановленої rw. Найменша запис може зіпсувати це, і ви вважаєте, що у вас є справна резервна копія. Тож mount -o remount,roнакопичувач, який ви копіюєте, якщо ви виберете dd, dumpабо подібний. Копіювання файлової системи за допомогою rsyncбудь-якого іншого способу, в тому числі cpбезпечно для живої системи.
Примхлива война

Відповіді:


15

ddдобре, якщо ви не заперечуєте, щоб генерувати файл зображення саме такого розміру вашого необробленого диска. rsyncдобре, якщо ви хочете отримати простий доступ до файлового рівня. Але стандартним засобом створення резервної копії файлової системи є dumpі restore( aptitude install dump).

Для такого пристрою, як Raspberry Pi, я б створив резервну копію наступним чином, припускаючи таблицю розділів MS-DOS і що диск є / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 щоб отримати зображення завантажувальної частини диска.
  • fdisk -lu /dev/sda >sda-partition-table.txt для подальшого використання людини.
  • dump -0af sda1-root-level0.dump /dev/sda1 і повторіть для кожного розділу, для якого потрібно створити резервну копію.

Потім ви можете стиснути партію і залишити її в безпечному місці. Для відновлення слід використовувати ddдля відновлення таблиці розділів та секторів завантаження, перезавантажити таблицю розділів, створити нову файлову систему та використовувати cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

Переваги:

  • dump отримує повну копію файлової системи, включаючи ACL, розширені атрибути, право власності, розріджені файли, спеціальні атрибути файлової системи - все скидається як є.
  • Він копіюватиме лише потрібні блоки, ігноруючи невикористані.
  • Це стандартний інструмент Unix і читається багатьма іншими інструментами Unix.

Мінуси:

  • він створить пошкоджені знімки, якщо файлова система записується під час демпінгу
  • складніше змонтувати резервне копіювання зображення (що можна зробити із зображеннями дисків) або дістатися до окремих файлів (які ви можете отримати із rsyncрезервними копіями).
  • Це типова файлова система. Ви можете скинути ext3файлову систему та відновити її в ext4одній, але ви можете скинути будь-який тип файлової системи. Більшість зрілих файлових систем мають свої власні dumpверсії. Стандарт Debian dumpробить ext2, ext3і ext4. Якщо ви використовуєте файлову систему, специфічну для Flash, ваші параметри можуть бути різними.

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

Завдяки вашій публікації я дізнався про цей інструмент (скидання / відновлення). Я буду використовувати його, щоб зробити копію файлової системи з чимось на зразок:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Іван Захарящев

5

Використовуйте ddдля завантажувального сектору та rsync -aHSдля файлів. Ви повинні виключити "віртуальні" файлові системи, такі як / proc / sys та будь-які RAM-диски (tmpfs).

Якщо ви також хочете зберегти розділ, ви можете скинути його sfdiskабо відтворити його parted.


Спасибі, звучить дуже цікаво, ви вже це налаштовували раніше? Як створити повне зображення з цих частин, просто скористайтеся пристроєм петлі? (Так, хочете зберегти розділ і т. Д. Хочете, щоб зображення було готове для запису на нову SD-карту / диск без подальшого
фідінгу

@ stefan.at.wpf Я просто змішав деякі з моїх рішень щодо клонування віртуальних машин, створивши фізичні сервери (autoyast / kistart), зробивши дзеркало raid1 з не дзеркальної системи та звичайний спосіб копіювання (статичних) частин файлова система для вузлів кластера. Я не використовую цей місельв. Моїм методом було б автоматичне встановлення нового сервера (включаючи резервний клієнт), а потім відновлення за допомогою резервного копіювання вмісту старого сервера на новий сервер.
Нілс

4

Для Debian вам потрібно лише створити резервну копію даних та конфігураційних файлів .

Щоб створити резервну копію існуючого стану:

  • Створіть резервні копії вибору пакунків за допомогою dpkg --get-selections > dpkg_selections.
  • Створіть резервну копію бази даних debconf за допомогою sudo debconf-get-selections > debconf_selections.

Щоб застосувати це до нової системи:

  • Спочатку застосуйте виділення debconf за допомогою sudo debconf-set-selections < debconf_selections.
  • Застосувати вибір пакету за допомогою dpkg --set-selections < dpkg_selections.
  • Встановіть пакети за допомогою apt-get dselect-upgrade.

Ваші дані в першу чергу повинні бути в /homeі /var(наприклад, /var/lib/mysqlдля MySQL, /var/wwwдля Apache тощо). Ви повинні мати можливість зрозуміти, які програми важливі для вас.

Конфігурація буде в основному в /etc. Знову ж таки, не повинно бути важко вибрати те, що для вас важливо.


Щоб debconf-get-selectionзапуститисьapt-get install debconf-utils
pandita

1

Я не знаю, чи це добре робити, коли працює система, але це я роблю.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

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


1

Я спробував стільки резервного копіювання та відновлення програмного забезпечення і ніколи не був задоволений. Це те, що я зараз роблю: у мене на запасному комп’ютері встановлений другий Debian (той самий MB, NIC-карта тощо). Кожного вечора я rsync з машини A до машини B. Є деякі файли, які я затримую (/ etc / network / інтерфейси, / etc / hosts, / etc / hostname), оскільки я не хочу конфліктів двох запущених систем. Насправді у мене є копії в іншій папці. Я також відключаю деякі сервіси, які мені не потрібно запускати на машині B (postfix, mysql тощо). У мене на машині B написаний скрипт, який в основному перетворить його на машину A (замінить ті файли, які я стримував), перезапустіть NIC і включіть служби, які були відключені. Звичайно, машину A потрібно вимкнути, коли я запускаю сценарій, інакше буде хаос. Я тестую машину B щомісяця, вимикаючи машину A, запускаючи сценарій, і робити кілька тестів, щоб переконатися, що вони актуальні та працюють належним чином. Це працює як шарм!


0

Ознайомтеся з Clonezilla. Я бачу, що це перелічено в стандартних репортажах Debian. http://clonezilla.org/

Редагувати: Напевно, немає, вимоги переліку Clonezilla на їх головній сторінці: "Процесор X86 або x86-64"


Хоча
цікавий

0

Щоб створити резервну копію пі, я виймаю карту microSD і підключаю її до свого ноутбука. Потім запустіть a, ddщоб створити на моєму ноутбуці файл всього диска, як зазначено вище:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

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

0

Використовуйте системне забезпечення. У мене це працює навіть з debian stretch. Це дає вам гарний usb boot usb з точно налаштованим робочим столом.

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