Резервне копіювання в ubuntu, блог енікейщік
У цій замітці мова піде про резервне копіювання в Ubuntu. Зазвичай я роблю кілька резервних копій. Цілі при цьому переслідуються різні, швидке відновлення системи якщо що щось піде не так, збереження налаштувань, збереження проектів ... Різні цілі припускають різні засоби. Розповім про ті які використовую я.
Почну здалеку, з установки системи. Я застосовую різні схеми розбиття диска, але для робітників машин використовую наступну: жорсткий диск розбивається за такою схемою: по 15-20 Гб на корінь / і / home, swap маю в файлі на кореневому розділі. Частина, що залишилася жорсткого диска монтується в / media /, туди ж монтуються і розділи інших жорстких дисків (якщо вони є, тому що останнім часом все зайві диски переставлені на домашній NAS). В результаті маємо два розділи жорсткого диска про архівації яких потрібно думати. Залишається її, архівацію налаштувати.
В Ubuntu Déjà Dup як і Ubuntu One вбудований в систему, тому для домашнього каталогу нічого винаходити не довелося. Залишилося тільки налаштувати чого не потрібно архівувати (.cache, кеши браузерів, завантаження ...), розклад і ввести пароль для шифрування. Тепер все працює саме, можна навіть не згадувати. Єдине що відключив розклад на ноутбуці, щоб не потрапити на трафік в мобільному інтернеті.
Ще не додалося причин робити це. Причини дві перша бажання пробувати нові версії починаючи з альфи на реальному залозі, хотілося б в разі невдачі повернути все назад. Друга з'явилася необхідність розносити налагоджену систему на кілька машин. Основний мотив тут лінь, лінь налаштовувати спочатку робочу машину, потім ноут ..., а так раз налаштував і готово. Можна було б використовувати Live CD (опис пари таких), але мені цікаво було знайти спосіб не заважає працювати і не вимагає зайвих перезавантажень.
Такий спосіб знайшовся це - FSArchiver (FileSystem Archiver), програма для резервного копіювання. Проміжний варіант між tar і dd, зберігає вміст файлової системи в архів. Може працювати з будь-якої UNIX, головне підтримка ядром. На відміну від tar може відтворювати файлову систему при отриманні даних. На відміну від dd розуміє файлові системи і архівує тільки дані. Може відновити файли на іншу файлову систему або розділ диска відмінний від вихідного. Використовує контрольні суми для перевірки цілісності файлів. Для повного щастя можна навіть обійтися без командного рядка, є GUI для QT - QT4-FSArchiver і GTK - GPyFSA.
Створюємо резервну копію системи:
sudo fsarchiver savefs -v -j2 -z5 /путь_сохраненія/backup.fsa / dev / hda1
Витягуємо архівну копію:
sudo fsarchiver restfs /путь_сохраненія/backup.fsa id = 0, dest = / dev / hda1
де: -v (verbose) - показує список файлів, -j - кількість робочих потоків, зазвичай дорівнює кількості ядер процесора, -z - ступінь стиснення від 1 до 9, id = 0 номер файлf образу.
Резервна копія для MBR
Мати резервну копію MBR, ніколи не завадить. Особливо якщо використовуються хитрі схеми розбиття дисків. Робити буде за допомогою утиліти dd (dataset definition, можна перевести як формування даних). Зазвичай розшифровується як disk dump, ще варіант (більше підходить по суті: -)) - delete data. Так що утилітою потрібно користуватися обережно. При правильному підході дозволяє зробити багато. Але для резервного копіювання системи краще не використовувати.
Створюємо резервну копію MBR:
sudo dd if = / dev / hda of = / путь_сохраненія / backup.mbr bs = 512 count = 1
sudo dd if = / путь_сохраненія / backup.mbr of = / dev / hda bs = 512 count = 1
Параметри: if - джерело копіювання, of - файл призначення, bs - кількість байт за раз, лічильник операцій копіювання.
Православний спосіб резервного копіювання в * nix системах це використовувати tar (tape archive). Головне достоїнство є скрізь. Друге - вміє все. Мінус щоб це все вміти потрібні багато знань, а з ними і багато печалі. Можна не взагалі не користуватись tar'ом, але основи знати бажано. Резервна копія кореневого каталогу за допомогою tar створюється приблизно так:
sudo tar -cvpzf /путь_сохраненія/backup.tgz --exclude = / swap.fs --exclude = / cdrom --exclude = / dev --exclude = / home --exclude = / lost + found --exclude = / media --exclude = / mnt --exclude = / proc --exclude = / run --exclude = / sys --exclude = / tmp /
Витягується (буде потрібно завантажитися з Live CD) так:
sudo tar --same-owner -xvpzf /путь_сохраненія/backup.tgz -C /
де: -c (create) - створити новий архів (-x (extract) - відповідно буде витягти), - p (permissions) - зберігати інформацію про права доступу, -v (verbose) - показує список файлів, -f (file) - зберігати архів у файл, -z - стискати gzip (-j - bzip2). Опція -exclude служить для виключення файлів з архіву. Опція -same-owner зберігає власників файлів. -C - вказує каталог куди розпакувати.
Завдання по введенню всіх опцій можна полегшити за допомогою такого скрипта:
#! / Bin / bash
if [ `id -u`! = 0]; then error "You must be root to use this script"; fi
BACKUP = / home / backup / backup.tgz
ROOTD = /
mv $ BACKUP $ BACKUP.old
tar -cC $ ROOTD / -cvvzf $ BACKUP ./ --exclude =
Ще такий момент, як після переустановлення системи або переході на інше залізо відновити всі встановлені програми. Особисто у мене список хоч і не великий, але вже і не малий. Раніше я зберігав встановлені пакети за допомогою APTonCD, зате тепер пакети можна синхронізувати за допомогою центру додатків. І це добре.