

Нечасто, но возникает насущная необходимость прочитать (хотя бы частично) файл, у которого посыпались данные в некоторых секторах. На практике это может быть CD/DVD с дефектами, жёсткий диск со сбойными кластерами и т.д. Как механизировать этот процесс под Ubuntu? Ставим из репозитория:
1 |
sudo apt-get install gddrescue |
Основной рабочий модуль пакета – программа ddrescue (не перепутайте!). Её основные особенности:
- программа копирует информацию из одного источника (винчестер, CD-ROM и т.д.) в другой, пытаясь восстановить данные если есть ошибки чтения.
- не переписывает выходной файл, если это не указанно явно, поэтому при каждом запуске для одного и того же выходного файла делаются попытки перепрочитать нечитаемые данные.
- журнал все время сохраняется на диск. Поэтому, если копирование прервано, то его можно продолжить с минимальным повторным копированием, если ведется журналирование, то информация восстанавливается еще быстрее, потому что считываются лишь нужные блоки, процесс можно прекратить когда угодно, а потом продолжить.
Формат команды в терминале:
1 |
ddrescue <опции> <дохлый файл> <восстанавливаемая копия> <файл лога> |
Опции программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-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 максимум подробностей |
Полный список параметров можно посмотреть при помощи команды:
1 |
ddrescue -h |
Программа может быть использована и для прочтения блочного устройства целиком. Пример такого использования:
1 |
ddrescue -v /dev/cdrom recovered_CD.iso ddrescue.log |
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.