AWS上でVyOSが起動しなくなった場合の対応方法
こんにちわ。大阪の市田です。 久しぶりのVyOSネタです。今回はトラブルシュートについてご紹介します。
はじめに
VyOSで設定を間違えたまま再起動してしまうと、起動できなくなる場合があります。 そんな時は従来通り、対象インスタンスのRootVolumeを他のインスタンスにアタッチして、アタッチしたインスタンスから設定を修正します。
作業の流れ
- 問題のインスタンスを停止して、RootVolumeをデタッチ
- 作業用のVyOSインスタンスを別途作成して、問題のインスタンスのRootVolumeをアタッチ
- 作業用インスタンスを起動して、ファイルシステムをマウント
- 対象ファイルを修正して、作業用インスタンスを停止
- 作業用インスタンスから問題インスタンスのボリュームをデタッチ
- 元のインスタンスに修正済みボリュームをアタッチして、起動
手順
まずは対象インスタンスを停止して、RootVolumeをデタッチします。 元に戻す時のことを考えて、識別できる名前を付けておくか、ボリュームIDを控えておくようにします。
デタッチできたら、作業用のVyOSにアタッチして、作業用インスタンスを起動します。 作業用インスタンスのOSはVyOSにします。VyOSのベースはDebianですが、Debianのインスタンスではアタッチできません。
アタッチ内容はデフォルトのままです。
作業用VyOSにログインしてマウントします。今回は/mnt/data
にマウントすることにします。
# mkdir /mnt/data # mount /dev/xvdf1 /mnt/data
マウントできれば、後は修正したいファイルをviなどのエディタで直接編集します。
VyOSの場合、起動時に読み込まれるコンフィグは/boot/boot.config
になります。
その為、作業用インスタンス上では/mnt/data/boot/[VyOS-Version]/live-rw/config/config.boot
が対象になります。
/boot
以下のVyOS-Version
のディレクトリは、追加しているVyOSイメージの数だけ存在します。起動時にデフォルトで読み込まれるバージョンのディレクトリが作業対象になります。
デフォルトのバージョン確認は、正常に起動している時にshow version
コマンドで把握しておくようにしましょう。
config.bootの中身は下記の様になっているので、必要な設定を修正して保存します。
もちろんその他の設定ファイルを修正したい場合は、そのファイルを修正して下さい。live-rw
ディレクトリ以下にetc
、opt
といったディレクトリが配置されています。
interfaces { ethernet eth0 { address dhcp duplex auto hw-id XX:XX:XX:XX:XX:XX smp_affinity auto speed auto } loopback lo { } } (以下略)
修正が終われば、作業用インスタンスを停止して、元のインスタンスにアタッチし直して起動しましょう。
最後に
VyOSの場合でも方法は他のOSの場合と同じです。ただし、config.bootの内容はVyOS独自の内容になります。 他のVyOSインスタンスなどで、各コマンドの結果がどのような内容で出力されるのか確認しておくとよいかと思います。
以上です。