障害対応訓練ネタ第2段です。
状況が限られすぎていて、あまり一般には参考にならないと思います…。
はい。内部向け文書です(笑)。
トラブルの内容
本番(プロダクト)環境ではあまりやらないと思いますが、開発環境などで、テストデータのすげ替えを行うときに、mountするDISK/パーティションの入れ替えのために /etc/fstab を書き換えたりします。
そのとき、うっかりミスをしてmount対象のUUIDを存在しないものに書き換えてしまうと、ブートの途中で止まってしまいます。
明らかに怪しげなUUIDですね。
対処その1:rootパスワードがわかる場合
ここで、rootパスワードがわかる場合は、このままrootパスワードを入れてシェルに入ります。
/etc/fstab を見てみると、やっぱり変なヤツがいます。
通常は正しい内容の行をコメントアウトしたり、別ファイルにバックアップしておくなどして正しいUUIDがどこかに残っているはず…ですが、うっかりそのまま上書きしてしまった、という場合には、慌てずに「blkid」コマンドで調べます。
…いました!
複数の行を消してしまったなどで、どれとどれが対応するのかがわからない場合は、一度 mount して中身を調べてみるのも手です。
なお、この時点では、/etc/fstab を含むパーティションはread-onlyでmountされているため、読み書き可能な状態で再マウントしてから /etc/fstab を編集します。
書き換えたら保存します。
終わったら再起動します。
対処その2:rootパスワードがわからない場合
sudoコマンドを利用してシステム管理している場合は、rootパスワードがわからないこともあるでしょう。
その場合も、いくつか対処方法がありますが、ここではインストールディスク1枚目で起動し、Rescueモードを使う方法を記しておきます。
まず最初に、CentOS機(物理マシン/仮想マシン)でDVDブートできるよう、BIOS/UEFIを設定しておきます。
設定(変更)後、DVD(またはisoイメージなど)を入れて再起動しますが、仮想マシンの場合、仮想DVDドライブを「接続」状態にしておくことを忘れないようにしてください。
DVDで起動してきたら、「Rescue installed system」を選択します。
その後、言語(「English」でも「Japanese」でもOK)、キーボード(日本語キーボードならjp106)、ネットワーク(特に理由がなければ接続不要)、DISK/パーティションのmount([Continue]でOK)を選択します。
mount先についての注意(「/mnt/sysimage/」以下に各パーティションがmountされる)が表示されます。
最後に「Start shell」を選択します。
先の注意書きの通り、/mnt/sysimage 以下に各パーティションがmountされているので、必要であれば「chroot /mnt/sysimage」でルートを変更してください。
その後の作業は、基本的には「その1」と同じです。
但し、最初から書き込み可能な状態でmountされているため、読み書き可能な状態で再マウントする必要はありません。
また、再起動する前に「exit」コマンドでchroot環境を抜けてください。
再起動後は、DVDブートしないように、DVDを抜くか、仮想DVDドライブを「切断」するのも忘れずに。
ついでに
Rescueモードを使う方法は、OS起動の、もっと手前の段階で止まってしまったものの、
・GRUBシェルの使い方がわからない!
・そもそもGRUBのメニューすら出てこない!
という場合にも使えます。