В последнее время ситуация с носителями, типа CD/DVD дисков, уже не так актуальна как 2-4 года назад, в наше время уже во всю популярны флешки и внешние жесткие диски, но бывают еще случаи, когда нужно скопировать диск, а он либо царапаный, либо записан не корректно и программа для записи выплевывает его. Что в таких случаях может нам предложить любимая Ubuntu?
На первый взгляд ситуация не радужная, но после некоторых проб и экспериментов могу сказать, что не все уж так плохо. Кто, как я, привык к графическому интерфейсу, может воспользоваться программой DVDisaster. Если мало, то можно запустить через Wine, к примеру ISOBuster, который можно скачать с торрент-трекеров, либо воспользоваться весьма неплохой бесплатной программой Non-Stop Copy.
Но мне оказалось и этого мало, и я захотел попробовать истинно линуксные программы. После моей беды с потерянными файлами, я начал уже без особой опаски относиться к Терминалу. Хотя я до сих пор не могу понять, как можно скажем кодировать видео из одного формата в другой, при этом создавать меню для DVD с фоном и фоновой музыкой и все это делать в консоли. Это ж сколько нужно команд вбить в Терминале, сколько всяких путей прописать, названий файлов и т.д. По мне такие вещи удобней делать исключительно с GUI интерфейсом, но опять таки, это сугубо мое мнение. Но вот что касается восстановления файлов, создания образов, копирования нечитаемых DVD дисков, то тут Терминал может оказаться как нельзя кстати и не такой уж он и страшный. Итак идем дальше.
dd
Программа dd. Очень старая и очень популярная среди линуксоидов программа. При помощии dd создают образы жестких дисков, флешек и других накопителей, создают образ системы и т.д. Она поблочно копирует файлы из одного места в другое. Чтобы скопировать «битый» DVD при помощи этой программы, выполним следующее:
dd if=/dev/cdrom of=image.iso conv=noerror
dev/cdrom — это ваш DVD привод
image.iso — образ копируемого DVD/CD диска
conv=noerror — параметр, который указывает, что нужно копировать, игнорируя ошибки
Это простейший пример, который показывает как можно использовать программу dd. При желании можно найти массу информации о данной программе: настройки, параметры и прочее.
Далее идет тяжелая артиллерия. Опытные пользователи говорят, что «битые» диски лучше всего копировать программами gddrescue (в Терминале пишем ddrescue) и dd_rescue. Несмотря на схожесть названий, это совершенно разные программы. Установить эти программы можно из Центра приложений Убунту. И добавлю от себя — gddrescue лучше чем dd_rescue. Итак идем далее.
gddrescue
Установим ddrescue. Установить можно из Центра приложений, либо командой:
sudo apt-get install gddrescue
- gddrescue копирует информацию из одного источника (винчестер, CD-ROM и т.д.) в другой, пытаясь восстановить данные если есть ошибки чтения.
- gddrescue не затирает выходной файл, если это не запрошено, поэтому при каждом запуске для одного и того же выходного файла делаются попытки заполнить пробелы.
- gddrescue работает абсолютно в автоматическом режиме.
- Если ведется журнал работы, то информация восстанавливается еще эффективее, потому что считываются лишь нужные блоки. Более того, восстановление можно прекратить когда угодно вам, а потом продолжить.
- Журнал все время сохраняется на диск. Поэтому, если копирование прервано, то его можно продолжить с минимальным повторным копированием.
Как использовать данную программу? Программа консольная, поэтому работать с ней будем в Терминале, собственно как и со всеми программами, которые описаны в этом обзоре.
Схема использования: ddrescue [options] infile outfile [logfile]
Параметры:
-h, --help
показать справку
-V, --version
показать номер версии
-b, --block-size=bytes
аппаратный размер блока на исходном устройстве [512]
-B, --binary-prefixes
использовать степени двойки в числах [по умолчанию SI]
-c, --cluster-size=blocks
число аппаратных блоков для разового копирования [128]
-C, --complete-only
не считывать данные дальше, чем указано в лог-файле
-e, --max-errors=n
максимально разрешенное количество областей с ошибками
-i, --input-position=pos
начальная позиция в исходном файле [0]
-n, --no-split
не стараться дробить области с ошибками
-o, --output-position=pos
начальная позиция в целевом файле [ipos]
-q, --quiet
минимум подробностей
-r, --max-retries=n
выйти после этого числа повторов чтения(-1=до бесконечн.)[0]
-s, --max-size=bytes
максимальный объём данных для копирования
-t, --truncate
очистить целевой файл перед записью
-v, --verbose
максимум подробностей
Полный список параметров можно посмотреть при помощи команды:
ddrescue -h
Пример использования:
ddrescue -v /dev/cdrom Recovered.iso ddrescue.log
В данном примере будет копироваться диск в приводе, с созданием образа Recovered.iso и лога ddrescue.log с применением параметра -v (максимум подробностей)
dd_rescue
Далее идет программа dd_rescue. Установить также можно через Центр приложений Убунту, либо в Терминале:
Схема использования: dd_rescue [options] infile outfile
Параметры:
-s ipos начальная позиция в исходном файле (default=0),
-S opos начальная позиция в целевом файле (def=ipos),
-b softbs размер блока для копирования (def=65536),
-B hardbs размер блока во время возникновении ошибок копирования (def=512),
-e maxerr окончание работы после установленного количества ошибок (def=0=infinite),
-m maxxfer максимальный объём копируемых данных (def=0=inf),
-y syncfrq частота запросов fsync к целевому файлу (def=512*softbs),
-l logfile имя файла для регистрации ошибок и вывода сводки (def=»»),
-o bbfile имя файла для регистрации номеров сбойных блоков (def=»»),
-r копирование данных в обратном направлении (def=forward),
-t очищать целевой файл перед записью (def=no),
-d/D использовать O_DIRECT для ввода/вывода (def=no),
-w окончание работы во время возникновения ошибок (def=no),
-a запись файла с пустотами (def=no),
-A всегда записывать блоки, заполняя нулями сбойные (def=no),
-i интерактивный режим: спрашивать перед перезаписью данных (def=no),
-f принудительный режим: пропустить ряд проверок (def=no),
-p сохранять права доступа и владельца файла (def=no),
-q минимум подробностей,
-v максимум подробностей,
-V вывести номер версии и выйти,
-h вывести данную справку и выйти.
Пример использования:
dd_rescue -v /dev/cdrom Recovered.iso
recoverdm
Установить recoverdm можно как и все предыдущие, в данном обзоре, программы из Центра приложений, либо командой:
sudo apt-get install recoverdm
Схема использования: recoverdm -t type -i file/devicein -o fileout [-l list] [-n retries] [-s speed]
Параметры:
-t тип данных
-i откуда копируем
-o восстановленный файл
-l этот файл будет содержать смещение из плохих(!) блоков
-n количество попыток чтения прежде чем перейдет к следующему сектору
-s скорость чтения приводов CD/DVD (по умолчанию 1х)
-r количество повторов при чтении с RAW
Пример использования:
recoverdm -i /dev/cdrom -o Recovered.iso
А если вы беспокоитесь о стабильной работе операционной системы, то советую настроить резервное копирование при помощи утилиты Remastersys Backup.
Ну вот в принципе и заканчивается данный обзор. Могу лишь написать, что по умолчанию программа recoverdm очень медленно копировала битый диск, в отличии от gddrescue и ddrescue. Я остановил свой на выбор именно на них.
Как правильно сохранить данные
Очень полезная статья. Я пользовался «семёркой» с 2011 по конец 2015 годов — надоела. Поставил Ubuntu 14.04. Сейчас налаживаю виртуальную машину. Нужен «нормальный» образ Win 2000. Диск — имеет место быть. От слова — «есть». А вот нормального образа в сети не нашёл. Зато узнал как делать образы в Ubuntu. СПАСИБО.