Linux備忘録17:OS(ブートローダ)起動不可対応、備忘録
OSが起動しなくなった時に実施した内容を備忘録として記載。
実施内容に不足無いと思っていますが、個人用備忘録のため、内容や記述に誤りがあったら申し訳ありません。
カーネルバージョン:4.18.0-147.5.1.el8_1.x86_64(RHEL8.1)
【状況】
・MBR形式のHDDに対しpartedコマンドでパーティションを消したり、増やしたりした。※最終的に元に戻した
・swap領域を再フォーマット ←関係ない?
・grubのUUIDを更新 ⇒上記実行後、OSを再起動したところブートローダが起動しなくなった。 ⇒画面に何も出てこない
※grubの起動メニューが出てこない状態
【パーティション情報】
モデル: ATA WDC WD6400BPVT-1 (scsi)ディスク /dev/sda: 640GBセクタサイズ (論理/物理): 512B/4096Bパーティションテーブル: msdosディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 630MB 629MB primary ext4 boot
2 630MB 262GB 262GB primary ext4
3 262GB 285GB 22.3GB primary ext4
4 285GB 640GB 355GB extended
5 285GB 293GB 8311MB logical linux-swap(v1)
【対応記録】下記コマンドを上から順に実行
①RHEL8のOSインストールメディアを使用してRescueモードで起動 ※手順割愛
※実行結果的にファイル破損しているようには感じなかったが...。
# fsck /dev/sda1
# fsck /dev/sda2
# fsck /dev/sda3
③boot,/パーティションをマウントしてchrootでルートディレクトリを変更。
Ⅰ、各パーティションをレスキューOSにマウント
# mount /dev/sda2 /mnt ※/領域をマウント
# mount /dev/sda1 /mnt/boot ※boot領域をマウント
# mount --bind /dev /mnt/dev
# mount --bind /dev/pts /mnt/dev/pts
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# mount ←確認。
Ⅲ、chroot実行
# chroot /mnt
# ls ←確認。
# grub2-install /dev/sda
⇒[Installation finished. No error reported.]と表示されれば成功
※/etc/mtab情報が更新されておらずエラーが出る場合があるらしい。その時は以下を実施。
# ls -l /etc/mtab
-rw-r--r-- 1 root root 71 2月 26 02:49 2015 /etc/mtab
# rm /etc/mtab
# cp /proc/mounts /etc/mtab
⑤grub.cfgを再作成
# grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg ※BIOSブートだから不要だと思うけど念のため実施。
# exit ←chroot抜ける
# reboot
⇒システム再起動後、状態が回復しOSが正常起動したことを確認。