Що означає dd образ. Резервне копіювання системи

Команда dd виконує лише одну просту функцію: копіює дані з файлу до іншого файлу. Але оскільки в Linux багато сутностей представлені саме як файли, то і застосувань у dd стає багато. Розглянемо найкорисніші з них.

А що означає dd?

dd – це скорочення від data duplicator (копіювання даних). Але через те, що в невмілих руках команда dd може призвести до повної втрати всіх даних, програму часто жартома називають disk destroyer (руйнівник диска). Спробуємо розібратися як не тільки не знищити свої дані, а й навіть отримати користь із застосування dd.

Загальний випадок використання dd

Синтаксис команди наступний:

Dd if=$input_data of=$output_data

Команда скопіює дані з файлу $input_data у файл $output_data з огляду на опції option. Здавалося б просто. А тепер розглянемо які можливості відкриває це просте копіювання.

Приклади використання dd

1. Знищення всіх даних на диску без можливості відновлення:

Dd if=/dev/urandom of=/dev/sda bs=4k

2. Повне побайтове копіювання одного диска на інший (клонування):

Dd if=/dev/sda of=/dev/sdb bs=4096

3. Копіювання одного розділу до іншого:

Dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror

4. Відображення списку доступних файлових систем:

Dd if=/proc/filesystems | hexdump-C | less

5. Копіювання даних на пристроях з різним розміром блоку (1Кб у джерела та 2 Кб у приймача):

Dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1

6. Створити завантажувальну флешку:

Dd if=/home/$user/bootimage.img of=/dev/sdc

7. Перевірити диск на збійні сектори:

Dd if=/dev/sda of=/dev/null bs=1m

8. Створення резервної копії MBR диска та збереження на дискету

Dd if=/dev/sda of=/dev/fd0 bs=512 count=1

9. Зняття ISO з компакт-диска:

Dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync

10. Перевірка файлу на віруси (зрозуміло, потрібно ClamAV):

Dd if=/home/$user/suspicious.doc | clamscan -

11. Збереження вмісту ОЗП у файл:

Dd if=/dev/mem of=/home/$user/mem.bin bs=1024

12. Конвертація образу з формату Nero NRG у стандартний образ ISO:

Dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k

13. Перегляд вмісту MBR:

Dd if = / dev / sda count = 1 | hexdump -C

А де ж обіцяний мільйон застосувань?

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

У коментарях радо приймають ваші власні приклади використання цієї чудової програми.

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

sudo dd if=/dev/sdc of=image.iso

/dev/sdc- це Ваша флешка,

image.iso- це образ з ім'ям imageта розширенням .iso, який з'явиться у Вашій домашній папці.

Щоб дізнатися, як позначається Ваша флешка в системі, можна запустити утиліту Диски, або програму GParted і подивитися в них, а якщо через Термінал, то допоможе команда:

sudo fdisk -l

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

sudo apt-get install dcfldd

Співробітники лабораторії DoD Computer Forensics Laboratory (DCFL) внесли деякі зміни до команди dd, тим самим покращивши її та застосовуючи у своїх дослідницьких роботах. У результаті на світ з'явилася команда dcfldd, яка забезпечує хешування даних, що копіюються через деякі проміжки часу для їх аутентифікації. Більше того, dcfldd працює набагато швидше, ніж dd. Тепер, якщо Ви хочете саме бачити прогрес копіювання або створення образу, Вам потрібно виконати команду:

sudo dcfldd if=/dev/sdc of=image.iso

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

sudo dd if=image.iso of=/dev/sdc

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

sudo dd if=/dev/sdb of=/dev/sdc

За цією схемою можна копіювати, створювати образи як флешок, а й жорстких дисків цілком, чи його розділів, CD/DVD дисків тощо. Але про це у наступній статті.

Вибір flash-накопичувачів залишається лише за вами. Можна записати завантажувальний образ на звичайні флешки від відомих брендів: Transcend, Kingston, Apacer, Silicon Power та інших виробників, а можна трохи відзначитися і вибрати для себе ювелірні флешки зі стразами, діамантами та іншими прикрасами. Хоча це, звичайно ж, буде вибір прекрасної половини людства. Хоча на роботу, записаного образу, зовнішній виглядпристрою не впливає абсолютно.

dd- Проста утиліта, яка входить до складу більшості Unix-подібних операційних систем - Linux, FreeBSD, Solaris і т.д.
Її призначення - читання даних з одного пристрою або файлу та запис в інший.

ddможна ефективно використовувати для створення образу жорсткого диска, при цьому обійшовшись без комерційних утиліт начебто Acronis True Image або Norton Ghost.

Припустимо, що у нас є два диски:

  • /dev/sda - диск, образ якого необхідно створити;
  • /dev/sdb — диск, на який буде записаний образ.

За потреби потрібно підставити власні значення.

Насамперед необхідно завантажитися з будь-якого доступного Live-CD диска, що має утиліту dd, і увійти в командний рядок як суперкористувач. Створюємо точку монтування щодо резервного копіювання.

mkdir /mnt/backup

Монтуємо жорсткий диск, на який необхідно зберегти образ.

Створення образу жорсткого диска

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda - копіюємо весь жорсткий диск sda;
  • of=/mnt/backup/sda.img - копіюємо в /mnt/backup/sda.img;
  • bs = 8M - задаємо розмір кешу жорсткого диска для прискорення процедури копіювання (інакше дані будуть скидатися малими порціями по 512 байт);
  • conv=sync,noerror — вказуємо dd необхідність копіювання на кшталт бит-в-бит з ігноруванням помилок читання.

Для зменшення розміру образу жорсткого диска його можна стиснути будь-яким архіватором.

dd if = / dev / sda bs = 8M conv = sync, noerror | gzip -c > /mnt/backup/sda.img

Відновлення образу жорсткого диска

Для відновлення образу жорсткого диска необхідно виконати процедуру зворотну процедурі створення цього образу.

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

При використанні стиснення паралельно необхідно розархівувати образ.

gunzip -c /mnt/backup/sda.img | dd of = / dev / sda conv = sync, noerror bs = 8M

Міграція системи на інший жорсткий диск

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

dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror

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

Статистика копіювання в dd

Головний мінус в dd - відсутність наочного подання статистики виконання процедури копіювання. Однак цей мінус можна легко оминути. Достатньо підключитися до іншого терміналу.

Визначити номер процесу, під яким запущено dd.

Періодично посилати цьому процесу команду kill-USR1 номер_процесу_dd.

watch -n 5 kill -USR1 number_process_dd

  • watch -n 5 - виконувати команду кожні 5 секунд;
  • kill -USR1 number_process_dd — показати статистику копіювання.

Мінуси використання dd для створення образів диска

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

Таким чином, обсяг образу диска, створений за допомогою dd дорівнюватиме обсягу самого диска - незалежно, скільки на диску даних.

Як відомо, «Користувачі комп'ютера діляться на тих, хто робить бекапи, і тих, хто їх робитиме». У цій статті ми розглянемо різні способи резервного копіювання (бекапу) усієї системи та, відповідно, відновлення з резервної копії.

Одночасно слід зазначити, що це операції варто проводити не «по-живому», тобто. не на працюючій системі, а з liveCD або встановленою на сусідньому розділі/флешці/usb-hdd системи. У випадках, коли простий у кілька хвилин критичний для системи, можливе копіювання системи з-під самої себе, але при цьому потрібно враховувати деякі додаткові умови, які в цій статті поки що не розглядаються

Далі по тексту для дій, що виконуються від імені суперкористувача, використовуватиметься команда sudo, що є стандартом для Ubuntu. В інших системах можливе отримання привілеїв суперкористувача через su, деякі liveCD-системи за замовчуванням працюють у режимі суперкористувача

