CentOS 7が「Booting from Hard Disk...」で起動しない レスキューモードでgrub2を再設定した

サーバー設定
スポンサーリンク

CentOS 7が「Booting from Hard Disk...」で起動しないので、レスキューモードでgrub2を再設定しました。

スポンサーリンク

CentOS 7が重い

 

さくらのVPSの上で、CentOS 7をインストールしてGitlabを使っているのですが、なんか急に重くなって使えなくなりました。

 

さくらインターネットのVPSについては以下にまとめました。

http://urashita.com/archives/24937

 

CentOS 7のインストールについては以下にまとめました。

http://urashita.com/archives/2283

 

Gitlabのインストールについては以下にまとめました。

http://urashita.com/archives/2870

 

 

さて、Gitlabをブラウザ越しに見るとこんなエラーが出ました。

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET/.

Reason: Error reading from remote server

 

これはnginxのエラーなんでしょうか?

 

Gitlabの再起動を試みます。

# gitlab-ctl graceful-kill
# gitlab-ctl once
# gitlab-ctl status

 

Apacheの再起動を試みます。

# systemctl restart httpd.service

なんか、ちゃんとApacheが再起動してくれません。

 

止むを得ず、サーバーを再起動してみることにしました。

# reboot

 

サーバーを再起動すると「Booting from Hard Disk...」で止まる

Booting from Hard Disk...

で止まってしまいました。

 

 

ちょっとヤバい。

 

 

エラーの現象は、これに似ているけれど原因は違うはず。

http://urashita.com/archives/2340#Booting_from_Hard_Disk

 

 

同様の問題を探してみて、これを読んで笑ってしまった。

http://namahage.dip.jp/blog/4637

さくらサポート「俺、悪くない。お前のせい。」
って返事がががが!(要約しすぎだ)

 

ただ、いずれにせよ、さくらインターネットのサポートは役に立たないのは知っています。

自力解決のみです。

 

CentOS 7をレスキューモードで起動

レスキューモードで起動します。

さくらインターネットの「カスタムOSインストール」でインストールOSとして「CentOS x86_64」を設定して起動します。

 

「Troubleshooting」を選択します。

 

 

「Rescue a CentOS system」を選択します。

 

 

「Continue」を選択します。

 

 

「OK」を押します。

 

 

「OK」を押します。システムは、/mnt/sysimage にマウントされました。

 

ブートローダー grub2 の再作成

CentOS 7は、それ以前のCentOSと大きく異なっています。

違いは以下にまとめました。

http://urashita.com/archives/1538

 

今回、CentOS 7のブートローダーであるgrub2を作り直してみようと思います。

# cd /mnt/sysimage/boot/grub2
# mv grub.cfg grub.cfg.org
# grub2-mkconfig -o grub.cfg

 

新しい grub.cfg が作成されました。

 

これで動くはず。

システムを再起動してみます。

うーん。。。

 

bio: create slab <bio-1> at 1

でしばらく止まって。。。。

 

 

最後は、

Warning: Could not boot.
Warning: /dev/dm-2 does not exist
Starting Dracut Emergency Shell...

Generating "/run/initramfs/rdsosreport.txt"

となってしまいました。

 

/dev/dm-2が存在しない。。。。?

 

 

/dev/dm-2とは?

/dev/dm-2は論理デバイスのようです。

要は物理的なハードディスクの中を論理的に分けた部分の1個です。

 

再び、レスキューモードで起動してみます。

 

以下のコマンドでマップされたデバイスのデバイス名を確認します。

# lsblk
# dmsetup ls

 

 

 

どうやら以下の関係のようです。

dm-0 ⇒ live-rw
dm-1 ⇒ live-base
dm-2 ⇒ root centos_tk2–206–12914-root
dm-3 ⇒ swap centos_tk2–206–12914-swap

 

 

/mnt/sysimage/boot/grub2/grub.cfg を見てみると

linux /vmlinuz-3.10.0-123.13.2.el7.x86_64 root=/dev/dm-2

のように書かれている個所が3ヶ所ありました。

 

おや? dm-0 とか dm-1 ってレスキューモードのlive CDでは?

 

 

/mnt/sysimage/boot/grub2/grub.cfg

の中に書いてある

/dev/dm-2

を3ヶ所とも

/dev/dm-0

に書き換えてみます。

 

 

再起動します。

ビンゴか!?なんか起動してきました。

いけるか!?

 

 

ところが。。。。

ip6_tables: (c) 2000-2006 Netfilter Core Team
Ebtables v2.0 registered
Bridge firewalling registered

 

 

で真っ黒な画面に遷移してそのままです。

 

GUIモードをやめてCUIでCentOS 7を起動する

よく考えてみたのですが、このCentOS 7ってGUIモードで起動するようになっています。

 

たぶん、Xサーバーを起動しようとしてうまく起動できなかったのではないかと推測しました。

という訳で、GUIモードをやめてCUIでCentOS 7を起動してみます。

 

自動起動になっているディスプレイマネージャー gdm.service を無効化すればシステム起動時にCUIで起動するようになります。

 

再び、レスキューモードで起動します。

/mnt/sysimage/etc/systemd/system/display-manager.service

がシンボリックリンクになっているので、別の場所に移動しておきます。

 

再び、再起動します。

。。。今度こそ。。。起動しました!!

 

デフォルトゲートウェイの設定

CentOS 7は起動出来たものの、元々自動起動に設定していたいろいろなサービスが起動していないことがわかりました。

 

特にデフォルトゲートウェイの設定がうまくいっていないようで、外部ネットワークからアクセスできない、外部ネットワークにアクセスできないです。

 

/etc/sysconfig/network-scripts/ifcfg-eth0 をvimで開きます。

IPADDR=www.xxx.yyy.zzz
NETMASK=255.255.254.0
GATEWAY=aaa.bbb.ccc.1

 

この後、いろいろなサービスを起動します。

# systemctl daemon-reload
# systemctl start network.service
# systemctl start firewalld.service
# systemctl start sshd.service
# systemctl start httpd.service
# gitlab-ctl start

 

以下のコマンドでデフォルトゲートウェイが表示されることを確認します。

# route

 

5時間ぐらいかかったけれど、なんとか復旧完了。

 

さくらのVPSサーバー

 

↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ

SSDプランが月々685円から使える!さくらのVPS

 

 

 

コメント

  1. ズミさん より:

    OSをリブートしようとして同様の障害で悩まされた者です。
    私の場合はgrub2の設定ファイル中の「/dev/dm-2」を
    「/dev/dm-1」に修正することでOSを起動することができました。

    linuxをはじめサーバー管理はズブの素人なので
    大変助かりました。

    ありがとうございました!

  2. うらした より:

    お役に立ててよかったです。

  3. […] […]