それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

チェックディスクのコマンド (chkdisk のLinux版)のまとめ

チェックディスクをしようと思って調べた。Linuxの場合はスキャンディスクと呼ぶのかな。ファイルシステムをチェックする。ファイルシステムのチェックです。

スキャンディスクの方法。

sudo fsck /dev/sdb1

スキャンディスクのポイント

  • sudo は /dev/sdb1を読み込むために必要
  • fsck は filesystem check の略
  • ディスクファイルシステムを指定する
    • 一度の複数を指定できる。
  • マウントは解除しておく。

指定がなければ

/etc/fstabに記述が或るモノを調べる。

sudo fsck #/etc/fstab を順番にチェック

起動ディスクをチェックしたいとき

再起動後にスキャンディスク開始
sudo shutdown -r -F now

再起動時、ディスクをマウント前にディスクチェックが走ります。
起動ディスクをチェックしたいときは、再帰同時にファイルシステムチェックを指定して再起動する。この辺はWindowsとおなじ。

確認が面倒。修正を聞いてこないで欲しい。

とにかく全部修正!って思うときは

sudo fsck -a /dev/sdb1 # -a オプションで無条件で修正


マウントしたままのチェックも可能。

sudo fsck /var/www /mnt/disk #マウントポイントも指定できる

fsck 実際は・・・?

fsckファイルシステム毎に用意されていて、fsck コマンドが適切なファイルシステム用のコマンドを実行してくれる。

たとえば、次は linux ファイルシステムをチェックディスクした場合のプロセスです。

root      5241  0.0  0.0   2416   672 pts/2    S+   01:14   0:00 fsck /dev/sdb1
root      5242 11.2 15.3 156820 154944 pts/2   S+   01:14   4:09 fsck.ext2 /dev/sdb1

fsckfsck.ext2 としてプロセスが起動しています。と言うわけで。e2fsckも内部的に呼ばれるっぽい。fsckもe2fsck の違いは直接か間接の違いらしい。

スキャンディスクの種類は?

Ubuntu9.10には次のコマンドが用意されていました。

fsck.cramfs    fsck.ext3      fsck.ext4dev   fsck.msdos     fsck.reiserfs
fsck.ext2      fsck.ext4      fsck.minix     fsck.nfs       fsck.vfat

ファイルシステムのチェックと、ブロックのチェックは違う。

不良セクタの検出は badblock

sudo badblocks -vs -o bad.txt /dev/デバイス名
http://www.k5.dion.ne.jp/~r-f/sicklylife/memo/using_ubuntu_804/hdd.html#use_badblocks

詳しくはman

man に詳しく書いてありました。

fsck は、実際には Linux で利用できるさまざまなファイルシステムチェッカー (fsck.fstype) への単なるフロントエンドにすぎない。ファイルシステム固有のチェッカーは、 /sbin, /sbin/fs.d, /sbin/fs, /etc/fs, /etc,環境変数 PATH 内のディレクトリの順にサーチされる。詳細はファイルシステム固有のチェッカーのマニュアルを参照すること。