IBM Cloudには、デフォルトではrootユーザーに公開鍵暗号方式でSSHログインできるように初期構成されているが、一般的には構築・運用の途中で、
- /etc/ssh/sshd_configの設定間違い
- SELinuxの設定間違い
- OS Firewallの設定間違い
- PAMの設定間違い
などによりSSHでログインできなくなってしまったとか、rootユーザーにログインできなくなったケースなどの際に回復できる手順があることが望ましい。今回は、rootパスワードがわからなくなって環境を操作できなかったという想定で、Red Hat Enterprise Linux 8.4のboot時にカーネルオプションをVNCから編集することにより、rootパスワードをリセットする方法を紹介する。基本はこの方法を踏襲すれば良い。
1. VNCコンソールを起動する。
2. VNCコンソールを起動したままOSを再起動する。
3. GRUBの編集画面に入る
VNCコンソールを起動したまま、OSを再起動する。すると、以下のようなGRUBの画面が現れる。GRUBはデフォルトでは1秒程度で抜けてしまうので、リブートしたらすぐに下矢印キーを連打しておくと良い。e
を押下して編集画面に入る。
4. カーネルコマンドの編集
linux
と書かれている行に移動する。Ctrl + e
で行末に移動できる。
- 以下のように
rd.break
を追加してCtrl + x
を押下すれば良いはずだが、これだとEnding clean mount
の箇所で止まってしまった。 - 回避策として、以下のように文末に
rd.break
を追加するだけでなく、console=tty0 console=ttyS0,115200n8
という箇所も削除して、Ctrl + x
を押下する。参考記事
5. 以下のコマンドを実行してパスワードをリセットする
/sysrootはread onlyでマウントされているので、読み書きができるように再マウント
switch_root:/# mount -o remount,rw /sysroot
/sysrootにchroot
switch_root:/# chroot /sysroot
変更・復元作業(rootパスワードの変更など)
sh-4.4# passwd
sh-4.4# touch /.autorelabel
あとは、OSの再起動をすれば良い。