2022年03月29日

grub2でのマルチブートでarch系が拾えない。linux

grub-mkconfig(update-grub)の実行で、
linux行の下に入る、initrd行のサーチで、
intel-ucode.imgやamd-ucode.imgだけ拾って、
その後ろの肝心のinitramfs-linux.imgを拾いそこねる
という不具合が長きに亘り放置されてきました。
いまも!放置されたままです。

grubプロジェクトも、archlinuxプロジェクトも
おれの仕事じゃない、テメエの仕事だ!
てことなのでしょうか。いい加減なんとかすれば
いいのに、一向に改善される気配がないので、
あれこれ調べました。

sparkylinux-6.2-amd64を例に説明しますと、

$ sudo mousepad /usr/lib/linux-boot-probes/mounted/40grub2

81行目の
initrd="$(echo "$2" | sed 's/(.*)//')"
の1行を削除して
shift 1
initrd="$(echo "$@" | sed 's/(.*)//')"

の2行に差し替えます。

やる場合は、バックアップを取ってから行なってください。
バックアップの保存場所は、別なところに。
.bakとか拡張子を付けても、その場に在ると
grubが反応したりします。

ほかにも、少しいじったところもありますが、
結果として、必要なかったので、これだけで上手くいくはずです。

debian系とかubuntu系なら、
$ sudo update-grub
fedoraやarchlinuxなら、
$ sudo grub(2)-mkconfig -o /boot/grub(2)/grub.cfg
です。fedoraの場合は、2を付けて。

で、initrd行が、
initrd /boot/amd-ucode.img /boot/initramfs-linux.img

といった具合に、拾えるようになるはずです。

linuxでマルチブートをする人は少ないでしょう。
ほとんど役立たない情報でしたっ!


posted by ブログ開設者 at 15:29| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする