1.はじめに
IBM Cloud VPC環境で、不幸にもrootパスワードを設定していなかったり(もしくは忘れてしまったり)、/etc/ssh/sshd_configを誤って構成したり、SSH秘密鍵を紛失してしまったために、環境にログインできなくなった場合には、どうすればよいだろうか?
今から10年ほど前(!?)にIBM CloudのClassic Infrastructure環境(当時はSoftLayerという名前でした)で、ShinobiLayer: rootユーザー(Linux)のpasswordリセット方法という記事を書いた。しかし、Classic Infrastructre環境ではrescue modeというものがあるが、VPC環境にはそれに対応するものが存在しない。
IBM Cloud VPC環境では、snapshotやcustom imageを作成した上で、再度それらから別のVSIを起動する(場合によってはuser dataでカスタムスクリプトも組み合わせて誤った構成を修正する)という方法も1つの方法ではあるが、IBM Cloud VPC環境にはVNC Console
やserial console
の機能があるので、Linuxのsingle user modeを使ってこれらの問題を解決する方法を本稿で紹介する。
2. single user modeの実行方法
- バックアップとしてsnapshot/custom imageを作成しておく(省略)
- VNC Consoleを起動する。
- VNC Consoleから、再起動を行い、すぐさまVNC Consoleの画面をクリックしてスクロールキーを上下に動かし続ける(あっという間にgrubメニューが終わってしまうので、grubメニューが表示された後にカーソルを移動していたら間に合わない)
- 1番上のメニューで
e
を押下。 -
linux
から始まる行において、ro
をrw init=/sysboot/bin/sh
に置き換えて、Ctrl-x
を押下 - すると処理が進んで、この画面になる。しかし、ここから先が(理由はわからないが)キーボード操作を受け付けてくれない。
- ここからは、
serial console
を起動する。 -
serial console
では、キーボード操作を受け付けてくれる。chroot /sysroot
でルートディレクトリを移動した後は、passwd
コマンドでパスワードを変更したり、/etc/ssh/sshd_config
を編集すれば良い。