Бекап або швидкий спосіб повернути все як було

Якщо ви хочете мати точку відкату для вашої операційної системи, т. Е. При необхідності відновити "все як було" в разі невдалого експерименту - необхідно освоїти способи створення образів розділів. У нашому випадку необхідно зняти образ з кореневого розділу, та інших системних розділів крім / home (домашнього розділу) і swap (розділу підкачки), якщо такі є.

Для цього існує безліч пропрієтарних (комерційних) програм, таких як Norton ghost, Acronis True Image і інші, але опис роботи з ними ви можете знайти у відповідній літературі, а ми розглянемо застосування штатної лінуксових утиліти - dd.

Ця утиліта працює з блочними пристроями (наприклад, розділ диска / dev / sda1, флешка / dev / sdh1) і створює їх посекторного копії. Що це означає - а то, що для dd немає такого поняття як файл, каталог, зайняте місце, вільне місце - вона зчитує сектора жорсткого диска і може зберегти цю інформацію вже як файл-образ. Переваги цієї утиліти є одночасно і її недоліками - розмір файлу-образу буде в точності дорівнює розміру копируемого розділу, т. Е. Якщо мій кореневої каталог знаходиться на розділі в 20 ГБ, з яких зайнято лише 5 ГБ, то розмір файлу-образу буде рівно 20 ГБ. Погодьтеся, малозаманчівая перспектива, адже зберігати такі бекапи досить важко.

dd if = / dev / sda1 of = file.img

де / dev / sda1 - це жорсткий диск, з якого знімається образ, а file.img - створюваний файл-образ.

Причому тут перераховані тільки мінімально необхідні параметри (див. Man dd)

Щоб не зберігати образ такого величезного розміру на диску (та й просто може не бути стільки вільного місця), ми скористаємося архиваторами: zip, gzip, bzip2, включеними в конвеєр з утилітою dd. Результат роботи архіватора буде нальоту перенаправляється в файл.
Визначення найменувань розділів

Отже, створимо копію кореневого розділу (домашній каталог чіпати не будемо), але, спершу нам треба з'ясувати хто є хто, т. Е. Точні назви розділів. Це гранично важливий момент, тому що якщо ви неправильно вкажете розділ при розгортанні образу, то безповоротно втратите дані на розділі, який помилково вказали в якості цільового. (Але не слід думати, що такої проблеми не в пропрієтарних програмах - там справи йдуть ще гірше, наприклад, Acronis True Image призначає букви розділах, які не завжди збігаються з буквами в самій Windows, і розташовані вони в іншому порядку, тому єдиний "маячок "- це розмір розділу і його мітка, якщо вона прочиталася. В Лінуксі все набагато простіше - назви розділів самі по собі не змінюються ніколи!)

Запустимо команду: df -h і подивимося на результат:

$ Df -h
Файлова система Разм Вик Дост Вик% змонтована на
/ Dev / sda8 16G 3,5G 12G 24% /
tmpfs 755M 0 755M 0% / lib / init / rw
varrun 755M 108K 754M 1% / var / run
varlock 755M 0 755M 0% / var / lock
udev 755M 156K 754M 1% / dev
tmpfs 755M 164K 754M 1% / dev / shm
lrm 755M 2,2M 752M 1% /lib/modules/2.6.28-13-generic/volatile
/ Dev / sda7 188G 151G 38G 81% / home
/ Dev / sr0 696M 696M 0 100% /

Ми бачимо, що наш кореневий розділ знаходиться на розділі / dev / sda8 - отже його і будемо «бекапіть» (а при відновленні в нього будемо розгортати образ!), Залишилося тільки вирішити - куди записувати файл-образ. Я запишу в домашній каталог (/ dev / sda7) - місце є, та й швидкість запису буде вище, але зберігати бекапи краще на змінних носіях - флешки, USB жорсткі диски і т.д. тому після перевірки контольной суми (див. розділ "розгортання образу") образ необхідно перенести.

Примітка: я виходжу їх того, що система встановлена ​​на 3 розділи: /, / home і swap, якщо у вас більше, то треба робити бекап і інших розділів.
Створення образу розділу

Отже, бекап кореневий розділ:

sudo dd if = / dev / sda8 bs = 8096 | gzip -9cf> kubuntu.gz

Примітка: якщо увас недостатньо місця в домашньому каталозі - необхідно прописати повний шлях для збереження образу, (наприклад у вас є розділ, змонтований в / media / films, то команда буде виглядати так: sudo dd if = / dev / sdb1 bs = 8096 | gzip -9cf> /media/films/kubuntu.gz зміниться і шлях для звернення до файлу-образу при відновленні).

Врахуйте - це довго і нудно, так що доведеться почекати.

Ми створили стислий gzip`ом файл-образ кореневого розділу ubuntu.gz, його розмір 4,3 ГБ, що набагато менше ніж самого кореневого розділу (16 ГБ).

Щоб переконатися в безпомилковості роботи архіватора, створимо контрольну суму нашого вихідного розділу, а перевіримо її після розгортання.
Створення контрольної суми розділу

Порахуємо md5 суму розділу / dev / sda8:

sudo dd if = / dev / sda8 bs = 8096 | md5sum -> kubuntu.md5

Це контрольна сума кореневого розділу записана в файл root.md5, до неї ми повернемося трохи пізніше.
розгортання образу

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

Для цього нам буде потрібно завантажитися з Live CD будь-якого линукс дистрибутива, наприклад, компакт диска з кубунту. Тепер, увага, при завантаженні з Live CD розділи жорсткого диску не примонтировать, (а без доступу до домашнього каталогу хост системи ми не зможемо звернутися до файлу-образу!), Тому необхідно зробити це вручну. Ви пам'ятаєте, що наш домашній каталог / home / sergey лежав в / dev / sda7, монтуємо його:

sudo mount / dev / sda7 / mnt

Тепер ми знаємо, що наш файл-образ лежить в / mnt / sergey (це мій домашній каталог - у вас буде свій!).

Примітка: якщо ваш файл-образ знаходиться на змінному пристрої, то його необхідно підключити фізично і примонтировать.

Розгортаємо образ, але спершу перевіримо правильність його розпакування:

sudo gunzip -c /mnt/sergey/kubuntu.gz | md5sum

Порівняйте цей результат з тим, що ви створили раніше в файлі kubuntu.md5:

Примітка: цю процедуру непогано б зробити відразу після створення образу і після перенесення бекапа на змінний носій.

Вони повинні співпасти (тільки замість. / Sergey - ваше ім'я!), Тепер розгортаємо образ:

sudo gunzip -c /mnt/sergey/kubuntu.gz | sudo dd of = / dev / sda8 bs = 8096

Примітка: кілька разів перевірте правильність вказівки цільового розділу (у мене це / dev / sda8, у вас буде свій).

І наостанок перевіримо, а без помилок чи все пройшло:

sudo dd if = / dev / sda8 bs = 8096 | md5sum

Контрольна сума свежеразвернутого розділу знову-таки повинна збігатися з:

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

Примітка: ви можете не створювати контрольну суму і не перевіряти правильність розпакування, але тоді немає гарантій безпомилковості процесу.

якщо бажаєте можна створити скрипт і зробити запис в crontab щоб скриптик запускався на вашу розкладом

P.S.S Особисто я створив скрипт періодично користуюся цією інструкцією. Дуже сильно допомагає при невдалих експериментах з системою, та й нерви в спокої

Схожі статті