Для того, чтобы сделать резервную копию (файл-образ) винчестера для последующего восстановления вовсе не нужны коммерческие, проприетарные утилиты — есть старый, как мир, 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 of=/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 не дожидаться данных, приходящих по сети, если целый блок недоступен).
No comments:
Post a Comment