ふと久しぶりに再起動したら黒い画面に grub >
と表示されて起動しませんでした。
- 手動で起動する場合にRootデバイスが不明でした(忘れていた)
- そういえばこのディスクはGPTでした
久しぶりなことは色々忘れていてとっさに何をして良いのかわからなくなるのでQiitaにメモ代わりに書いておくことにします。2度あることは3度ある。
最終的に入力したコマンド
set root=(hd1,gpt2)
insmod gzio
insmod part_gpt
insmod ext2
linux /boot/vmlinuz-5.3.0-23-generic root=UUID=4d128010-4e97-4343-9eb1-e082ae9d7e0e ro
initrd /boot/initrd.img-5.3.0-23-generic
boot
メモ
- rootディスクは
ls (hd1
で <tab> すれば中身が表示されるのでなんとなくわかるはず。またはls (hd1,gpt2)/
で中身が表示されるので 色々Linuxのファイルシステムっぽいのが見れればそれが当たり。 - UUIDで指定する。最近のLinuxはUUIDで指定しているのでよくググるとでてくる /dev/sda みたいな感じになっていなことが多い。Bootの段階だと blkid とか使えないのですがこれは単純に
(hd1,gpt2)/etc/fstab
にあるので表示させるとわかる - 今回のように gptとかだと insmod でカーネルモジュール呼び出す必要が合ったりするのだがこれはそれぞれ違うと思うので確認したい場合には、
(hd1,gpt2)/boot/grub/grub.cfg
などをあたると実行コマンドが記載されているケースもあるので手がかりになる。私の場合にはinsmod part_gpt
する必要があるのを気が付かず何度も device not found 的なエラー で kernel panic になっていた。
Boot loader の再導入?
何度色々やっても grub >
だったんだけど、結局PCのブートディスクでLinuxが入っているディスクのEFIからBootしないようにいつの間にか設定されていた?順番を整理したらGrubメニューが表示されました。原因は不明です。
- grub-install の実施
- grub-customizerを利用してMBRを上書き
補足
実際のディスク構成
/dev/nvme0n1p1: UUID="FB8D-BB2F" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="32eef918-d013-4098-94aa-fe46df5ef080"
/dev/nvme0n1p2: UUID="4d128010-4e97-4343-9eb1-e082ae9d7e0e" TYPE="ext4" PARTUUID="01b3c925-4a71-484d-b243-0b438acd9a3e"
/dev/sda1: LABEL="ESP" UUID="DE11-B257" TYPE="vfat" PARTUUID="6fd54d60-bd98-4831-91af-c06f8a6fdc00"
/dev/sda3: UUID="01D495160FB2C420" TYPE="ntfs" PARTUUID="dc4664b0-f0f2-4b66-9626-f4238c4030a8"
/dev/sda4: UUID="3692A8F492A8B9AF" TYPE="ntfs" PARTUUID="e1cfede5-ad68-4f5c-81c8-10a36d8559d9"
/dev/sda5: LABEL="WinRE" UUID="01D4955493BD8690" TYPE="ntfs" PARTUUID="7fa07c77-1502-445c-a844-f49878f2c0a6"
- 最近は
/dev/sdX
ですら無いのだがこの文字列/dev/nvmeX
をよく忘れる - これ晒していても問題ないよね?