Я случайно использовал dd
на своем HDD ( /dev/sdc
), когда хотел записать ISO на USB-накопитель. Я попытался поискать и прочитал, что если данные были перезаписаны, то мне конец...
Есть ли способ восстановить данные? Могу ли я что-то сделать?
решение1
Data Destroyer перезаписывает сектора на жестком диске. Восстановить перезаписанные сектора невозможно. Из-за того, как Linux распределяет файлы по секторам (именно поэтому разделы ext не нужно дефрагментировать), маловероятно, что все содержимое большинства ваших файлов сохранилось. Восстановите из резервных копий, вы ведь их создали, верно? А если нет, то вы только что узнали, почему это нужно делать. Извините.
решение2
Данные можно сохранить только в том случае, если часть или большая их часть все еще сохранилась.
Вот простой тест методом перебора в реальном времени (с использованиемпвиlzop) чтобы увидеть, как далеко (и насколько)ддполучил:
hd=/dev/sdc # change to whatever device or partition needs testing.
pv -EcN raw ${hd} | lzop | pv -cN compressed | wc -c
На жестком диске объемом 160 ГБ, который не был стертдд, через минуту тест выглядит так:
raw: 5.12GiB 0:01:11 [46.1MiB/s] [==> ] 3% ETA 0:33:15
compressed: 4.81GiB 0:01:11 [45.9MiB/s] [ <=> ]
Обратите внимание, каксжатыйЧисло довольно близко ксыройчисло. Пока это так, когда работа выполнена, большая часть данных все еще существует. Процент будет меняться в зависимости от того, насколько был заполнен жесткий диск до возникновения проблемы, т.е. если HD или раздел был заполнен только на 10%, то 8% отlzopбыло бы нормально. Это также зависит от того, какие данные заполняли жесткий диск -- к счастью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] [ <=> ]
Theсжатыйразмер теперь составляет менее 1% отсырой. Если весь жесткий диск такой, то данныекапут.
(Примечание: чтение больших жестких дисков занимает больше времени, поэтому этот метод можно улучшить с помощью выборки. Вместо чтения каждого блока мы могли бы использоватьддчитатьнблоки, пропустить вперед10нблоки и передать это всырой(ввод выше.)