もともと入っていたUbuntuをリサイズしてFreeBSDを入れたが、FreeBSDがブートしない問題の解決方法
注:解説が間違っている、また正しい方法かどうかわからないので、自己責任でお願いします。
注:(hd0,3)などのデバイスやパーティーションの名前は読み替えてください。
参考にさせていただいたサイト
GRUB2からブートする方法はいくつかあるが、
-
insmod
で
カーネルモジュール
をロードする。
-
環境変数
のrootにFreeBSDカーネルのあるパーティションを読み込ませる。
- FreeBSDのブートローダーを読み込む
- searchでフロッピーディスクを検索せずにファイルシステムのUUIDを探して、最初に見つかったデバイスは
環境変数
のvarの値として設定される。(varは変数という意味で、ここではファイルシステムのUUID)
の方法を今回は使う。
今回FreeBSDを(hd0,3)にインストールしたとする。
上をシェルスクリプトで表すと、
menuentry "FreeBSD 10.2" {
insmod ufs2
set root=(hd0,3)
kfreebsd /boot/loader
search --no-floppy --fs-uuid --set 4b22f9090565ab77
}
です。
device fs_type label mount point UUID
--------------------------------------------------------------------------------------
/dev/sda1 ext4 / 5cbc3544-bc13-7d1a-1c1b-eef331e119af
/dev/sda2 swap [SWAP] f6abc789-0d12-2da0-be78-6c7342142ba2
/dev/sda3 ufs (not mounted) 4b22f9090565ab77
的なやつが出てくるはずです。FreeBSDはsda3にあるのでUUIDは4b22f9090565ab77と分かります。
この内容を設定ファイルに追記します。端末を開いて
sudo nano /etc/grub.d/40_custom
[sudo] password for usre
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD 10.2" {
insmod ufs2
set root=(hd0,3)
kfreebsd /boot/loader
search --no-floppy --fs-uuid --set 4b22f9090565ab77
}
保存して
sudo update-grub
sudo update-grub2 //私の場合一応両方やりました。
後はrebootしてGRUB MENUからFreeBSDを選択してエラーが出なかったら成功です。
- test
-- (名無しさん) 2015-12-30 04:52:00
最終更新:2015年12月30日 04:56