不良ブロックによってセグフォルトが発生するのはなぜですか?

不良ブロックによってセグフォルトが発生するのはなぜですか?

ドライブに障害がないかどうかを確認するために、マウントされたパーティションを確認しようとしています。

[root@virtuality ~]# /sbin/badblocks -v /dev/sdb1
Segmentation fault

ああ。どういう意味ですか?セグフォルトはなぜbadblocks発生しますか?修正できますか?

(システムはCentOSバージョン4.6で、ドライブはSATAドライブです)

編集する:使用strace:

[root@virtuality ~]# strace /sbin/badblocks -v /dev/sdb1
...[snip]...
open("/dev/sdb1", O_RDONLY)             = 3
ioctl(3, BLKGETSIZE, 0x7fbffff878)      = 0
close(3)                                = 0
open("/dev/sdb1", O_RDONLY)             = 3
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

ベストアンサー1

最後の数行はstraceやや退屈な話を聞きます。badblocksドライブデバイスを開いて、サイズを確認し、閉じて、再度開いて、いくつかの操作を実行しますが、何らかの方法で失敗してstrace表示されません。gdbより深く掘り下げるには、同様のツールを使用する必要があります。

パーティションをマウント解除すると、症状が消えて安定したbadblocks作業ができるようになります。明らかに、これは実行しようとする読み取り専用テストを実行するためだけに必要ではありませんが、一部の低レベルの一般的ではない操作が正しく機能しなかったのは今回が初めてではありません。

ボーナス:パーティションをアンマウントすると、この機能を使用できます。badblocks -nこれは、ディスク表面の問題を見つけて回復するのにはるかに効果的です。

おすすめ記事