tar

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

Створення архіву

Для початку створіть точки монтування для кореневого розділу та для розділу, на якому ви збираєтеся створювати бекап, наприклад так

Змонтуйте обидва розділи. Для більшої надійності можна змонтувати кореневий розділ у режимі read-only (тільки для читання), щоб унеможливити випадкову зміну даних

Sudo mount /dev/sdXY /mnt/root -o ro sudo mount /dev/sdXY /mnt/backup

(Замість «sdXY» використовуйте значення для потрібних розділів. Визначити їх можна за допомогою sudo fdisk -l або sudo blkid)

У випадку, якщо ви використовуєте окремі розділи для /boot, /usr, /home та ін.

Sudo mount /dev/sdXY /mnt/root/usr -o ro sudo mount /dev/sdXY /mnt/root/home -o ro

За потреби створіть на бекап-розділі папку, в якій ви хочете розмістити архів, наприклад

Sudo mkdir -p /mnt/backup/ubuntu/root

Тепер можна розпочати створення архіву. Щоб створити архів із gzip-стисненням, виконайте

Sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .

(Ключ -p включає збереження власників та прав доступу для файлів)

Для bzip2-стискання використовуйте

Sudo tar -cvjpf /mnt/backup/ubuntu-sda1.tar.bz2 /mnt/root

Для lzma-стиснення

Sudo tar --lzma -cvpf /mnt/backup/ubuntu-sda1.tar.lzma /mnt/root

Аналогічно для lzo-стиснення - ключ --lzop замість --lzma

Різні алгоритми стиснення дають різний розмір архіву, а також відрізняються за продуктивністю

Після завершення процесу змонтуйте всі змонтовані розділи

Sudo umount /mnt/root(/boot,/var,/home,) /mnt/backup

Відновлення з архіву

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

Sudo mkdir /mnt/(root,backup)

Примонтуйте розділ з архівом-бекапом

Sudo mount /dev/sdXY /mnt/backup -o ro

Відформатуйте кореневий розділ на ту ж (або іншу) ФС. Якщо ви використовуєте окремі розділи для /usr, /boot тощо та архівували їх, відформатуйте їх теж

(якщо ви відновлюєте систему на новий жорсткий диск, розмітте його за допомогою fdisk/gparted та відформатуйте розділи)

Деякі файлові системи підтримують завдання UUID під час форматування. Це дає можливість створити ФС з таким же UUID, як у старої, що дозволить уникнути необхідності правити fstab.

Для ext2/3/4 UUID задається за допомогою ключа -U, а ще більше спростити завдання можна командою виду

Sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o value -s UUID /dev/sda1)" /dev/sda1

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

Bzip2 -dv /media/backup/sda5.dd.bz

Тепер можна змонтувати образ

Sudo mount /media/backup/sda5.dd -o loop /mnt

(З опцією loop програма mount автоматично «підчепить» файл-образ на вільний loop-пристрій, після чого змонтує файлову систему)

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

Sudo umount /mnt

dd - копіювання всього жорсткого диска

В даному випадку ми знову скористаємося dd, тільки цього разу збережемо весь вміст жорсткого диска - з таблицею розділів, самими розділами та всіма даними. Перевага даного методу в тому, що можна за один крок зберегти всі встановлені на цьому жорсткому диску системи без необхідності бекапит кожного розділу окремо. Крім того, при такому бекапі збережуться всі дані, що стосуються завантажувача - таким чином, після відновлення з бекапу вам не потрібні будуть додаткові маніпуляції, ви зможете відразу завантажитися з цього жорсткого диска.

Створення образу

Загалом процедура аналогічна описаної вище для бекапу окремих розділів. В даному випадку також застосуємо пораду про очищення вільного місця «нулями» - за наявності вільного часу зробіть це з усіма розділами.

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

Виберіть розділ, на якому ви збираєтеся розмістити файл-образ. Зрозуміло, це має бути розділ іншого жорсткого диска. Також переконайтеся в наявності достатньої кількості вільного місця на цьому розділі (наприклад, за допомогою утиліти df) - обсяг вільного місця повинен відповідати об'єму жорсткого диска, що копіюється (при стисненні образ вийде менше, але це залежить від типу збережених даних).

Змонтуйте бекап-розділ

Sudo mount /dev/sdXY /mnt

Тепер можна приступати

Sudo dd if = / dev / sdX bs = 1M conv = noerror, sync | lzma -cv > /mnt/hdd.dd.lzma

(тут sdX - диск, а не розділ! для копіювання без стиснення команда аналогічна наведеній вище для бекапу розділу)

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

Sudo umount /mnt

Відновлення з образу

Увага! Даний спосіб передбачає повний відкат до стану на момент створення архіву із заміною всіх даних!

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

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

Sudo mount /dev/sdXY /mnt

Можна приступати до процедури

Bzip2 -dc /mnt/hdd.dd.bz | sudo dd of=/dev/sdX bs=1M conv=sync,noerror

Або ж для стисненого образу

Sudo dd if=/mnt/hdd.dd.bz of=/dev/sdX bs=1M conv=sync,noerror

Після завершення відмонтуйте бекап-розділ

Sudo umount /mnt

Якщо ви хочете розпакувати образ на інший жорсткий диск, він повинен мати розмір не менший за оригінальний. У разі якщо новий дискбільшого обсягу, ви зможете розширити розділи або створити новий розділ на вільному місці за допомогою parted/fdisk/gparted/etc

Не використовуйте обидва жорсткі диски («дублікат» і «оригінал») одночасно!При підключенні обох дисків у системі буде по два розділи на кожен UUID, що призведе до проблем у роботі або неможливості завантаження

Монтування образу

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

Якщо образ стислий - розпакуйте його. Тепер «підчепить» образ на loop-пристрій

Sudo losetup -fv /media/backup/sda.dd

(З ключом -f програма автоматично знайде вільний loop-пристрій, інакше необхідно явно вказувати його)

losetup виведе на екран ім'я використаного пристрою - якщо ви не працюєте з іншими файлами-образами (iso, шифрованими контейнерами тощо), це швидше за все буде /dev/loop0

Тепер ми маємо пристрій, що є для системи жорстким диском, але не маємо доступу до його розділів. Дістатися до розділів допоможе програма kpartx (може знадобитися встановлення однойменного пакета)

Sudo kpartx -av /dev/loop0

(Ключ -a – додати розділи для заданого пристрою; -v – інформативний висновок)

Програма виведе імена створених пристроїв для розділів диска: loop0p1 для першого розділу, loop0p2 - для другого за аналогією з розділами звичайного диска. Файли пристроїв будуть розміщені в папці /dev/mapper

Тепер можна працювати з розділами та ФС на них. Наприклад, змонтувати колишній sda5 та записати на нього файли

Sudo mount /dev/mapper/loop0p5 /mnt

Після завершення відмонтуйте розділ

Sudo umount /mnt

Видаліть розділи за допомогою kpartx

Sudo kpartx -dv /dev/loop0

та звільніть loop-пристрій

Sudo losetup -v -d /dev/loop0

Всі! Зміни записалися, а ваш образ знову став звичайним файлом

cp

Тут ми розглянемо бэкап з допомогою утиліти cp, тобто. із використанням простого копіювання. Взагалі-то, це не найоптимальніший спосіб, і підходить він скоріше для копіювання системи на інший жорсткий диск/розділ/комп'ютер, ніж для створення резервної копії.

З іншого боку, даний спосіб має ряд переваг:

    Універсальність - cp ви знайдете у будь-якій Linux-системі

    Низька вимогливість до ресурсів (через відсутність стиснення та простоти механізму)

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

Створення копії

