Прежде всего, вы правы относительно запуска fsck на разделе - fsck работает только с файловыми системами, а не с целыми дисками. Вы можете получить список всех разделов на диске с помощью fdisk -l /dev/sdd
.
Тип вашей файловой системы, вероятно, ext3 (по умолчанию в большинстве дистрибутивов Linux), что означает, что он обычно передает fsck, пока его журнал чист. fsck -f
будет, как упоминалось выше, принудительно провести полную проверку.
Однако, если у вас есть ошибки чтения на диске, никакое количество fsck не поможет dd - поскольку dd действительно не заботится о содержимом диска.
Чтобы заставить dd читать диск и продолжить при ошибках чтения, используйте dd conv=noerror,sync
, который будет продолжать при ошибках чтения и добавлять нулевые байты к любому блоку при возникновении ошибки чтения.
После того, как вы закончили резервное копирование, вы должны запустить fsck -f
клон, чтобы запустить его снова и снова.
Другой совет: если вы сделаете резервную копию раздела в файл, вы можете подключить его с помощью loopback mount -o loop filename.ext3 /mountpoint
. Также, скажем, вы клонируете раздел 200G на диск 500G, затем вы можете запустить resize2fs /dev/sdx1
(где sdx - ваш новый диск, разделенный одним разделом 500G), и файловая система будет изменена до 500G.
Наконец, если диск имеет такую форму, что он дает вам ошибки чтения, я бы посоветовал вам не выключать и не включать диск до тех пор, пока вы не закончите восстановление данных. В некоторых режимах сбоев диск в какой-то момент просто перестает вращаться или не распознается ОС, и в этот момент получение данных с диска становится довольно дорогим.