レスキューブートを実施する

[更新:2022年04月05日]

VPSの利用中に、障害や作業影響によりVPSが正常に起動しなくなった場合に実施する、レスキューブートの実行方法を記載します。

該当する症状

  • ご利用中のVPSに対して、コントロールパネルから起動を実施しても黒い画面になる(画面の確認は コンソール をご覧ください)

  • 起動する際に何度も再起動がかかってしまう

対応方法

Note

以下に記載の方法は、弊社が提供中の「標準OS」をご利用しているお客様を想定して作成されています。
それ以外のOSバージョンやディストリビューションをご利用の場合は、ISOイメージをインターネット上よりダウンロードいただき、コントロールパネルよりアップロードしてお試しください。

パブリックISOインストールからの起動を実施する

この作業ではOS再インストール自体は実行せず、ISOイメージを利用して簡易的な起動状態を作り出すことが目的です。
手順上OS再インストールのボタンを押下しますが、以下の手順通りに実施すればOSの再インストールは実行されませんのでご安心ください。
※状態としては、ローカルのHDDではなくISOイメージ(CD)から起動させ、ローカルHDDを外部デバイスの様に扱うイメージとなります。

2. OSインストール形式、ISOイメージの詳細を選択する

ご自身の利用しているOSのイメージが存在しない場合、「アップロードする」よりイメージのアップロードをお願いします。
アップロードの方法に関しては ISOイメージインストール をご参照ください。

3. OSを選択する

上記ではAlmaLinuxを選択していますが、ご利用中のVPSで動作させているOSを選択してください。
異なるバージョン/ディストリビューションを選択しても操作自体は可能ですが、それに寄る影響は保証致しかねますので、ご了承ください。

4. マウント設定を選択する

標準OSインストールを行っている場合や、カスタムOSインストールを行っている場合は設定を有効のままにしてください。
ご自身でISOイメージのアップロードをしてインストールした場合や、パブリックISOインストールを行った場合は適宜変更をお願いいたします。

5. ネットワーク接続の設定を行う

基本的に「接続を初期化」を選択いただけば問題ございませんが、既にローカル接続を行っており、改めての設定がご面倒な場合は「接続先を保持」いただくことで、現在のローカル接続を維持したまま作業を行うことが可能です。
ローカル接続の詳細に関しては ローカルネットワーク接続 をご確認ください。

上記全て完了し、内容の確認に問題なければ「OS再インストール」を実行します。

6.VNCコンソールを起動させる

5までの操作が完了すると、コントロールパネルの右下部分に上記画像のポップアップがされます。
ポップアップからVNCコンソールを開いていただくか、画面上部のボタンよりVNCコンソールを開いてください。

Note

この時長時間放置してしまうと、自動で再インストールまで進んでしまうことがあります。
その場合は先へ進めず、改めて1番から操作し直してください。

RHEL系(CentOS 7/CentOS Stream/AlmaLinux/Rocky Linux)でレスキューブートする

ここからはRHEL系をOSとしてご利用いただいている場合の操作方法を記載します。
画像上の詳細な文言は変わりますが、大まかな操作についての変更はありませんので、文言についてはそれぞれ読み替えてください。

1. Troubleshooting を選択する

少々見づらいですが、文字が白抜きされている部分が現在アクティブになっている選択肢になります。
VNCコンソールを開いた場合はカウントダウンが始まっていると思いますが、キーボードの↑、↓を押下することで停止します。
まずは「Troubleshooting」を選択してください。

2. Rescue a XXXXX system を選択する

これを選択すると起動が始まりますので、完了までしばらくお待ち下さい。

3. ディスクのマウント有無を選択する

Rescueの表示がされた後、ローカルHDDをどの様にするか選択します。以下に詳細を記載します。
1:ローカルHDDをマウントして起動します。マウント後は「/mnt/sysroot」のディレクトリにデータが展開されています。ただしHDD内のデータやファイルシステム、パーティションが破損している場合は高確率で失敗します。
2:ローカルHDDを読み込みのみでマウントして起動します。マウント出来た場合でも内部のファイルの変更や修正は出来ません。
3:マウント等の操作はせず、シェルのみを有効化して起動します。ローカルHDDのマウントはされません。

コントロールパネルで起動をした後、黒い画面から変更がない場合などはローカルHDDの内部が破損しているため、1番は失敗する可能性が高いです。
症状が判断できない場合は、1番→3番の順に試してみることをおすすめします。

レスキューブートの順序は以上となります。
以降の作業については参考情報として補記しますが、作業にあたっては弊社での保証はいたしかねますので、その点ご了承ください。

Ubuntuでレスキューブートする

ここからはUbuntuをOSとしてご利用いただいている場合の操作方法を記載します。

1. Rescue mode を選択する

初期画面の「Advanced options」を選択いただいた後、「Rescue mode」を選択します。

2. 言語を選択する

レスキューブートを実施する際の言語を選択します。
日本語(Japanese)を選択してもいいですが、後から変更することも可能であるため、「English」の選択をおすすめします。
画面遷移後のロケーション選択では基本的にそのまま「United States」を選択いただけますが、日本を選択する場合は「Other」→「Asia」→「Japan」の順に設定いただくことも可能です。

3. キーボードを選択する

キーボードの選択は次の画面で手動設定が可能なため、Detect keyboad layoutはそのまま「No」を選択してください。
キーボードはシェル操作からも変更可能ですので、「English (US)」を選択いただいても構いませんし、Japaneseを選択していただいても構いません。
※言語選択画面で「Japan」へ設定を変更されている場合、デフォルトの選択状態が「Japanese」となっています。

4. ネットワーク接続の設定をする

ネットワークの設定を「ens3」に対して行います。選択するとDHCPでのIPアドレスの取得が開始されますので、「Cancel」を選択しても構いません。
「Configure network manually」を選択して手動でIPアドレスの設定を行っていきます。
設定すべき内容は、コントロールパネル上のグローバルネットワークに記載されていますので、これを元に入力してください。
IPアドレス設定時に必要なネットマスク情報は、コントロールパネル上のネットマスク情報が「255.255.254.0」であれば「/23」、「255.255.255.0」であれば「/24」と入力してください。
ゲートウェイ情報は入力されたIPアドレスとネットマスク情報から計算されますので、コントロールパネル上の情報と相違ないかご確認ください。
DNS情報は、コントロールパネル上のIPアドレスを一つだけ入力いただいても構いませんが、複数入力する場合はスペースを開けて入力してください。

ホスト名は基本的にこれまでに入力された内容から、自動的に名前解決されるためそのまま「Continue」を選択して構いません。
ホスト名が名前解決されていない場合、外部との疎通に失敗している可能性もあります。一度「Go Back」で戻り、再度「Continue」を選択して状況が改善されない場合、帯域制限がされていないか等、ご確認ください。
※表示上の問題もあるので、一度レスキューブートをさせてからping等で疎通確認いただいても問題ございません。

5. ミラーサーバーの設定をする

操作に必要なパッケージをダウンロードするためのミラーサーバーの設定を行います。
特に問題なければ「Japan」を選択してください。プロキシ設定は何も入力せずエンターを押せば問題ありません。
タイムゾーンはAsia/Tokyoでいいか確認されたら、問題ないので「Yes」を押してください。

6. マウントするパーティションを選択する

操作開始時にマウントするパーティションを選択します。
ただしパーティションが正常に読み込めない場合は失敗する可能性があるため、「Do not use a root file system」を選択してもらうのが早いと思われます。
「Execute a shell in the installer environment」を選択し、シェルが起動することを確認してください。

Ubuntuのレスキューブート手順は以上となります。

レスキューブート後の操作例

警告

以下に記載の方法はあくまでも操作の一例となり、全ての環境に対して当てはまるものではございません。
操作によって発生した影響に関して弊社では責任を負いかねますので、その点ご了承いただいた上でご参照ください。
各コマンドは対応するOSによって判断してください。

キーボード設定を日本語入力にする

Ubuntu系でUSキーボードを選択してしまった場合や、RHEL系でコマンド操作を日本語キーボードで行いたい場合、以下で修正します。
# localectl set-keymap jp106
or
# loadkeys jp106
or
# loadkeys jp

ファイルシステムの確認を行う

