Архивные материалы

Резервное копирование информации при помощи DD

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

Получайте новые записи в блоге через RSS
Хижина дяди Володи
Работайте, негры, работайте! Солнце еще высоко…
Об авторе
Услуги
Партнерская программа
30 мая 2008 |
Администрирование
Резервное копирование информации при помощи DD
Для того, чтобы сделать резервную копию (файл-образ) винчестера для последующего восстановления вовсе не нужны коммерческие, проприетарные утилиты — есть старый, как мир,
dd
. Всё, что нужно сделать -
просто правильно его использовать. Утилита dd есть в любом дистрибутиве, и даже в Knoppix, который можно использовать для восстановления данных.
Вообще делать копию с активного (примонтированного на запись) раздела не рекомендуется, ибо dd не сможет скопировать файлы, если в них идет запись. Но, я честно говоря, делал такие бэкапы неоднократно, оказывались они вполне рабочими и уже пару раз меня спасали.
Но, чтобы точно не было никаких проблем стоит загрузиться
с любого LiveCD диска с Линукс / BSD. После этого залогиниваемся под root-аккаунтом. Убеждаемся, написав в консоли df / mount, что ни один из тех разделов, что мы собираемся копировать, не примонтирован на запись. Решаем, куда будем архивировать данные: это может быть другой раздел на винчестере, внешний жёсткий диск или по сети.
/dev/hda
это винчестер, который архивируем,
/dev/sda1
— это раздел внешнего винчестера или другая партиция, на которую архивируем,
hda.img.gz
— получившийся сжатый файл-образ.
Создание резервной копии
dd if=/dev/hda of=/dev/sda
— полная копия жесткого диска, с одного на другой.
dd if=/dev/hdx of=/path/to/image
— копия диска в какую-то папку.
dd if=/dev/hda | gzip -c > /mnt/sda1/hda.img.gz
— архивирование с одновременным сжатием, результат чего записывается в файл. hda.img.gz
dd if=/dev/hda conv=sync,noerror of=/dev/sda
— п
араметр "conv=sync,noerror" указывает
dd
не читать блок, если при этом происходит ошибка, но записать в архивируемый файл-образ данные, чтобы размер блока не менялся.
dd if=/dev/hda
bs=64K
f=/dev/sda
— п
араметр "bs=64K" это размер блока в килобайтах — использование такого большого размера блока ускоряет процесс копирования. Параметр bs можно сделать ещё больше, а именно равным размеру кеша копируемого диска (например bs=8m), это сильно ускорит весь процесс.
dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.img.gz
— все параметры можно использовать одновременно.
dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c | ssh -c blowfish user@hostname "dd of=hda.img.gz bs=64k"
— копирование удаленно по сети, с использованием SSH. Архивный файл появится в домашней директории пользователя user на машине hostname. Если сеть маленькая, лучше вместо hostname использовать просто ip-адрес. Опция -c blowfish заставляет SSH выбрать алгоритм шифрования Blowfish, который быстрее остальных шифрует данные.
Восстановление данных из резервной копии
gunzip -c
/mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
— восстановление с внешнего жестокого диска или другого раздела. Все параметры были разъяснены ранее.
dd if=hda.img.gz | ssh -c blowfish user@deadhost "gunzip -c | dd of=/dev/hda1 bs=64k"
сетевой вариант с восстановлением из файл-образа.
Следует помнить, что в данном случае не следует использовать опцию
conv=sync,noerror
в опциях
dd
— если вы всё-таки включите эту опцию, в большинстве случаев это исказит записываемые данные (это заставляет dd не дожидаться данных, приходящих по сети, если целый блок недоступен).
Заметки по теме:
Синхронизация данных между usb флешкой и компьютером
Чипсеты: новый Intel P45 или альтернативы P35, X38, X48
CVSup — обновление портов FreeBSD
Комментариев: 7
anonymous
(2 июля 2008, 17:09)
>dd if=/dev/hda of=/dev/sda
При этом надо, чтобы совпадали размеры винчестеров.
Владимир Лапшин
(7 июля 2008, 16:56)
А что произойдет если они не совпадут? Насколько я знаю надо только, чтобы тот, на который производится копирование был не меньше, чем то, с которого копируется.
При этом свободное пространство потеряется конечно.
Дмитрий
(26 июля 2009, 22:01)
Свободное пространство не теряется, просто останется не размеченное место на диске. Его можно потом с помощью GParted добавить к любому разделу.
Vulpes
(5 ноября 2009, 21:37)
Да, но если конечный будет больше конечно ничего страшного. Но как потом больший диск заталкивать в меньший при востановлении?? ))))))
Владимир Лапшин
(9 ноября 2009, 17:49)
Vulpes, запихивать никуда ничего, конечно же, не придется. DD при копировании на диск большего объема создает раздел равный тому, с которого идет копирование.
Zenith
(29 сентября 2011, 14:29)
Классная статья. Но для полноты картины не хватает восстановления MBR средствами dd
# dd if=/dev/hda of=/dev/(устройство на которое переносим MBR) bs=512 count=1
или же копирование MBR в файл на винте(флэшке/в сетевой каталог)
# dd if=/dev/hda of=/home/admin/boot.mbr bs=512 count=1
и восстановление из файла
# dd if=/home/admin/boot.mbr of=/dev/hda bs=512 count=1
Ити
(9 декабря 2011, 15:51)
«Но как потом больший диск заталкивать в меньший при востановлении?? ))))))»
Обновить образ, только что развернутый на больший диск не получится. Ибо тогда его на этого же размера (или бол.) диск можно развертывать. При развертывании большего нераспределенного пространства в образе, снятом с данного диска на диск меньшего размера, DD не сможет его усечь. Что плохо, конечно, но это расплата за «универсализм» dd.
Напишите комментарий
Имя (обязательно)
E-Mail (обязательно)
Сайт
Уведомите меня о новых комментариях через электронную почту
UMPC (УльтраМобильный Персональный Компьютер) RoverMedia A700GQ
CVSup — обновление портов FreeBSD
Обновления
Через RSS
На E-mail
Друзья
Лихорадочный бред пациента палаты №6
E-mail: root {at} brimz.ru
ICQ: 7-045-655
Свежие записи
Визаран из Паттайи в Камбоджу
Тренажерные залы Паттайи
Средства для и после бритья в Таиланде
Первый счет за коммунальные платежи в апартаментах
Сколько времени идет письмо из Таиланда до Москвы
Рубрики
SEO
Usability
WordPress
Администрирование
Железо
Жилье
Здоровье
Мир большой
Полезняшки
Разное
Реклама
Позвонить +7 (343) 382-33-16