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

サーバー

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

スポンサーリンク
スポンサーリンク

CentOS 7が重い

centos7logo

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

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

さくらインターネットのVPSを2週間試用しCentOS 7をインストールしてみました
当サイトは、さくらインターネットのVPS で運用しています。 この度、訳があって別プランに移行すべく2週間お試し無料を...

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

CentOS 7でServer with GUI のインストール手順
CentOS 7は2014年7月7日にリリースされました。 今後は、ほとんどの機会でCentOS 7のインストールする...

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

CentOS 7にGitHubライクなGitLabを2分でインストールしてみた
GitのWebインターフェースを探している中で、GitWeb、Ginatraを試したのですが、イマイチでした。 ...

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

WS000520

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...」で止まる

WS000529

Booting from Hard Disk...

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

ちょっとヤバい。

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

CentOS 6のサーバーの全ユーザーを別のCentOS 7のサーバーに移行する方法
サーバーA(CentOS 6)のユーザーをサーバーB(CentOS 7)に移行する機会があったので覚え書きをまとめま...

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

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

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

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

自力解決のみです。

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

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

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

WS000531

「Troubleshooting」を選択します。

WS000533

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

WS000535

「Continue」を選択します。

WS000536

「OK」を押します。

WS000537

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

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

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

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

保存版 CentOS 7とCentOS 6との違いまとめ
CentOS 7はCentOS 6以前のCentOSに比べて様々な点が異なっています。 これまでにない...

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

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

WS000544

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

これで動くはず。

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

WS000552

うーん。。。

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

WS000559

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

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

に書き換えてみます。

再起動します。

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

いけるか!?

WS000573

ところが。。。。

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. うらした より:

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