さくらのVPSでカーネルパニック Ubuntu16->18へアップデート後に
さくらのVPSのサーバをHDDタイプからSSDタイプに変更することになったので、新しくSSDタイプを契約することになり、
設定やデータの移行など終わったので、
古いHDDタイプをこのまま月末までほっておくのももったいないと思い、Ubuntu16のバージョンで動いていたので、練習も兼ねて18へアップデートしてみることにしました。
そしてアップグレードが終わり、再起動。
流れているメッセージを見るとGRUBが壊れていると予感。こういう場合は旧カーネルで立ち上げれば起動はするはず。
こんな感じでどうすればよいか丁寧に解説があるので、そのとおりにやっていけば良いので安心です。 と言っても私は失敗もしました(>_<)。
一回目、途中でやめちゃったみたいで、結局カーネルパニックが起こったままだったので、この画面が出るまで修復を続けるべきなのかもしれません。 修復が終わったら再起動、メディアをEnter押して取り出すようにというメッセージが出るのでEnterを選択します。
DNSを引けてない感じのエラーが出るのでdigなどで試してみたら、やっぱり変換できてないような感じです。
これはおそらくUbuntu16->18へアップグレードしたことでネットワークの設定方法が変わった影響かと。。。
正しい方法なのか分かりませんが、とりあえず
以上になります
設定やデータの移行など終わったので、
古いHDDタイプをこのまま月末までほっておくのももったいないと思い、Ubuntu16のバージョンで動いていたので、練習も兼ねて18へアップデートしてみることにしました。
$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade $ sudo apt autoremove $ sudo reboot再起動が終わって、いよいよUbuntu16->18へアップグレードです。
$ sudo do-release-upgrade途中の質問は、管理方法など今から変わるのは嫌だったので、全てデフォルトで通しました。(ここのあまり考えなかったのが良くなかったのかな・・・)
そしてアップグレードが終わり、再起動。
ガーン、カーネルパニック・・・
失敗でした。流れているメッセージを見るとGRUBが壊れていると予感。こういう場合は旧カーネルで立ち上げれば起動はするはず。
試したこと(私の環境では復旧しませんでした)
さくらのVPSなので、復旧方法は色々ネット上にあったのですが、私の場合は駄目でした。コンソールでVNSコンソールとシリアルコンソール(β)を同時に立ち上げて、GRUBでカーネルバージョンを以前に戻す方法
–> どうしてもカーネルを以前のバージョンに戻せませんでしたOS再インストールからカスタムOSのUbuntu18を選択しShellに入って操作
–> shellに入ったは入ったのですが、起動OSのshellに入っているみたいで、/dev/vdaにDetochしてもコマンドが使えなかった試したこと(成功)
LiveCDで起動するという手があるらしく藁にもすがる思いで試してみました。手順は上記リンクサイトに詳しく書いてあるので参考になると思います。非常に助かりましたありがとうございます。Ubuntuのダウンロード
- UbuntuのサイトからUbuntu18のISOをダウンロードする
さくらVPSのコントロールパネル
- さくらのVPS コントロールパネルのグローバルネットワークで割り振られている以下の情報を確認する
アドレス
ゲートウェイ
ネットマスク さくらのVPSは255.255.254.0なので /23
プライマリDNS
ゲートウェイ
ネットマスク さくらのVPSは255.255.254.0なので /23
プライマリDNS
- さくらのVPSコントロールパネルで、OS再インストール->ISOインストール->アップロード、と選択していく
- SFTPアカウントを発行する
ターミナル
- 発行したSFTPアカウント情報でSFTPでアップロードする
$ sftp ユーザー名@ホスト名
$ cd /iso
$ put ISOファイル
- 気長に待つ(私の環境では結構時間かかりました。5時間位?)
さくらVPSのコントロールパネルに戻り
- ダウンロードしたISOを選択し、接続先を初期化->内容確認と選択していくとISOから起動する
VNCコンソール
- VNCコンソールの画面に移ります
- Liveモードで起動するためにUbuntuを試すを選択
- ネットワークが設定されていないので設定をする
- 調べると有線LANはens3という名前になっていたので、01-network-manager-all.yamlにネットワーク情報(ethernets:)を追加記入する
$ ip addr show $ vi /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: NetworkManager ethernets: ens3: dhcp4: n addresses: [XXX.XXX.XXX.XXX/23] gateway4: YYY.YYY.YYY.1 nameservers: addresses: [210.ZZZ.ZZZ.ZZZ] dhcp6: n $ sudo netplan apply 【設定を反映】 $ ifconfig -a 【設定を確認する】
ブートローダー修復ツールで修復していく
まずはboot-repairという修復ツールをインストールします。$ sudo add-apt-repository ppa:yannubuntu/boot-repair修復開始
$ sudo apt-get update
$ sudo apt-get install -y boot-repair
$ boot-repairブート修復画面で表示されてくるので、おすすめの修復を選んで少し待ちます。
こんな感じでどうすればよいか丁寧に解説があるので、そのとおりにやっていけば良いので安心です。 と言っても私は失敗もしました(>_<)。
一回目、途中でやめちゃったみたいで、結局カーネルパニックが起こったままだったので、この画面が出るまで修復を続けるべきなのかもしれません。 修復が終わったら再起動、メディアをEnter押して取り出すようにというメッセージが出るのでEnterを選択します。
すごい、立ち上がりました!!
その後、プチ問題発生しました。DNSを引けてない感じのエラーが出るのでdigなどで試してみたら、やっぱり変換できてないような感じです。
これはおそらくUbuntu16->18へアップグレードしたことでネットワークの設定方法が変わった影響かと。。。
正しい方法なのか分かりませんが、とりあえず
$ sudo vi /etc/systemd/resolved.conf [Resolve] DNS=プライマリDNS $ sudo systemctl restart systemd-resolved.service一応これで元に戻りました。結構時間かかりましたが安心しました。
以上になります