対象のディスクパーティションがなんのファイルシステムを使っていたのかなど、fsckを実施する前に確認する場合、以下のコマンドを利用して確認することが可能です。
以降のコマンドのvdaに関してはvirtioを利用している場合のものとなります。
# lsblk -f /dev/vda
or
# parted /dev/vda print
or
# blkid /dev/<VG名>/<LV名>

LVMを利用している場合、LV領域を展開する

システム上データ領域をLVMにして運用している場合、そのままLVM化しているパーティションに無理やりfsck等を実行するとデータが破損します。
そのため、LVMを利用している場合は以下を実行してLVMが問題なく認識されるかご確認ください。
# pvs (LVMが認識されていると見えます。)
# vgchange -a y (VG領域を有効化します。)
# lvs (LVの名前を確認し、「-wi-a---」とアトリビュートがなっている場合、以下のコマンドの実行は必要ありません。)
# lvchange -a y /dev/<VG名>/<LV名> (/dev/mapper以下と、左記のディレクトリにブロックデバイスが生成されているはずです。)

マウントを実施する

fsckを実行する前に、試しにマウントを実施して本当にファイルシステム上の問題で起動が出来ないのかを確認します。
マウント出来た場合はファイルシステムの問題ではありません。
# mount /dev/vdaX /mnt -t <ファイルシステム> (vdaXは該当する数字を入力してください。-tオプション以降は入力必須ではありません。)
# chroot /mnt (マウントしたディレクトリをrootとして扱います。chrootから抜ける場合はexitを実行します。)

fsckを実行する

マウントが実施出来なかった場合、fsckを実行します。
各パーティションに対して、利用しているファイルシステムに沿ったfsckコマンドを実行する必要があります。
※前項でマウントを実行しているデバイスに対してfsckを実行する場合、必ずアンマウントを実行してください。
# fsck.XXXX /dev/vdaX
or
# xfs_repair /dev/vdaX
実行後、デバイスが修正されたかを確認するため一度マウントを試してみて、問題ないようであれば終了して、改めて起動を確認してください。

IPアドレスを設定する

RHEL系では外部疎通用のIPアドレスの設定が、レスキューブート実行時にGUI上で出来ないため、以下のコマンドで設定します。
ネットワークの設定はコントロールパネルの「グローバルネットワーク」タブよりご確認ください。
# ip a show (デバイスの確認をします。)
# ip addr add XXX.XXX.XXX.XXX/XX dev ens3 (IPアドレス、ネットマスクはご利用のもの、ens3部分は上記で確認したデバイスを指定してください。)
# ip route add default via XXX.XXX.XXX.1 dev ens3 (ゲートウェイの設定をします。ens3以降は同上)
# ip link set ens3 up (デバイスを有効化します。)

NFSを利用する

バックアップとして既に利用されている方のバックアップデータからの復旧や、VPS自体は起動できないもののデータの抽出は可能な状態からのバックアップの際に、弊社のNFSサービスをご利用いただくことが出来ます。

ご利用の前提として既存のご利用VPSとNFSが同じローカルネットワークへ接続されている必要があります。ローカルネットワークへの接続は ローカルネットワーク接続 をご参照ください。
ここまでの手順ではインストール操作時に「接続先を初期化」していましたが、「ネットワーク接続の設定」で「接続先を保持」を選択します。実際の操作は 「パブリックISOインストールからの起動を実施する」の「5. ネットワーク接続の設定を行う」をご参照ください。

この状態でレスキューブートの起動までを実施し、以下のコマンドを実行して接続します。
※コマンドの内容はRHEL系のISOイメージにて確認しております。
# ip addr add XXX.XXX.XXX.XXX/XX dev ens4 (ローカル接続用のNICにIPアドレスを設定します。設定IPアドレスはNFSと同じネットワーク内のアドレスにします。)
# ip link set ens4 up
# mkdir /nfs
# mount XXX.XXX.XXX.XXX:/export /nfs
上記のマウントが完了したら、/mnt等に展開したデータ領域から必要なデータの書き戻しやバックアップを行ってください。
なおご利用OSがUbuntu系であっても、本作業を行う場合RHEL系のISOイメージで作業することは可能です。