Данные могут быть сохранены, только если некоторые или большая их часть все еще там.
Вот простой живой тест методом грубой силы (с использованием pv и lzop), чтобы увидеть, как далеко (и сколько) дд получил:
hd=/dev/sdc # change to whatever device or partition needs testing.
pv -EcN raw ${hd} | lzop | pv -cN compressed | wc -c
На жестком диске 160 ГБ, который не был удален dd, через минуту тест выглядит следующим образом:
raw: 5.12GiB 0:01:11 [46.1MiB/s] [==> ] 3% ETA 0:33:15
compressed: 4.81GiB 0:01:11 [45.9MiB/s] [ <=> ]
Обратите внимание, что сжатое число довольно близко к необработанному числу. Пока это тот случай, когда работа выполнена, большая часть данных все еще существует. Процент будет зависеть от степени заполнения жесткого диска до возникновения проблемы, т. Е. Если бы жесткий диск или раздел был заполнен только на 10%, то 8% от lzop было бы нормальным. Это также зависит от того, какие данные заполняли HD - к счастью, lzop - слабый компрессор, который здесь очень помогает.
Давайте попробуем это со всеми нулями:
hd=/dev/zero # change to whatever device or partition needs testing.
pv -cN raw ${hd} | lzop | pv -cN compressed | wc -c
... который через 8 секунд показывает:
raw: 6.81GiB 0:00:08 [ 891MiB/s] [ <=> ]
compressed: 31.8MiB 0:00:08 [4.06MiB/s] [ <=> ]
Сжатый размер теперь составляет менее 1% от исходного. Если весь жесткий диск подобен этому, данные капутируются.
(Примечание: чтение больших жестких дисков занимает больше времени, поэтому этот метод будет улучшен путем выборки. Вместо того, чтобы читать каждый блок, мы могли бы использовать dd для чтения n блоков, пропустить 10n блоков и передать их на необработанный ввод выше.)