2019年に、FreeBSD をGrub2から立ち上げるための設定を書いたが、そのときは、1つのディスクの中の話だった。今回は複数ディスクの場合。現状のディスク構成は、次の通り。
- SSD (1TB) --- Windows10 と ubuntu
- HD (2TB) --- 立ち上がらないWindows 10
- HD (2TB) --- CentOS、FreeBSD、立ち上がらないUbuntu
1にいれたUbuntuが作ったGrub2の/boot/grub/grub.cfg を、grub-customizerや コマンドラインでを修正しようとしたが、うまく行かなかった。これは理由がわからず。仕方がないのでemacsで直接編集しつつ試した。3のディスクのGPTの7番目のパーティションがFreeBSDである。いろいろなWebを見て以下を試した。
試した11個のうち、No.10と11はうまくいった。kfreebsdを使うと、だんまりになって電源OFFしか方法がなかった。リセットボタンとマザーボードの配線は直したはずなのだが。。とにかく、以前のFreeBSDのディスクが読めるようになした。
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/styles/atom-one-dark.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
menuentry "01. FreeBSD (hd3,gpt1) insmod fat/part_gpt (NG)" {
insmod fat
insmod part_gpt
insmod chain
set root='(hd3,gpt1)'
chainloader /EFI/FreeBSD/loader.efi
}
menuentry "02. FreeBSD (hd3,gpt1) long" –- class freebsd –- class bsd –- class os {
insmod fat
insmod part_gpt
insmod chain
set root='(hd3,gpt1)'
chainloader /EFI/FreeBSD/loader.efi
}
menuentry "03. FreeBSD (hd3,gpt7) /boot/loader.efi (NG)" {
insmod ufs2
insmod part_gpt
insmod chain
set root='(hd3,gpt7)'
chainloader /boot/loader.efi
}
menuentry "04. FreeBSD (hd3,gpt7) /boot/loader.efi long (NG)" –- class freebsd –- class bsd –- class os {
insmod ufs2
insmod part_gpt
insmod chain
set root='(hd3,gpt7)'
chainloader /boot/loader.efi
}
menuentry "05. FeeeBSD (hd3,gpt7) kfreebsd ada2s7 /boot/kernel/kernel (NG)" {
insmod ufs2
insmod bsd
insmod part_gpt
set root='(hd3,gpt7)'
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada2s7
set kFreeBSD.vfs.root.mountfrom.options=rw
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
boot
}
menuentry "06. FeeeBSD (hd3,gpt7) kfreebsd ada2s7 /boot/loader (NG)" {
insmod ufs2
insmod bsd
insmod part_gpt
set root='(hd3,gpt7)'
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada2s7
set kFreeBSD.vfs.root.mountfrom.options=rw
kfreebsd /boot/loader
kfreebsd_loadenv /boot/device.hints
}
menuentry "07. FreeBSD (hd3,gpt7) chainloader only" {
insmod ufs2
insmod bsd
insmod chain
set root='(hd3,gpt7)'
chainloader (hd3,gpt7)+1
}
menuentry "08. FeeeBSD (hd3,gpt7) kfreebsd ada2s7 /boot/kernel/kernel (NG)" {
insmod ufs2
insmod bsd
insmod part_gpt
set root='(hd3,gpt7)'
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada3s7
set kFreeBSD.vfs.root.mountfrom.options=rw
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
boot
}
menuentry "09. FeeeBSD (hd3,gpt7) kfreebsd ada2s7 /boot/kernel/kernel uuid (NG)" {
insmod ufs2
insmod bsd
insmod part_gpt
set root='(hd3,gpt7)'
search --no_floppy --fs_uuid --set 596c1fbff0b78a9a
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada3s7
set kFreeBSD.vfs.root.mountfrom.options=rw
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
boot
}
menuentry "10. FreeBSD (hd3,gpt7) /boot/boot1.efi (OK)" {
insmod ufs2
insmod part_gpt
insmod chain
set root='(hd3,gpt7)'
chainloader /boot/boot1.efi
}
menuentry "11. FreeBSD (hd3,gpt7) /boot/boot1.efi long (OK)" –- class freebsd –- class bsd –- class os {
insmod ufs2
insmod part_gpt
insmod chain
set root='(hd3,gpt7)'
chainloader /boot/boot1.efi
}
SSDだから良かったけれど、これがHDならあと何時間かかっていたことか。。