ハード ディスクは予期せず故障する可能性があるため、すべての重要なデータの最新のバックアップを保持しておくことをお勧めします。現在または将来の障害が検出された場合でも、データをバックアップするのに十分な時間がない場合があることに注意してください。以下は、CentOS/RHEL で不良ブロックまたはディスク エラーを特定するために使用できるいくつかの方法です。
smartctl の使用
/var/log/messages に複数の I/O エラーがある場合、または単純にハードディスクの故障が疑われる場合、smartctl はそれらをチェックするのに役立つツールです。 S.M.A.R.T. セルフモニタリングの略 、分析 および レポーティング テクノロジー . S.M.A.R.T. を有効にする必要があります。使用する前に BIOS でサポートしてください。
次に、/usr/sbin/smartctl を実行するために必要なパッケージをインストールします。 Red Hat Enterprise Linux では、smartmontools によって提供されます。 パッケージ。
1. ハードディスクが S.M.A.R.T をサポートしているかどうかを確認します。 :
# smartctl -i /dev/xxx
この投稿で概説されているコマンドを使用するときは、/dev/xxx を目的のハードディスクに置き換えてください。
2. SATA ドライブの場合:
# smartctl -i -d ata /dev/xxx
3. S.M.A.R.T を有効にします。サポート:
# smartctl -s on /dev/xxx ### For SCSI Disks # smartctl -s on -d ata /dev/xxx ### for SATA Disks
4. root として次のコマンドを実行すると、簡単な合否判定テストを行うことができますが、以下で説明するより徹底的なテストを行うと、一般的により決定的な結果が得られます:
# smartctl -H /dev/xxx
バックグラウンドでの smartctl の実行
バックグラウンド テストを開始するには、root として以下を実行します:
# smartctl -t long /dev/xxx
結果にアクセスするには、次のコマンドを使用します:
# smartctl -a /dev/xxx
smartctl で使用できるさまざまなオプションの詳細については、コマンドのマニュアル ページを参照してください。
# man smartctl
不良ブロックの使用
また、「badblocks」コマンドを使用して、ディスク デバイスの不良ブロックをチェックすることもできます。 「badblocks」コマンドは、Linux 内での LVM パーティションの同期に関する問題を切り分けるのに非常に役立ちます。ディスク上の不良ブロックが原因で、LVM 操作が失敗します。 LVM ミラー内のソース ディスクまたはターゲット ディスクのいずれかに不良ブロックがあると、同期エラーが発生します。
Badblock を fsck および makefs と組み合わせて使用して、ブロックを不良としてマークすることもできます。 badblocks の出力が e2fsck または mke2fs プログラムに供給される場合、生成されるブロック番号はファイルシステムで使用されているブロック サイズに大きく依存するため、ブロック サイズを適切に指定することが重要です。このため、ユーザーは badblocks を直接実行するのではなく、e2fsck および mke2fs プログラムの -c オプションを使用することを強くお勧めします。
警告 注:これらのコマンドを誤って使用すると、データが失われる可能性があります。コマンド「badblocks」に関する追加情報は、「man badblocks」コマンドを使用して入手できます。1. ディスク チェック ツール badblocks を使用して、指定したハードディスクをブロックごとにスキャンします。たとえば、/dev/sdd をスキャンするには、次のコマンドを発行します。
# mount | grep sdd # find all mounted partitions of sdd # umount /dev/sdd1 # unmount the partitions (may be more then one) # badblocks -n -vv /dev/sdd
どこ -n 非破壊読み取り/書き込みモードを使用します。デフォルトでは、非破壊の読み取り専用テストのみが実行されます。
注意 :-w は使用しないでください オプションは、既存のファイル システムを含むデバイスで使用できます。このオプションはデータを消去します!既存のファイル システムで書き込みモードのテストを実行する必要がある場合は、-n を使用します。 代わりにオプション。遅くなりますが、データは保持されます。2. 以下の例のようなメッセージが /var/log/messages またはコンソールに表示され、badblock の実行後に表示される場合は、影響を受けるデバイスのデータをバックアップし、デバイスを交換することをお勧めします:
Apr 4 13:50:40 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:40 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367232 Apr 4 13:50:40 test kernel: ide: failed opcode was: unknown Apr 4 13:50:40 test kernel: end_request: I/O error, dev sdd, sector 74367232 Apr 4 13:50:42 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:42 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367240 Apr 4 13:50:42 test kernel: ide: failed opcode was: unknown Apr 4 13:50:42 test kernel: end_request: I/O error, dev sdd, sector 74367240 Apr 4 13:50:44 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
3. 以下のコマンドは、見つかった不良ブロックを出力ファイル badblocks.log にダンプします。
# badblocks -v -o badblocks.log /dev/sdd