Как стать автором
Обновить

Сохранение данных в ос windows с помощью ddrescue

Время на прочтение2 мин
Количество просмотров24K
Многие слышали о *nix-утилите GNU ddrescue, предназначенной для сохранения данных, читающихся с ошибками (существует две утилиты с таким названием, но я расматриваю именно GNU-версию). На хабре был топик о ней, рассказывающий основные особенности данной утилиты — копирование данных с записью в лог с последующими попытками считать проблемные места. Но мало кто знает, что её можно использовать в ос семейства windows, под катом я расскажу, как.


Однажды, после неполадок с питанием, старый файловый сервер под управлением ОС windows частично вышел из строя и перестал включаться. Аналогов древнему железу никто искать не стал, поэтому единственное, что от него было нужно — сделать образ зашифрованного раздела, находящегося на аппаратном raid5. К сожалению, другой материнской платы с шиной pci-x, куда можно было бы вставить raid-контроллер, не нашлось, поэтому сделать это надо было на старом сервере. После диагностики и замены вышедших из строя деталей сервер стартанул, но уходил в перезагрузку примерно раз в 5 минут. Было решено использовать ddrescue. На сайте производителя raid нашелся драйвер под SLES11, корректной инструкции к которому, к сожалению, не было и завести его не получилось. Тогда я подумал о том, что собрать ddrescue для windows, для которой драйвер raid у меня имелся, проще, чем заставить работать драйвер raid-контроллера под linux. Начал я с установки cygwin. На официальном сайте лежит веб-инсталлятор, который качает с указанного зеркала нужные файлы. За 5 минут до ребута инсталлятор не успевал скачать всё, что нужно, поэтому качать пришлось на другом ПК, потом скормить дистрибутив инсталлятору. Самый большой сюрприз ожидал меня на этапе выбора дополнительного ПО, устанавливаемого вместе с cygwin — там был скомпилированный пакет ddrescue! Поэтому самому собирать ничего не пришлось.

После установки необходимо узнать, как cygwin нумерует диски, чтобы не затереть не то, что нужно. Все устройства именуются /dev/sd*, где последний символ соответствует номеру диска в «управлении дисками» windows (диск 0 — sda, диск 1 — sdb и т.д.). fdisk/cfdisk вместе с cygwin не поставляется и в предкомпилированных пакетах отсутствует, поэтому для того, чтобы убедиться, что нужный диск значится именно под тем именем, под которым предполагается, можно предпринять следующие шаги:
  • просмотр данных раздела или диска командой less -f (например, можно увидеть сигнатуру NTFS)
  • просмотр размера разделов командой cat /proc/partitions
  • просмотр количества разделов на харде командой ls /dev/sd*

Дальше — дело техники. Был написан однострочный bat-файл со следующим содержимым
c:\cygwin\bin\ddrescue.exe -f -D -v /dev/sdb /dev/sdc log.txt
и положен в автозагрузку. Теперь клонированию не страшны перезагрузки, через несколько часов копия готова.
Все операции проводились в старой ос, в windows vista и новее, возможно, для доступа к дискам необходимо будет отключить UAC/запускать батник от администратора.
Теги:
Хабы:
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн