Ubuntu

Ubuntu22.04 GRUBのコンソールから起動

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

広告

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他