UbuntuをインストールしてあるPCにFreeBSDをインストールし、GRUBでデュアルブート化してみた。
このPCにはHDDが2台(500Gと250G)内蔵してあり、500GのHDDにUbuntuをインストールし、250GのHDDは未使用状態であった。
最初に空きのHDD(250G)に最新のFreeBSD 12.0をインストール。
HDDはGPTでパーティショニングを行った。
FreeBSDのインストールが完了したらUbuntuを起動させる。(GRUBにFreeBSDを認識させていないので、当然、FreeBSDは起動できない。)
Ubuntuで「blkid -o list」とターミナルで打ち込み、ファイルシステムのUUIDを表示させる。
root@tomato:~# blkid -o list
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/loop0 squashfs /snap/gnome-system-monitor/39
/dev/loop1 squashfs /snap/gnome-calculator/167
/dev/loop2 squashfs /snap/gnome-logs/31
/dev/loop3 squashfs /snap/gnome-3-26-1604/62
/dev/loop4 squashfs /snap/core/4486
/dev/loop5 squashfs /snap/gnome-calculator/260
/dev/loop6 squashfs /snap/gnome-system-monitor/57
/dev/loop7 squashfs /snap/gnome-3-26-1604/74
/dev/sda1 swap [SWAP] d36d29f3-d53d-472a-9456-d811e0eeb4c8
/dev/sda2 ext4 / 6b4bb690-f05a-4750-8fc9-a3cf7bc88e51
/dev/sdb1 (not mounted)
/dev/sdb2 ufs (not mounted) 5c4453b64c32c83d
/dev/sdb3 (not mounted)
/dev/sdb4 ufs (not mounted) 5c4453b8af3f5753
/dev/sdb5 ufs (not mounted) 5c4453bdb28e05db
/dev/sdb6 ufs (not mounted) 5c4453bec82595d7
/dev/sdb7 ufs (not mounted) 5c4453bfc602ceda
/dev/loop8 squashfs /snap/gnome-logs/45
FreeBSDのマウントポイント「/」はsdb2としたのでUUIDは「5c4453b64c32c83d」であることがわかる。
この内容を設定ファイルに以下の様に追記する。
# vi /etc/grub.d/40_custom
#!/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 12.0" {
insmod ufs2
set root=(hd1,2)
kfreebsd /boot/loader
search --no-floppy --fs-uuid -set 5c4453b64c32c83d
}
起動時にブートメニューを表示させるようにgrubを編集する。
# vi /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
修正箇所は「GRUB_TIMEOUT_STYLE=hidden」をコメント化。
保存して編集結果を反映させる。
sudo update-grub
sudo update-grub2
その後、再起動すると以下の様にブート選択メニューが表示される。