badblocksユーティリティは、「最後のブロックが無効です」と報告し続けます。

badblocksユーティリティは、「最後のブロックが無効です」と報告し続けます。

badblocks単一のパーティションを持つドライブで実行しようとしています。このドライブにはFreeBSDファイルシステムが含まれています。

LinuxライブUSBドライブから起動します。ドライブがマウント解除されました。出力はfdisk -l次のとおりです

   Device  Boot     Start          End    Id     System
/dev/sda1     *        63   976773167+    a5     FreeBSD

だから私は次を実行します。

# badblocks -v /dev/sda1

それは言う:

badblocks: invalid last block - /dev/sda1

これに関する有用な情報が見つかりません。badblocksここでユーティリティを正しく使用していますか?それともドライブに問題があることを意味しますか?

ベストアンサー1

いいえ、これはドライブに問題があることを示していません。このエラーが発生する理由は、badblocksが/ dev / sda1をデバイスとして受け入れるのではなく、最後のブロックパラメータとして受け入れるためです。

あなたの質問に構文が正しいようです。デバイスの後に最後のブロックパラメータを指定してみてください。
badblocks -v /dev/sda1 976773167

それでも機能しない場合は、最初のブロックも追加してみてください。
badblocks -v /dev/sda1 976773167 63

これがドライブに問題があることを示していないことを確認するために、無効な最後のブロックパラメータ「nope」を追加したときの出力は次のとおりです。

sudo badblocks -v /dev/sdb1 いいえ
badblocks: 最後のブロックが無効です。 - いいえ


これは私が最後にbadblockを使用したbash履歴の例です(私のシステムからこれらのドライブにアクセスするにはsudoアクセスが必要です)。
sudo badblocks -v /dev/sdb1

出力:


不良ブロックを確認するには、ブロック0〜976751967を確認してください(読み取り専用テスト)。

Ctrl + Cを使用して一定時間が経過した後にプロセスをキャンセルすると、出力は次のようになります。

ブロック7470720で中断

プロセスを再開する構文は次のとおりです(参考資料を参照man badblocks)。
badblocks -v デバイス [最後のブロック] [最初のブロック]

「最後のブロック」はデバイスから読み取る最後のブロックであり、「最初のブロック」は読み取りを開始する必要がある場所です。例:
sudo badblocks -v /dev/sdb1 976751967 7470720

出力:

ブロック7470720〜976751967を確認してください。不良ブロックの確認(読み取り専用テスト):

おすすめ記事