質問: vagrant + virtualboxを使い、CentOS6.7をゲストOSとして起動させ、それを環境としてシステム開発をしています。(デプロイ先のサーバーと環境を揃えるためです) ホストOSはubuntu.15.10です。 今日、`vagrant ssh`が失敗するので、virtualbox自身のターミナルからrootユーザーでログインし、`fsck -n` を実行すると ``` /dev/mapper/VolGroup-lv_root contains a file system with errors, check forced. ... ... Free blocks count wrong (845378, counted=845408) Free inodes count wrong (309812, counted=309769) ``` と表示されました。 `/etc/fstab`を確認し、 ``` $ cat /etc/fstab /dev/mapper/VolGroup-lv_root / ext4 defaults 1 1 UUID=d197cae3-0dd5-4555-9b2f-f9f21c1d9679 /boot ext4 defaults 1 2 /dev/mapper/VolGroup-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 ``` ルートファイルシステムに異常があるのだとわかりました。 このため、何とかして`fsck`をルートファイルシステムに実行したいのですが、マウントしたままだとファイルシステムを壊してしまうと以前聞いたことがあったので、それなら何とかルートディレクトリからアンマウントしなければと考えました。 そこでシングルユーザーモードで起動しなおし、それから ``` umount / fsck /dev/mapper/VolGroup-lv_root ``` としたところ、 ``` /dev/mapper/VolGroup-lv_root clean ... ``` と表示されました。 ファイルシステムに何の問題もないはずがないのですが、とにかくこれ以上何も起きません。 わからないなりに以下のようにもして何か確認できないかとやってみました。 ``` # fsck -fv -t ext4 /dev/mapper/VolGroup-lv_root fsck from util-linux-ng 2.17.2 pass 1: checking ... ... ... pass 5: group summary information 130829 inodes used ... ... 913928 blocks used 0 bad blocks 1 large file ... ... ``` (virtual boxのターミナルで上手く画面をマウスでコピーできないため、要点になりそうなところだけかいつまんでいます。全部の詳細を書けずすみません) これを見ても、bad blocks が 0 というのは理解ができません。 マルチユーザーモードで起動した時にだけ`fsck`がおかしくなるとでも言うのでしょか? 多分、fsckの使い方を間違えているのか、もっと違うところを 間違っているかだろうと思うのですが、 今日一日ずっと調べていても分かりませんでした。 プログラミングの質問とは違いますが、このままではそのプログラミングができません。 すみませんがどなたかアドバイスをお願いいたします。 よろしくお願いします。
回答: シングルユーザモードで `/` を読み取り専用で再マウントして `fsck` を実行すれば良いと思います。 ``` # mount -o ro,remount / # fsck -t ext4 /dev/mapper/VolGroup-lv_root # reboot ```