私は10歳の320 Gb HDDを外付けドライブとして使用していて、その10年間ほとんど一緒に移動しました。言うまでもなく、それは数回の滝(稼働中の滝を含む)を超えて生き残り、いくつかの不良セクターを獲得しました。 [〜#〜] smart [〜#〜]セクターの再配置の警告だけでなく、実際に読み取りエラーが発生し始めたとき、 (一部のファイルにはddrescue
を使用)。確かにこのドライブはもう信用できませんが、外付けドライブが機能している限り、それを使って一度コピーしていくつかの映画/ FLACを保持し、ラップトップのSSD + HDDの一部のスペースを解放したいと思います。自宅にバックアップを持っているか、簡単に再ダウンロードできるので、これらのファイルの一部またはすべてが失われてもかまいません。
問題は、このドライブをフォーマットしてそこにファイルのコピーを開始すると、約25%の場所で書き込みエラーが発生し、USBケーブルを抜く必要があります(^ Cでは不十分です)。badblocks
でも同じことが起こります。読み取りおよび書き込みモード。 badblocks
'の "from"および "to"パラメータを少し遊んだ後、ドライブの90%以上は問題なく、基本的に3つの不良ブロック領域があることがわかりました。短いスクリプトと、ブロック番号を含むテキストファイルを取得しました(そうです、badblocks
の_-b 4096
_を忘れていませんでした)。しかし、_e2fsck -l badblocks.txt
_を実行しても、まだハングします!とにかく、悪いマークを付けて忘れるだけでなく、それらの不良ブロックを読み取ろうとしているようです。これを回避する他の方法はありますか?または他のファイルシステム(FATについて考えましたが、_badblocks.txt
_を_fsck.vfat
_にフィードする方法がありません)?または、「良い」領域をカバーする4つの個別のパーティションがこの場合の最良のソリューションですか?
pdate:ケースをより明確にするための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.
しかし、これらのブロックにアクセスすることはtryしないという約束はありません。しかし、なぜそれがそれらにアクセスしたいのでしょうか?
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
_と互換性がありません。したがって、ディスクをスキャンするか、手動で不良セクターにマークを付けます。しかし、なぜ後者のオプションを選択した場合でも、これらの「不良」と思われるセクターにアクセスしたいのですが、私の理解を超えています...
ディスクを不良ブロックする適切な方法は次のいずれかです:
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.