
VSCodeからVPSに接続して仕事をしようとしたところ、接続が拒否されてしまいました。
時々あることなのでXServerのVPS管理画面からシステムを再起動させたのですが、それでも上手く行かない。
困ってしまったのでAIに聞きながら対応してみました。
状況
- VSCodeからXserver VPSにSSH接続しようとしたら「アクセス拒否」されていた
- XServer VPS管理画面から、VNCコンソールで確認すると、システムが起動途中
Btrfs loaded, crc32c=crc32c-intel, zoned=yes, fsveritry=yes
で止まっていた - そのため、今度はシリアルコンソールから確認すると
(initramfs)
プロンプトの画面になっていた
わかること
- Linuxは以下の順番に起動プロセスが進んでいく
- BIOS/UEFI起動
- ブートローダー(GRUB等)
- カーネル起動
- initramfs(初期RAMディスク) => ルートファイルシステムをマウント
- systemd起動(本格的なシステム起動)
- ログイン画面
- initramfsプロンプト画面になっているという事は、ルートファイルシステムのマウント途中でエラーが起こっているため、systemdが起動できていない
- そこで以下の論理フローでトラブルシューティングすることにした。
トラブルシューティングの論理フロー
initramfsに落ちている
↓
ルートファイルシステムのマウント失敗
↓
複数のパーティションがある中で、どれがルートか特定が必要
↓
dmesgコマンドでカーネルに渡された起動パラメータを確認 → root=UUID=… からルートのUUIDを取得
↓
blkidコマンドでUUIDとパーティションを照合 → /dev/vda1 だと特定
↓
fsck -y /dev/vda1 で /dev/vda1 のファイルシステムを修復
↓
再起動して解決
何とか復活しました。