GRUBについて色々やっていたときに、grub.cfgが壊れてしまった。
GRUBバイナリは起動しており、ディスクも認識しているし、コマンドも使える。
どうすればUbuntuを起動することができるか。
状態の確認
ディスクの構成を調べる。
grub> ls (memdisk) (hd0) (hd0,gpt2) (hd0,gpt1) (hd1) grub >ls (hd0,gpt1)/ efi/ grub > ls (hd0,gpt2)/ lost+found/ boot/ bin lib lib32 lib64 libx32 sbin dev/ etc/ home/ media/ mnt/ opt/ proc/ root/ run/ snap/ srv/ sys/ tmp/ usr/ var/ swap.img
(hd0,gpt2)がUbuntuのパーティションだった。
rootにそれを入れておく。
grub> set root=hd0,gpt2
カーネルと初期RAMディスクを指定して起動
UUIDで指定
UbuntuのパーティションのUUIDを変数に保管しておく。
grub> probe $root --fs-uuid --set=fsuuid grub> echo $fsuuid 962009cc-5ad2-4839-9161-608fc8ddad06
カーネルと初期RAMディスクを決める。
grub> linux /boot/vmlinuz root=UUID=$fsuuid ro grub> initrd /boot/initrd.img
ブートする
grub> boot
/devで指定
この方法でも起動ができた。
grub> linux /boot/vmlinuz root=/dev/sda2 ro grub> initrd /boot/initrd.img
ブートする
grub> boot
grub.cfgのバックアップで起動
grub.cfgをバックアップしておいた場合、そのバックアップを呼び出すこともできる。
configfile (hd0,gpt2)/boot/grub/grub.cfg.bak
これで、画面にOS選択メニューが表示され、Ubuntuを起動することができた。
grub.cfgの復旧
何をしてgrub.cfgが壊れたのかにもよるが、以下でgrub.cfgを作り直すのが1つの方法。
$ sudo update-grub
update-grubでgrub.cfgが壊れたのであれば、以下を見直す。
- /etc/default/grub
- /etc/grub.d/にある実行権限が付いたスクリプト
今回は、GRUBのRC1のソースをビルドし、ガチャガチャ色々やった結果で壊した。
なので、/usr/local/binにインストールされているコマンド群を削除し、grubのパッケージを再インストールして/etc/grub.d辺りを復旧すれば、どうにかなるかなと思われる。
/bootの中身
今日の/bootの中は、こんなことになっていた。
起動時に、カーネルや初期RAMディスクのバージョンを指定せずとも、最新バージョンが起動してくる。
$ ls -l /boot total 124780 -rw-r--r-- 1 root root 262053 Sep 5 22:31 config-5.15.0-84-generic drwxr-xr-x 3 root root 4096 Jan 1 1970 efi drwxr-xr-x 5 root root 4096 Oct 1 11:01 grub lrwxrwxrwx 1 root root 28 Sep 26 08:30 initrd.img -> initrd.img-5.15.0-84-generic -rw-r--r-- 1 root root 109609487 Sep 26 08:43 initrd.img-5.15.0-84-generic lrwxrwxrwx 1 root root 28 Sep 26 08:30 initrd.img.old -> initrd.img-5.15.0-84-generic -rw------- 1 root root 6273857 Sep 5 22:31 System.map-5.15.0-84-generic lrwxrwxrwx 1 root root 25 Sep 26 08:30 vmlinuz -> vmlinuz-5.15.0-84-generic -rw------- 1 root root 11612712 Sep 6 01:57 vmlinuz-5.15.0-84-generic lrwxrwxrwx 1 root root 25 Sep 26 08:30 vmlinuz.old -> vmlinuz-5.15.0-84-generic
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他