4

Я использую ddrescue для создания образа диска, и он замедлился примерно до 0,1% так же быстро, как и начался, при этом я не уверен, что он вообще закончится, во всяком случае, я не уверен, что смогу завяжите эту машину, чтобы долго это делать. Надеетесь, что кто-то может помочь или порекомендовать какой-то другой способ создания образа диска?

Настройка:- MacBook Pro работает 10,8 - ddrescue установлен из Macports - Исходный диск находится в морозильной камере, с кабелями, идущими к ноутбуку с помощью адаптера SATA к USB - Целевой диск в идентичной модели 640-гигабайтного MacStor в SATA на USB корпус - команда была использована:- лог - файл записывается в /root/rescue.log (на любой файловой системы / на Макбук)- терминальный вывод из команды , и моя попытка возобновить ниже, вы можете видеть , что это было в среднем 7000kbs и в настоящее время в среднем около 5000 бит / с!

Любые советы очень ценятся! Iain

Iains-MacBook-Pro:~ root# ddrescue -f -g -v -n /dev/disk1 /dev/disk2 /root/rescue.log
ddrescue: warning: Options -aCdDeEIMnOprRStTx are ignored in generate mode.


GNU ddrescue 1.16
About to generate an approximate logfile for /dev/disk1 and /dev/disk2
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
rescued:     2543 MB,  generated:    2731 MB,  current rate:    8847 kB/s
   opos:     2731 MB,                          average rate:    9134 kB/s
Generating logfile...
ddrescue: Error opening logfile '/root/rescue.log' for writing: No such file or directory
Fix the problem and press ENTER to retry, or Q+ENTER to abort. 


rescued:   474160 MB,  generated:  499761 MB,  current rate:     5461 B/s
rescued:   474160 MB,  generated:  499761 MB,  current rate:     3449 B/s
   opos:   499761 MB,                          average rate:    7440 kB/s
Generating logfile...
Interrupted by user
Iains-MacBook-Pro:~ root# 
Iains-MacBook-Pro:~ root# ddrescue -f -g -v -n /dev/disk1 /dev/disk2 /root/rescue.log
ddrescue: warning: Options -aCdDeEIMnOprRStTx are ignored in generate mode.


GNU ddrescue 1.16
About to generate an approximate logfile for /dev/disk1 and /dev/disk2
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   474160 MB,  generated:  499761 MB
Current status
rescued:   474164 MB,  generated:  499765 MB,  current rate:     5041 B/s
   opos:   499765 MB,                          average rate:     8793 B/s
Generating logfile...

2 ответа2

3

Это ожидаемое поведение ddrescue. Он замедляет чтение небольших фрагментов в поврежденных областях диска. Учитывая, что ваш диск находится в морозильной камере, я предполагаю, что он в беде, и вы пытаетесь спасти информацию. Ddrescue - инструмент, который я бы использовал в этой ситуации.

Из руководства

Алгоритм ddrescue выглядит следующим образом (пользователь может прервать процесс в любой момент, но имейте в виду, что неисправный диск может блокировать ddrescue на долгое время, пока ядро не сдастся):

1) При желании прочитайте файл журнала, описывающий состояние многоэтапного или ранее прерванного спасения. Если лог-файл не указан или является пустым или не существует, пометьте весь спасательный домен как не опробованный.

2) Считайте непроверенные части входного файла, помечая сбойные блоки как необрезанные и пропуская их, пока не будет опробован весь спасательный домен. Только непроверенные области читаются большими блоками. Обрезка, расщепление и повторные попытки выполняются по секторам. Каждый сектор испытывается не более двух раз; первый на этом этапе как часть большого блока чтения, второй на одном из шагов ниже как один сектор чтения.

3) Считывать назад один сектор за один раз необрезанные блоки, пока не будет найден плохой сектор. Для каждого необрезанного блока отметьте плохой сектор, найденный как плохой сектор, и оставшуюся часть этого блока как неразделенную.

4) Считывать вперед по одному сектору неразделенные блоки, помечая плохие сектора, которые были найдены как плохие. После того, как количество последовательных поврежденных секторов будет найдено в достаточно большом блоке, блок будет разделен пополам, и чтение продолжится во второй половине. Это рекурсивно разделяет наибольшие отказавшие блоки, не создавая слишком большой файл журнала.

5) При желании попробуйте снова прочитать поврежденные сектора, пока не будет достигнуто указанное количество повторных попыток.

6) При желании напишите файл журнала для последующего использования.

1

Согласно информации, приведенной в руководстве в ответе @ForeverWintr, может оказаться идеальной попытка разорвать соединение и попытаться прочитать диск в обратном направлении, что может позволить вам быстро получить дополнительную информацию, если ваш диск умирает. Вы также можете сказать ddrescue, что сначала пропускаете большие блоки, но в конце концов, да, DDRescue может занять целую вечность (навсегда?) чтобы попытаться восстановить абсолютно столько, сколько может. Вы можете достичь точки, когда вам просто нужно взять то, что вы можете получить, и списать биты, которые он не может прочитать. Однако, чем дольше вы оставляете это, тем больше это восстанавливается. У меня был накопитель на 320 гигабайт, на который ушло несколько дней, чтобы вытащить практически все данные - процесс шел очень медленно, так как диск умирал - я подозреваю, что в итоге он получил всего около 100 тысяч дисков.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .