Как я могу частично скопировать файл с сломанного диска?


10

У меня сломан диск, с которого мне нужно скопировать файл 60G.

Время от времени диск сбрасывается, и я не могу закончить копирование.

Я хотел бы попробовать скопировать частичные фрагменты и собрать их все вместе.

Как я могу это сделать?


Старомодный (старой школы) способ будет использовать dd.
G-Man говорит: «Восстанови Монику»

1
Другим вариантом является использование, например, split -b[bytes] yourbigFile
Валентина Баджрами

3
Если вы пытаетесь скопировать файл с плохого диска, то - ddrescueили нет - вы, вероятно, ошибаетесь. Поскольку файл зависит от файловой системы, и поскольку файл, скорее всего, не является смежным, выполнение операций чтения для получения его с неисправного устройства почти наверняка потребует большего количества обращений к диску, чем вы можете себе позволить. Я бы изобразил блочное устройство на известном исправном устройстве как можно ближе к одному проходу, а затем максимально сосредоточил усилия по восстановлению на смонтированном файле образа.
mikeserv

Ответы:


14

Используйте ddrescue, который предназначен для этого типа сценария.

Он использует файл журнала для отслеживания частей данных, которые он успешно скопировал - или иным образом. В результате вы можете останавливать и перезапускать его столько раз, сколько необходимо, при условии сохранения файла журнала.

Смотрите Ddrescue - инструмент для восстановления данных


4

Использование dd.

Это может многое сделать, но вам нужна следующая форма:

dd if=<source> of=<destination> bs=<block size> count=<blocks> skip=<offset>

Например, чтобы скопировать 2-й в 4-й килобайт из файла, вы должны сделать:

dd if=in.dat of=out.dat bs=1K count=2 skip=2

Учитывая особенности того, что вы пытаетесь сделать, вы также можете попробовать добавить conv=sync,noerror:

dd if=in.dat of=out.dat bs=1K count=2 skip=2 conv=sync,noerror

noerrorПозволяет попытаться продолжить , когда он сталкивается с ошибкой, и syncделает площадку не удалось блоки с нулями. Так что в идеале вы должны получить нужный файл, но с нулями для блоков, которые он не может прочитать. Тем не менее, это зависит от вашего жесткого диска, что он на самом деле будет делать. Некоторые жесткие диски просто закрываются, когда они видят ошибку, и тогда вы все равно не получите свои данные.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.