1
/
5

RHEL:トラブルシューティングでgrub再インストール

ルート領域読み込めないんだけど⁉

そんなことありますよね。
どうも、佐々木です。
今回は実際に現場であった「grub書き換えちゃった」事件と対処した方法について書いていきます。
なお、この手順を実行してサーバが壊れても、当方は一切の責任を取りません。

始まり

朝いつも通りに現場に到着すると挨拶より先にこんな言葉が聞こえてきました。
「佐々木さん、サーバ再起動したら動かなくなっちゃったから直して!」
…どうやら深夜作業でサーバ構築を行っていざ再起動したところ、エマージェンシーモードに
移行してしまったらしいです。
いや、動いてるやん。

いいから切り分けだ

画面を確認すると怪しい文章として以下の文章がありました
dracut-initqueue[264]: Warning: Could not boot.
dracut-initqueue[264]: Warning: XXXXXX01/XXXXX03 not exist
dracut-initqueue[264]: Warning: /dev/mapper/VolGroup01-root does not exist
            Starting Dracut Emergency Shell...
Warning: /dev/XXXXXX01/XXXXX03 does not exist
Warning: /dev/mapper/VolGroup01-root does not exist

インストール時にルートディレクトリを指定した部分が行方不明だな、多分(適当)
その後ちゃんと"/run/initramfs/sosreport.txt"も確認して、ルートディレクトリをマウントできないこと、
VolGroup01-rootという存在しないものをマウントしようとしてることを確認しました。

復旧作業(その一)

原因は分かったのでどんどん作業を進めていきましょう。

・1.レスキューモードでシステムを起動
  今回はOSインストールメディアを使用してレスキューモードを起動しました。
  話の本筋ではないのでやり方は割愛します。

・2.lvmパーティションを有効にする
  今回はパーティションをlvmで切り分けているので、
  lvmパーティションを有効化するところから始めます。
vgscan #ボリュームグループ情報を表示
Reading all physical volumes. This may take a while...
Found volume group "ボリュームグループ名" using metadata type lvm2

vgchange -ay "ボリュームグループ名" #lvmパーティション領域有効化

mount /dev/mappaer/"ボリュームグループ名"/"該当パーティション" /mnt #今回はXXXXX03
mount /dev/sda1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc

chroot /mnt #mntを一時的にシステムディスクに

・3./etc/default/grubを見に行く
  今回パラメータシートに記載したgrubの設定場所が/etc/default/grubのため
  とりあえず見に行きます。
cat /etc/default/grub
  すると、”GRUB_CMDLINE_LINUX=”の値が ”/dev/mapper/VolGroup01-root”
  に書き替えてありました。やっぱりな。
  バックアップは取ってあったので、バックアップ元から現在適応中のgrubに差し替えて…
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg #UEFI ベースのマシンの場合
  変更した設定を適用させます。
  
  そしてサーバを再起動して復旧完ry…してないね…

復旧作業(その二)

なぜか再起動後もエマージェンシーモードに移行してしまい、同じエラーを吐きました。
設定適用コマンドも打った状態でこれなので、もうわけがわかりません。
上長に許可を貰い最終手段を取ります。

・1.grub再インストール
  原因を解明しきれていないですが、出荷まで時間がなかったため
  grubを再インストールします。全部リフレッシュしてしまおうという脳筋発想です。
  RHELの公式サイトを参照しました。
yum reinstall grub2-efi shim #RUB 2 を再インストール
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg #念のため、半分お祈り

そしてサーバを再起動、今度こそ通常起動しました。

後日談:なんで書き換えちゃったの?

指示が正しく伝わっておらず、パラメータシートに実機の設定を書き込む予定が
例で書いていたパラメータシートの値をサーバに反映させてしまったらしいです。
パラメータシート見づらくてすまんな…

メーロン株式会社's job postings
1 Likes
1 Likes

Weekly ranking

Show other rankings
Invitation from メーロン株式会社
If this story triggered your interest, have a chat with the team?