さくらのVPSでCentOS 7が起動しなくなりました。
さくらのVPSとは何か?については以下に記載しています。
・https://urashita.com/archives/24937
目次
'/grub2/i386-pc/normal.mod' not found
あるとき、さくらのVPSのCentOS 7が起動しなくなりました。
コンソール画面を見てみると以下のように表示されていました。
1 2 3 4 5 6 7 8 9 |
Booting from DVD/CD... Boot failed: Could not read from CDROM (code 0003) Booting from Hard Disk... . error: file '/grub2/i386-pc/normal.mod' not found. Entering resuceu mode... grub rescue > ls (hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) grub rescue > |
かなり致命的な不具合です。
今回は、LiveCDからOSを起動し、HDDから必要なバックアップファイルをダウンロードすることにしました。
CentOS 7をLive CDから起動
LinuxでOSがブートできなくなったときなどに利用できるのがレスキューモードです。
レスキューモードは通常のブートイメージとは別に用意し、メモリー上に最小のブートイメージをロードしてOSを起動します。
通常のレスキューイメージを使用すると利用できるコマンドなどが限られてしまいますが、CentOS 7のLive CDからCentOS 7を起動すればOSのコマンド類をすべて使うことが可能です。
Live CDのISOイメージをダウンロード
・http://ftp.iij.ad.jp/pub/linux/centos-vault/7.8.2003/isos/x86_64/
から
CentOS-7-x86_64-LiveGNOME-2003.iso
をダウンロードします。
さくらのVPSにisoファイルをアップロード
さくらのVPSのコンソールから
OS再インストール
⇒ ISOインストール
⇒ アップロードする
⇒ SFTPアカウントを発行する
⇒ISOイメージをアップロード
で発行されたSFTPアカウントを使ってISOファイルをアップロードします。
ISOファイルをSFTPで送るには、MobaXtermを使いました。
・https://urashita.com/archives/26666
OS再インストールを実行
OSさインストール実行を押すと「ストレージは初期化されます。必要なデータは必ず事前にバックアップを行ってください。」となって焦りますが、VPSのHDDは消去されません。
ここでOS再インストール実行を行っても、Live CDから起動してOSがメモリにロードされるだけなので安心して下さい。
CentOS 7がLive CDから起動
このまま待つとCentOS 7がLive CDから起動します。
ユーザー名:liveuser
です。
VPS側のHDDをlsbkで認識しマウントしてファイルを取り出す
Live CDが立ち上がったら、Terminalを開いて su - してrootになります。
lsblk コマンドでブロックデバイスの一覧を確認すると、/dev/vda1, /dev/vda2, /dev/vda3, /dev/vda4 としてパーティションが認識され、サイズもそのまま認識できてました。
lsblkコマンドはブロックデバイスの一覧を表示出来るとても便利なコマンドです。
今回は、/dev/vda4がVPSのHDD本体なので適当なディレクトリを作ってマウントします。
1 2 3 4 |
$ su - # lsblk # mkdir /root/data4 # mount /dev/vda4 /root/data4 |
これで /root/data4 に/dev/vda4がマウントされました。
Live CDをインターネットに接続
Live CDをインターネットに接続します。
1 |
# nmtui |
Edit a connection を選択します。
さくらのVPSのネットワーク情報を確認します。
IP4 Addresses
Gateway
DNS Servers
を入力します。
設定できたら、「<OK>」→「<Back>」→「Quit」で、元のコンソールに戻ってきます。
接続確認します。
1 2 3 4 |
# $ ping www.yahoo.co.jp PING edge12.g.yimg.jp (182.22.25.252) 56(84) bytes of data. 64 bytes from 182.22.25.252 (182.22.25.252): icmp_seq=1 ttl=56 time=16.3 ms 64 bytes from 182.22.25.252 (182.22.25.252): icmp_seq=2 ttl=56 time=16.3 ms |
こんな感じの応答があればOKです。
rootのパスワードを変更します。
1 |
# passwd root |
パスワードなしだと外部からsshで接続できません。
sshのサービスを起動します。
1 2 |
# stemctl restart sshd # stemctl status sshd |
外部の端末からsshで接続できるか確認します。
1 |
# ssh -l root (IPアドレス) |
パスワードを入力して、ログインできることを確認しました。
これ以降は、sshでリモートログインして、操作します。
コメント