連載
» 2018年03月15日 05時00分 公開

Linux基本コマンドTips(191):【 fsck 】コマンド――ファイルシステムを検査、修復する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ファイルシステムを検査、修復する「fsck」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ファイルシステムを検査、修復する「fsck」コマンドです。

fsckコマンドとは?

 「fsck」は、ファイルシステムを検査、修復するコマンドです ※1。

 mkfsコマンド(第190回)同様、ファイルシステムに応じてそれぞれ/sbinなどにある専用のコマンドを呼び出しています。

※1 ファイルの管理方式自体や管理方式にのっとってフォーマットした記憶領域のことを「ファイルシステム」と言う。





fsckコマンドの書式

fsck [オプション] [-t ファイルシステムの種類] [場所] [--] [ファイルシステム固有のオプション]

※[ ]は省略可能な引数を示しています。「場所」にはデバイス名(/dev/sda1など)やマウントポイント(/など)を指定します。複数指定が可能です。




fsckの主なオプション

短いオプション 意味
-t 種類 ファイルシステムの種類を指定する(無指定時は自動判定)
-A /etc/fstabにあるファイルシステムを全て検査する ※2
-P 「-A」オプション指定時、複数の検査を並列で行う
-R 「-A」オプション指定時、「/」にマウントしたファイルシステムは除外する(/を既に読み書き可能なモードでマウントしている場合)
-s 逐次処理を行う(複数のファイルシステムを対話モードで検査する際に使用する ※3
-T 起動時にタイトルを表示しない
-V 実行時に詳細な表示を行う
-C 作業完了分と残り分の棒グラフ(プログレスバー)に対応しているファイルシステムチェッカー(ext2、ext3、ext4用にfsckが呼び出すe2fsckコマンド)で棒グラフを表示する
-N 実際には処理を実行せず、何を行うかだけを表示する

※2 ファイルシステムの種類を限定したい場合は「-t」オプションを指定する。例えばext2以外と指定する場合は「-t noext2」のように「no」または「!」を付けて指定する。
※3 e2fsck(ext2、ext3、ext4用のコマンドでfsckが呼び出す)のデフォルトは対話モード。非対話モードで実行するには「--」の後に「-p(自動修復)」オプションを指定する。





ファイルシステムを修復する

 「fsck デバイス名」で、指定した場所のファイルシステムを検査し、必要に応じて修復します。ただし、デバイスはマウント前でなければなりません。

 従って、「/」にマウントしているデバイスなど、システム起動時にマウントする必要があるデバイスを検査したい場合は、シングルユーザーモードで起動するか、インストールCD(ISOイメージをダウンロードして作成する)などを使って起動後に検査する必要があります。インストールCDの場合、「Rescueモード」のようなメニューがあれば、そのメニューを利用する方がよいでしょう。

 画面1では、マウントしていないHDDのパーティション(/dev/sdb1)と、USBメモリを指定して実行しています。実行にはroot権限が必要です(連載第68回)。

コマンド実行例

fsck デバイス名

(指定したデバイスを検査し修復する)

fsck /dev/sdb1

(/dev/sdb1を検査し修復する)(画面1


画面1 画面1 ファイルシステムを検査、修復しているところ


/etc/fstabを使って確認する

 「fsck -A」で、/etc/fstabに書かれている全ての場所を検査します。ただし例外があります。/etc/fstabの設定行で、6番目のフィールドが「0」の場合や、6番目のフィールドが設定されていない場所は検査しません。

 例えば、以下のような内容の/etc/fstabだった場合、一番下の2行(/dev/sdb1と/dev/sdb2)だけが検査対象となります。

 なお、「-N」オプションを付けて実行すると、「何を実行するか」を確認できます(画面2)※4。「-N」の場合、実際の処理は行われないので、一般ユーザーでも実行できます。

※4 画面2の「/sbin/fsck.xfs」とある行を実行した場合には、fsck.xfsは実際には機能せず、「xfs_repair」コマンドの利用を促すメッセージを表示する。



 

/dev/mapper/centos-root /                    xfs     defaults        0 0
UUID=b66c…(略)…301c /boot                  xfs     defaults        0 0
/dev/mapper/centos-home /home                xfs     defaults        0 0
/dev/mapper/centos-swap swap                 swap    defaults        0 0
UUID=911c…(略)…ec19 /usr/local/data1 xfs  noauto,users
/dev/sdb1 /media/data1 ext4 noauto,users 0 1
/dev/sdb2 /media/data2 xfs  noauto,users 0 1

コマンド実行例

fsck -A

(/etc/fstabの設定に従って、ファイルシステムを検査し修復する)

fsck -A -N

(/etc/fstabの設定に従うものの何も実行せず、何を実行するかだけを確認する)


画面2 画面2 検査内容だけを表示させたところ

 なお、/etc/fstabに実行対象のデバイスがなかった場合は、fsckのバージョンだけを表示します(画面3)。

画面3 画面3 検査対象のデバイスが/etc/fstabになかった


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。