Блоки Mark ext4 как плохо вручную, не пробуя к чтению-записи

У меня есть 10-летний 320 Гбит жесткий диск, который я использовал в качестве внешнего диска, и он переместился со мной в течение большой части тех 10 лет. Само собой разумеется, это пережило больше, чем несколько падений (включая тех в то время как в операции), и получил некоторые поврежденные секторы. Когда я на самом деле начал получать считанные ошибки, не только УМНЫЕ предупреждения перемещения сектора, я отодвинул все важное от него (использование ddrescue для некоторых файлов). Уверенный я не могу больше доверять этому диску, но я все еще хочу использовать его, чтобы скопировать однажды и сохранить некоторый movies/FLACs, освободить некоторое пространство на SSD+HDD ноутбука, пока внешний диск все еще работает. Я не забочусь о потере некоторых или всех этих файлов, как я любой имеет резервные копии дома и/или может повторно загрузить легко.

Проблема, если я форматирую этот диск и начинаю копировать файлы там, где-нибудь приблизительно 25%, я получаю отказ при записи, требуя USB-кабеля, отключают (^C недостаточно!), то же происходит с badblocks и в режиме чтения и в режиме записи. После проигрывания немного с badblocks'"от" и "до" параметров, я нашел, что 90% + диска в порядке, и существует в основном 3 области сбойного блока. Короткий сценарий и я получили текстовый файл с номерами блока (да, я не забыл -b 4096 для badblocks) покрытие этих областей и большого дополнительного пространства вокруг для сейфа. Но когда я сделал e2fsck -l badblocks.txt, это все еще зависает! кажется, что это пытается считать те сбойные блоки так или иначе, не только отметить как плохо и забыть. Там какой-либо другой путь состоит в том, чтобы обойти это? Или возможно другая файловая система (думал о FAT, но я не вижу способа питаться badblocks.txt кому: fsck.vfat)? Или 4 отдельных раздела, покрывающие "хорошие" области, являются лучшим решением для этого случая?

Обновление: некоторые кавычки от man сделать случай более ясным

man e2fsck:

-i input_file Read a list of already existing known bad blocks. Badblocks will skip testing these blocks since they are known to be bad.

таким образом, badblocks обещания пропустить блоки перечислили (и это делает, поскольку это не зависает со всеми подозрительными диапазонами в badblocks.txt!)

man badblocks:

-l filename Add the block numbers listed in the file specified by filename to the list of bad blocks. The format of this file is the same as the one generated by the badblocks(8) program.

нет никакого обещания, это не попытается получить доступ к этим блокам, все же. Но какого черта это может хотеть получить доступ к ним?

Note that the block numbers are based on the blocksize of the filesystem. Hence, badblocks(8) must be given the blocksize of the filesys‐ tem in order to obtain correct results. As a result, it is much simpler and safer to use the -c option to e2fsck, since it will assure that the correct parameters are passed to the badblocks program.

Я был бы счастлив, но это зависает на первом сбойном блоке. Плюс, -c является несовместимым с -l - таким образом я или сканирую диск или вручную отмечаю поврежденные секторы. Но то, почему, если я выбираю последнюю опцию, это все еще хочет получить доступ к этим, предположительно, "плохим" секторам, вне моего понимания...

1
задан 23 March 2019 в 10:40

1 ответ

Надлежащий путь к badblock Ваш диск также:

sudo e2fsck -fck /dev/sdc1 # тест только для чтения

или

sudo e2fsck -fcck /dev/sdc1 # неразрушающий тест чтения-записи (рекомендован)

-k важен, потому что он сохраняет предыдущую таблицу дефектных блоков и добавляет любые новые сбойные блоки к той таблице. Без-k Вы освобождаете всю предшествующую информацию о сбойном блоке.

-fcck параметр...

   -f     Force checking even if the file system seems clean.

   -c     This option causes e2fsck to use badblocks(8) program  to  do  a
          read-only  scan  of  the device in order to find any bad blocks.
          If any bad blocks are found, they are added  to  the  bad  block
          inode  to  prevent them from being allocated to a file or direc‐
          tory.  If this option is specified twice,  then  the  bad  block
          scan will be done using a non-destructive read-write test.

   -k     When combined with the -c option, any existing bad blocks in the
          bad blocks list are preserved, and any new bad blocks  found  by
          running  badblocks(8)  will  be added to the existing bad blocks
          list.
2
ответ дан 7 December 2019 в 13:18

Другие вопросы по тегам:

Похожие вопросы: