もともと入っていたUbuntuをリサイズしてFreeBSDを入れたが、FreeBSDがブートしない問題の解決方法



 注:解説が間違っている、また正しい方法かどうかわからないので、自己責任でお願いします。
 注:(hd0,3)などのデバイスやパーティーションの名前は読み替えてください。


参考にさせていただいたサイト


GRUB2からブートする方法はいくつかあるが、
  1. insmod カーネルモジュール をロードする。
  2. 環境変数 のrootにFreeBSDカーネルのあるパーティションを読み込ませる。
  3. FreeBSDのブートローダーを読み込む
  4. 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