LoginSignup
5
4

More than 5 years have passed since last update.

CentOS 4サーバの/(ルートパーティション)に対するfsck

Last updated at Posted at 2015-01-21

はじめに

古めのOSですが、CentOS 4サーバが突然停止し、サーバを起動したところ、コンソールに以下のメッセージが表示されておりました。

/tmp配下など/(ルートパーティション)にファイルを書き込めなくなっており、fsckでルートパーティションのファイルシステム修復が必要になりました。

/: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root passwrd for maintenance
(or type Control-D to continue):

以下はfsckを実行して、ルートパーティションを修復した時のコマンドメモです。
fsck完了まで数時間かかりましたが、サーバは無事復旧しました。
今回は幸いにも、ルートパーティション内のファイルは消えることなく残っており、ファイルの書き込みなども正常に行えるようになりました。

/(ルートパーティション)に対するfsck実行例

・fsckを実行したいサーバのコンソールで、rootユーザのパスワードを入力します。

Give root password for maintenance
(or type Control-D to continue): → rootのパスワードを入力します。

・fsck対象サーバのルートパーティションの情報を確認します。
fsck対象サーバのルートパーティションのデバイスファイル名を確認します。また、cat /etc/fstabとmountコマンドを実行して、ルートパーティションのファイルシステムを確認します。今回のサーバの場合はext3でした。

# df -Ph /
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/cciss/c0d0p3      20G  9.4G  8.9G  52% /
#

# cat /etc/fstab
  (省略)
LABEL=/                 /                       ext3    defaults        1 1
  (省略)

# mount
  (省略)
/dev/cciss/c0d0p3 on / type ext3 (rw)
  (省略)

・ルートパーティションを読み取りモードでマウントしなおします。
既に/tmp配下等にファイル書き込めない状態になっていましたが、念の為、ルートパーティションを読み取りモードでマウントしなおします。

# mount -o ro,remount /

・念の為、ルートパーティションに対して、ファイル書き込めない状態(読み取りになっている事)になっている事を確認します。

# date > /tmp/write_test.txt

・fsckを実行します。

# fsck -y -t ext3 /dev/cciss/c0d0p3

・ルートパーティションに対するfsckが完了するのを待ちます。以下のメッセージが完了されたらfsck完了です。

 (省略)
Free inodes count wrong (XXXXXXX, counted=XXXXXXX)

Fix? yes

/: ***** FILE SYSTEM WAS MODIFIED *****
/: ***** REBOOT LINUX *****
(Repair filesystem) 26 # exit

(Repair filesystem) 26 # reboot

fsck対象サーバ起動後の動作確認

fsck対象サーバの用途に応じて、動作確認の内容は異なると思いますが、最低限確認した方が良いかなと思う事を記載しました。

fsck実行後にサーバが起動してきたら、ルートパーティションにファイルが残っているか、ファイルを書き込めるか、fstabに記載したパーティションがマウントされているなどを確認します。

# ls -lrta /
# cat /etc/fstab
# df -Ph
# mount
# date >> /tmp/write_test.txt
# date >> /tmp/write_test.txt
# cat /tmp/write_test.txt
# rm /tmp/write_test.txt

ログを見てHDDやハードウェア系のエラーが出ていないか確認します。

# cat /var/log/messages
# dmesg

fsckで復旧したサーバのネットワークインターフェースや別サーバへの疎通が正常であるか確認します。

# ifconfig
# netstat -nr
# ping XX.XX.XX.XX

名前解決が行えるか確認します。

# dig www.example.com

自動起動を設定しているような意図したサービスやプロセスが起動している事を確認します。

# chkconfig --list
# ps awux | grep -v grep | sort

今回のfsck対象サーバはntpで時刻同期を行っているサーバでしたが、念の為、時刻がずれていない事も確認します。

# date

以上になります。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4