SOBAで運用しているサーバーで作業していると、ある日、次のようにメッセージが出ました。
[xxx@yyy ~]$ touch aaa
touch: cannot touch `aaa': 読み込み専用ファイルシステムです
rootになってdmesgで確認すると
ATA: abnormal status 0xD0 on port 0xBC9F
Aborting journal on device sda1.
ext3_abort called.
EXT3-fs error (device sda1): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
journal commit I/O error
/以下すべてのファイルシステムが読み込みしかできない状態になっています。
この場合は、ハードディスクがクラッシュしているので、ハードディスクを入れ替えないとだめです。初めて、こんなメッセージを見たときは結構焦りましたが、慣れてくると(?)なんとも思わなくなります。実際、運用で多くのサーバーを使っていると、ときどきこういうことは起きます。
ハードディスクの入れ替えの前にやるべきことはまず、バックアップです。
バックアップを保存する十分容量のあるパソコンからscpなどを使って、
# scp root@(クラッシュしたPC):/home .
などどやって、/homeをバックアップしたいところですが、私が管理するサーバーではセキュリティ上、rootでのsshは許可していません。
/etc/ssh/sshd_configを編集してsshdを再起動したいところですが、ファイルシステムに書き込めないのでできません。
knopipxでブートさせてバックアップを取るのもよいかもしれませんが、クラッシュしているハードディスクが再度ファイルシステムとして認識するかどうか不明です。
そこでUSBメモリの登場です。
USBメモリをクラッシュしたサーバーにつけて
[root@yyy ~]# mkdir /mnt/usb
mkdir: ディレクトリ `/mnt/usb' を作成できません: 読み込み専用ファイルシステムです
・・・当たり前か。仕方ないので既に存在する適当なディレクトリにマウントすることにします。
[root@uranus ~]# mount -t vfat /dev/sdb1 /home/xxx
[root@uranus ~]# cd /home/xxx
[root@uranus xxx]#
ここで/home/xxxがUSBそのものになるので、ここにコピーすればバックアップされます。
なんと便利でしょう。