手帳

  • 2025-10-03
  • IT系

VSCodeからVPSに接続して仕事をしようとしたところ、接続が拒否されてしまいました。

時々あることなのでXServerのVPS管理画面からシステムを再起動させたのですが、それでも上手く行かない。

困ってしまったのでAIに聞きながら対応してみました。

状況

  • VSCodeからXserver VPSにSSH接続しようとしたら「アクセス拒否」されていた
  • XServer VPS管理画面から、VNCコンソールで確認すると、システムが起動途中
    Btrfs loaded, crc32c=crc32c-intel, zoned=yes, fsveritry=yes
    で止まっていた
  • そのため、今度はシリアルコンソールから確認すると(initramfs) プロンプトの画面になっていた

わかること

  • Linuxは以下の順番に起動プロセスが進んでいく
  1. BIOS/UEFI起動
  2. ブートローダー(GRUB等)
  3. カーネル起動
  4. initramfs(初期RAMディスク) => ルートファイルシステムをマウント
  5. systemd起動(本格的なシステム起動)
  6. ログイン画面
  • initramfsプロンプト画面になっているという事は、ルートファイルシステムのマウント途中でエラーが起こっているため、systemdが起動できていない
  • そこで以下の論理フローでトラブルシューティングすることにした。

トラブルシューティングの論理フロー

initramfsに落ちている

ルートファイルシステムのマウント失敗

複数のパーティションがある中で、どれがルートか特定が必要

dmesgコマンドでカーネルに渡された起動パラメータを確認 → root=UUID=… からルートのUUIDを取得

blkidコマンドでUUIDとパーティションを照合 → /dev/vda1 だと特定

fsck -y /dev/vda1 で /dev/vda1 のファイルシステムを修復

再起動して解決

何とか復活しました。