Linuxでディスクのエラーや不良セクタのチェックと修正をする方法
提供: Ubuntu入門
スポンサーリンク
Linuxのストレージのエラーや不良セクタのチェックと修正を行う方法を説明します。このまとめは、3分程度の時間で読むことができます。
読み方
- fdisk
- えふでぃすく
- hdparm
- えいちでぃーぱーむ
- badblocks
- ばっどぶろっくす
- e2fsck
- いーつーえふえすしーけー
- fsck
- えふえすしーけー
目次
概要
このドキュメントでは、以下の項目を扱います。
- ディスクの調査
- 不良セクタの検査
- 不良セクタを無視させる
- 1コマンドですべてやる
ディスクを調べる
まず、パソコン・サーバに接続されているストレージを調べる必要があります。調べる方法は、いくらでもありますが、以下に示す通り fdisk -lで確認してみました。
$ sudo fdisk -l Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 2AC55118-1B27-461F-9B7A-27EFC54E5C45 Device Start End Sectors Size Type /dev/sdb1 2048 3907029134 3907027087 1.8T Linux filesystem Disk /dev/sdc: 37.3 GiB, 40020664320 bytes, 78165360 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0006588c Device Boot Start End Sectors Size Id Type /dev/sdc1 * 2048 74260479 74258432 35.4G 83 Linux /dev/sdc2 74262526 78163967 3901442 1.9G 5 Extended /dev/sdc5 74262528 78163967 3901440 1.9G 82 Linux swap / Solaris
ストレージのモデルを調べる
hdparm コマンドで、ストレージのモデルを調べることができます。 モデル名を見て、調査の対象として正しいかどうか確認します。
$ sudo hdparm -i /dev/sdb1 |fgrep Model Model=Hitachi HDS5C3020ALA632, FwRev=ML6OA5C0, SerialNo=ZZZZZZZZZZZZZZ
不良セクタを調べる
ストレージに不良セクタがないか調べるには、badblocks コマンドを利用します。
$ sudo badblocks -v -s /dev/sdb1 | tee /tmp/badblocks.txt Checking blocks 0 to 1953513542 Checking for bad blocks (read-only test): 3.96% done, 10:24 elapsed. (0/0/0 errors)
ディスクのサイズに比例して時間がかかります。 2TB なら4時間ぐらいか見ておいたほうが良いでしょう。
badblocks のコマンドラインオプションは、以下の通りです。
Usage: badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf] [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks] [-p num_passes] [-t test_pattern [-t test_pattern [...]]] device [last_block [first_block]]
不良セクタのマーキングを行う
もし、不良セクタが見つかったなら、マークをしておきます。マークされたブロックは、システムによって無視されます。
e2fsck -l /tmp/badblocks.txt /dev/sdb1
e2fsck のコマンドラインオプションは、以下の通りです。
Usage: e2fsck [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device 緊急時ヘルプ: -p 自動修復 (no questions) -n ファイルシステムに変更を加えない -y 質問にすべて"yes"と答える -c バッドブロックを調べリストに加える -f ファイルシステムが正常でも強制的に実行する -v Be verbose -b superblock Use alternative superblock -B blocksize Force blocksize when looking for superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list
1回のコマンドですべてのステップを実行する方法
sudo fsck -t -y -f -c /dev/sdb1
まとめ
- fdisk でストレージのリストを表示できる
- hdparm でストレージのモデルが調べられる
- badblocks で不良セクタをチェックできる
- e2fsck で不良セクタをマークし、無視できる
- fsck でまとめて調査と修理ができる
関連項目
ツイート
スポンサーリンク