Створіть точки монтування для кореневого та бекап-розділів

Sudo mkdir /mnt/(root,backup)

Змонтуйте обидва розділи

Sudo mount /dev/sdXY -o ro /mnt/root sudo mount /dev/sdXY /mnt/backup

Змонтуйте розділи для /usr, /boot тощо, якщо такі є

Sudo mount /dev/sdXY -o ro /mnt/root/home

Створіть на бэкап-розділі папку для свого бекапу

Sudo mkdir /mnt/backup/ubuntu

Можна починати

Sudo cp -av /mnt/root/* /mnt/backup/ubuntu

(ключ -a включає копіювання посилань «як є», збереження всіх можливих атрибутів файлів та рекурсивний режим. ключ -v - виведення інформації про те, що відбувається)

Після завершення процесу змонтуйте всі розділи

Надалі ви зможете заархівувати ваші дані будь-яким зручним способом

Відновлення з копії

Увага! Даний спосіб передбачає повний відкат до стану на момент створення архіву із заміною всіх даних!

Створіть точки монтування для розділів

Sudo mkdir /mnt/(root,backup)

Змонтуйте бекап-розділ

Sudo mount /dev/sdXY -o ro /mnt/backup

Відформатуйте кореневий розділ та розділи /usr, /boot тощо, якщо такі є. (Про форматування розділів із збереженням UUID див. у розділі про )

Sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXY

Змонтуйте свіжостворені ФС

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

Sudo cp /mnt/backup/ubuntu/* -av /mnt/root

Після завершення копіювання відредагуйте fstab , виправивши розділи UUID

Відмонтуйте розділи

Sudo umount /mnt/backup /mnt/root/(usr,home,)

squashfs

sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXY

Змонтуйте свіжостворені ФС

Sudo mount /dev/sdXY /mnt/root sudo mount /dev/sdXY /mnt/root/usr sudo mount /dev/sdXY /mnt/root/var

Можна приступати! Для розпакування образу використовується утиліта unsquashfs

Sudo unsquashfs -d /mnt/root -f /mnt/backup/ubuntu-root.sqfs

(Ключ -d задає шлях для розпакування, з ключем -f програма використовуватиме існуючі папки замість спроб створити нові)

Як і при створенні образу, ви побачите індикатор прогресу та безліч іншої корисної інформації.

По завершенні відредагуйте fstab , замінивши розділи UUID на нові (якщо ви форматували розділи з тими самими UUID, пропустіть цей крок)

Sudo nano /mnt/root/etc/fstab

Збережіть файл і відмонтуйте всі розділи

Sudo umount /mnt/backup /mnt/root(/usr,/var,)

Монтування образу

squashfs монтується як будь-який інший образ - через loop-пристрій. Підтримка squashfs ядром включена у безлічі дистрибутивів, у тому числі і в Ubuntu, так що достатньо буде просто скористатися командою mount з опцією loop

Sudo mount /media/backup/ubuntu-root.sqfs -o ro,loop /mnt

(Опція ro не обов'язкова, тому що записати туди все одно нічого не вийде)

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

Після завершення відмонтуйте образ як звичайну ФС

Sudo umount /mnt

rsync

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

Просте використання

Синтаксис rsync подібний до cp:

Rsync -a /mnt/root /mnt/backup

Параметра -a дуже часто буває достатньо, він забезпечує найнеобхідніше: рекурсивне копіювання директорій, збереження інформації про власника та групу тощо. Для відображення детальної інформації про копіювання використовується ключ -v , будьте уважні з ним, в потоці даних можна пропустити повідомлення про помилку. Ключ -x гарантує, що rsync не вийде за межі вказаної файлової системи.

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

"Розумне" копіювання дозволяє скоротити час простою системи. Запускаємо rsync прямо на працюючій системі, дані в якій постійно змінюється, rsync копіює дані, скажімо, протягом кількох годин. Потім переводимо систему в read-only, знову запускаємо rsync, тепер він копіює лише ті файли, які змінилися за ці кілька годин. За кілька хвилин ми маємо повну копію вихідної ФС. Час простою при цьому скоротився на порядок у порівнянні з офлайн-копіюванням. А в деяких випадках буде достатньо одного онлайн-копіювання без перекладу системи в read-only.

Збереження попередніх копій

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

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

Істотне обмеження у тому, що жорсткі посилання можливі лише межах однієї файлової системи.

Синхронізація вмісту каталогу для поточної резервної копії з каталогом джерелом:

Rsync \ --archive \ --delete --delete-excluded \ видалення з резервної копії неіснуючих у джерелі та виключених файлів--progress \ # виводити інформацію про прогрес передачі"/home/user/Files/" \ # каталог джерело"/backup/latest/" \ # каталог для поточної резервної копії--exclude ="/Public/" # виключення непотрібних каталогів

У каталозі /backup/latest/ буде створено копію всіх необхідних файлів і каталогів з джерела і видалено все зайве.

Створення ще однієї поточної резервної копії без надмірності:

cp \ --archive \ # зберігати всю додаткову інформацію про файли--link \ # використовувати жорсткі посилання для файлів - усунення надмірності"/backup/latest/" \ джерелом є отримана вище поточна резервна копія "/backup/$(date +%Y-%m-%d_%H-%M-%S) /" пункт призначення - каталог з датою в імені для зручності (див. man date)

При наступному створенні резервної копії rsync видалить у каталозі /backup/latest/ файли які були видалені/виключені/змінені в каталозі джерела (змінені файли спочатку видаляються, а потім записується Нова версія). Однак видалені будуть лише імена файлів (ті самі жорсткі посилання), самі файли (дані) збережені, оскільки на них були створені жорсткі посилання в сусідньому каталозі командою "cp".

Інші інструменти

Існує маса програм для створення бекапів у Linux. Ви можете скористатися пошуком за словом «backup» у Центрі програм Ubuntu, щоб знайти доступні в Ubuntu програми для роботи з резервними копіями.

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

До речі, у мережі можна знайти і російськомовні посібники

Parted Magic

Parted Magic - ще один чудовий, але платнийдистрибутив, що містить цілу колекцію засобів для бекапу та відновлення інформації, роботи з дисками та розділами, а також відновлення втрачених даних. Він підтримує безліч ФС, LVM2 і RAID (як апаратний, так і програмний) і містить у собі такі засоби як fsarchiver , GParted , вищезгаданий Clonezilla, і все, що потрібно для описаних у цій статті способів. Крім того, до складу дистрибутива входить веб-браузер та деяке інше додаткове програмне забезпечення. Дистрибутив перекладено кількома мовами, включаючи російську, і має повноцінний графічний інтерфейс.

LParted

LParted – повнофункціональний LiveCD, призначений в першу чергу для роботи з розділами жорстких дисків (HDD), безповоротного видалення або відновлення даних та тестування обладнання. Заснований LiveCD на Lubuntu Linux. LParted є функціональним аналогом Parted Magic.

Сюди б додати про SystemRescueCD та інші

Ще трохи про збереження даних

    Для важливих даних можна створити дзеркальний розділ на двох дисках. Для цього зовсім не обов'язково мати RAID-контролер і диски однакового розміру - можна, наприклад, зібрати дзеркало з 80-гігабайтного старого гвинта і 80-гігабайтного розділу на новому. Дзеркало можна реалізувати за допомогою LVM або програмного RAID. Однак, такий спосіб марний у випадку, наприклад, попадання на шину +5В напруги ~220В або падіння метеорита на системний блок комп'ютера.

    Гіки-айтішники, які мають вдома свій сервер, можуть розширити ідею дзеркалювання та використовувати DRBD. Той самий RAID-1, але жорсткі диски знаходяться у різних комп'ютерах, що підвищує надійність.

    Сучасне зручне рішення - бекапит дані в «хмари», наприклад, за допомогою Ubuntu One, Dropbox, http://www.adrive.com/ та інших.

    Ні дзеркаловання, ні реплікація на Ubuntu One не врятують від випадкового натискання Delete, тому в будь-якому випадку робіть «класичні» бекапи. І одного чудового жахливого дня всі ваші праці та старання будуть винагороджені.

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

Завантажити програму можна на сайті розробника. На сторінці розміщені посилання для завантаження стандартної версії Rufus, та переносимою Rufus portable, які ні чим не відрізняються, крім імені файлу, що виконується, і місця зберігання налаштувань. Установки програми включають мову, що використовується, і параметри перевірки оновлень. Стандартна версія зберігає ці параметри у реєстрі, а переносна – у файлі rufus.iniкаталогу програми. Rufusне вимагає установки в системі - просто скачайте виконуваний файл і запустіть його. Інтерфейс програми дуже простий:

В цілому, програма Rufusне є чимось унікальним у сфері засобів для створення завантажувальних носіїв та головна її перевага – простота використання. Для того, щоб створити завантажувальну флешку з її допомогою, достатньо мати вихідний образ системи, що завантажується, і вміти натиснути на кнопку ”Старт”. Всі параметри та настройки, що вибираються, за замовчуванням вже розраховані на використання програми для роботи на комп'ютері стандартної конфігурації.

Найбільш просто та зручно використовувати Rufusдля створення завантажувальної флешки (завантажувального USB-диска) з ISO-образів інсталяційних дисків Windows або Linux, а також дисків аварійного відновлення системи та засобів діагностики.

При створенні завантажувальної флешки Windows достатньо вибрати пристрій, на який виконуватиметься запис та файл завантажувального iso-образу. Інші параметри програма підставить сама.

Якщо в наявності немає файлу з чином ISO, його можна створити на базі фізичного компакт-диска (або з набору файлів дистрибутива) за допомогою програм для запису CD/DVD, таких як відомі Nero, Alcohol, або вільно поширюваних CDBurnerXP або ImgBurn .

Порядок створення завантажувальної флешки з Windows наступний:

  • вибрати флешку, на яку записуватиметься образ. На відміну від багатьох подібних програм, Rufus відображає мітку тома, літеру диска та його об'єм, тому за наявності кількох знімних дисків у системі легко вибрати той, на який буде виконуватися запис.

  • вибрати схему розділу та тип системного інтерфейсу. Rufus дозволяє створювати флешки для завантаження в інтерфейсі звичайного BIOS і для завантаження в середовищі UEFI, створювати завантажувальні записи для томів MBR та томів GPT. За замовчуванням прийнято режим "MBR для комп'ютерів з BIOS або UEFI" - найпоширеніший на сьогоднішній день режим для завантажувальних флешок.

  • вибрати файлову систему, яка використовуватиметься на створюваній завантажувальній флешці. За замовчуванням для завантажувальних флешок з Windows використовується файлова система FAT32, але при необхідності можна вибрати NTFS, якщо потрібно використовувати файли розміром більше 4 ГБ.

  • встановити розмір кластера. Розмір кластера вибирається програмою виходячи з даних образу та типу файлової системи, але за необхідності його можна змінити.

  • вказати мітку тома, яка буде задана для флешки, що створюється.

  • встановити параметри форматування. Ці параметри найкраще залишити за замовчуванням і просто вибрати файл образу ISO. Для образів, створених програмою ddу Linux, потрібно вибрати параметр DD-образ.

    Після натискання кнопки Стартпрограма виконає форматування флешки, встановить ознаку активного розділу, запише головний завантажувальний запис та завантажувальний запис розділу, а також дані завантажувального носія ISO-образу. Після завершення роботи Rufusможна виконувати завантаження за допомогою отриманої завантажувальної флешки.

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

  • mob_info