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

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

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

 

 

CentOS 7が重い

 

centos7logo

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

 

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

さくらインターネットのVPS (CentOS)でお試し期間は無料だけど転送量制限あり、プラン変更できない
当サイトは、さくらインターネットのVPSで運用しています。 ↓さくらのVPSの公式サイトはコチラ さくらのVPS この度、訳があって別プランに移行すべく2週間お試し無料を申し込みました。 さく...

 

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

CentOS 7でServer with GUI のインストール手順 (ダウンロードしてinstall、license information同意)
CentOS 7は2014年7月7日にリリースされました。 今後は、ほとんどの機会でCentOS 7のインストールする機会があると思います。 CentOS 6までのリリースと比べてかなり機能が異なっており...

 

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

CentOS 7にGitHubライクなオンプレミス GitLab CE (community edition) を2分でインストール・導入・構築してみた
GitのWebインターフェースを探している中で、GitWeb、Ginatraを試したのですが、イマイチでした。 そこで今回、GitLabを試してみました。 GitLabは、単にGitのGUIインタ...

 

 

さて、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)に移行する機会があったので覚え書きをまとめました。 最初にミスった移行手順 最初に、ミスった移行手順です。 今まで運用していた ...

 

 

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

さくらのVPS起動しない!→直したったwww

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

 

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

自力解決のみです。

 

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 (rhel7) とCentOS 6 (rhel6)との違い、変更点まとめ (chkconfig、systemctl など)
CentOS 7はCentOS 6以前のCentOSに比べて様々な点が異なっています。 どっちがよいかと聞かれれば、CentOS 7の方が、新しい分おすすめですが、これまでにないぐらい違っていたので、私も結構苦...

 

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

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

  3. […] […]