Linux
インフラ
クラウド

fstab間違えてOSが起動しない時の対処(クラウドでマシン複製する時とか)

More than 3 years have passed since last update.

クラウド環境と仮想環境で、仮想マシンを複製したりする時にスナップショットから新しいマシンを作ったりすると思う。

今使っているクラウドでは、マウントを正常に行う為に/etc/fstabに下記のようにUUIDを明記してボリュームをマウントしておく事が推奨されている。

UUID=f4713aa1-3a33-4933-85e8-94c421269a98 /     ext4    defaults        1 1

ところが、このfstabでUUIDをマッピングするのはテンプレートからマシン複製する時に思わぬトラップになる。。

というのも、fstabでマッピングしているUUIDはあくまでスナップショットを取得した元の仮想マシンにマウントしているディスクのものなので、複製した新しい仮想マシンは別のUUIDを持ったディスクがマウントされる。
で、OS起動時に下記のようなエラーで止まる。。

スクリーンショット 2015-02-06 20.48.51.png

こうなった時は下記で対応

①まずは、rootのパスワードをいれてログイン

②この状態だと、ディスクがリードオンリーモードでマウントされているので下記コマンドでリードオンリーからリードライトモードへ変更する

mount -o remount ,rw /

③先程のfstabでUUIDマッピングしている行を削除

#UUID=f4713aa1-3a33-4933-85e8-94c421269a98 /     ext4    defaults        1 1

で再起動すれば無事起動する

ついでに

NW関連も下記ファイルがmacアドレスとネットワークインターフェースのマッピングを持っているので、一度削除する
再起動後に、現在のデバイス情報で再作成されるので、その情報を元にifcfg-ethxxあたりでmacアドレスを変更すればうまく疎通する。

rm -f /etc/udev/rules.d/70-persistent-net.rules 

覚えてはいるけど、この作業する度に何回も同じミスしてるのでまとめてみた。

そもそもスナップショットを取る時点でfstabの該当行をコメントアウトしておけばもちろんこんな事象は起きない。