Многие знают про утилиту dd - очень удобный инструмент.
В частности очень хорошо подходит для клонирования дисковых разделов (или целых дисков).
Недавно в ходе нескольких экспериментов выяснил, что такой образ диска можно сильно сжать с помощью GZip.
Например, заполненный на около 5Гб NTFS-раздел объемом 31Гб в сжатом состоянии занимает всего 1.7Гб. Единственное неудобство в том что на моем AMD Athlon 1700+ создание этого образа заняло 50 минут, а подсчет md5-суммы раздела-оригинала и упакованного образа по 12 минут. На системах с более производительным центральным процессором данный процес займет гораздо меньше времени.
Так как основной объем информации на системных жестких дисках (конечно за исключением медиа-данных) очень хорошо поддается сжатию, и часто многие выделяют несколько разделов под ОС, таким образом можно быть уверенным что образ раздела удастся сжать.
В ходе тестов на различных разделах степень компрессии несколько шокировала. Например, FAT-16 раздел размером 40Гб был сжат до 30МБ (контрольные суммы проверил - они совпали)!!!
Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz
Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:
#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"
Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096
также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5
Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum
Приятной всем работы ;)
Подписаться на:
Комментарии к сообщению (Atom)
13 комментариев:
В натуре затейник, как сделал то разел FAT-16 на 40 гигов?
У нег ж ограничение на 2 гига, ну или с шаманством 4 предел.
Где опечатка? жир32 на 40 или жир16 на 4?
Действительно,
FAT-16 раздел размером 40Гб. Точно ФАТ-16? даже если ФАТ-32... ФАТ-32 точно умеет 40 гиг адресовать? Может таки НТФС?
brandy, по ограничениям на размер FAT-16 ничего не скажу, а вот FAT-32 точно помню, что винда (хотя это винда) делала разделы и по 80 гиг...
а вообще на той машине стоит UnixWare (не я ее туда засунул), может тот раздел не FAT-16, но обозначен он именно так...
Правда мог только размер партиции попутать... проверить пока немогу - машина в ремонт ушла :)
Та может действительно, показало что FAT16, хотя на самом деле был FAT32.
И еще:
#dd if=/dev/sda1 bs=8096 | md5summ - > sda1.dd-image.md5
после md5summ минусик не нужен вроде? Только перенаправление вывода?
Конечно не md5summ, a md5sum (поправил).
А насчет минуса - читал ман, прежде чем писать, там говорится что можно с минусом, можно без. Я решил минус указывать для так сказать надежности ;)
То что 40 гигов вжались в 30 мег просто повезло. Зависит только от содержимого раздела. Если раздел будет забит фильмами ави или музыкой мрз, почти ничего не сожмется.
И еще, bzip2 медленнее, но намного эффективнее жмет.
это смотря насколько 40 гигов заполнены. пустые сектора сжимаются практически в ноль :)
2 serj, так так и написал, что если там не будет меди-файлов пожмется, а вот bzip2 использовать не смог - не хочет он со стандартного ввода данные брать - ему файл подавай...
Для поиска PID по названию, наверное, лучше использовать pidof
Кстати, странно, но "у меня все работает"(с) и для bzip'а. Конечно маловероятно, но может системно специфичное(у меня Дэбиан, на чем проверял автор не знаю).
Может стоить попробовать скормить так:
dd if=... | bzip2 - > file
Вроде бы тире должно быть указателем на stdin.
На дисках я не проверял, но файл bzip'ом и сжать и восстановить можно, только имя теряется (не самая важная инфа для диска).
У меня стоит Slackware 12.
Пробовал bzip2 впервую очередь. и именно по тому что жмет лучше.
Сейчас не скажу пробовал ли в качестве параметра ему скармливать "-", но провозившись 2 часа так и не получил результата..
Для создания образов ntfs лучше применять утилиту ntfsclone (из ntfsprogs) в сочетании с gzip или bzip2. Эта утилита создает образы, совместимые с dd, но заменяет неиспользуемое пространство на диске (например, сектора, на которых раньше хранились стертые файлы) нулями, что экономит место на диске, на котором хранятся образы.
Отправить комментарий