LinuxとNetBSDをデュアルブートする方法をメモしておきます。
環境
- DELL Latitude E6540
- Intel Core i7-4610M (Haswell)
- BIOS (Legacy boot)
- Ubuntu Desktop 16.04 と NetBSD 7.1 をデュアルブート
Linuxのインストール
Linuxのディストーションとして、今回はUbuntu Desktop 16.04をインストールします。 Ubuntuは通常どおり、公式のリリースページからISOファイルをダウンロードし、USBメモリなどに焼いてインストールすればOKです。 ただしあとでNetBSDをインストールするパーティションを確保しておきましょう。
NetBSDのインストール
まずは公式のリリースページからUSBメモリ用のイメージをダウンロードし、焼きます。 USBメモリから起動してインストーラを実行します。 基本的な流れは、NetBSD公式のインストールガイドや webzoit.netさんがたいへん参考になります。 そこで、デュアルブートのために必要な手順のみ説明します。
ちなみに、インストールの終盤でユーザーを追加できます。
wheel
グループへの追加などもできるので、ここで設定しておくと便利です。
NetBSDのブートローダをインストールしない
NetBSDのインストール中に、「bootselect codeをインストールするか?」と聞かれるステップがあります。 これはUbuntuで使っているブートローダを上書きしてしまうので、Noと答えます。
UbuntuのGRUBからNetBSDが起動できるよう設定
NetBSDのブートローダは使わずに、Ubuntuの領域にインストールしたGRUBからNetBSDがブートできるように設定します。
まず、/etc/grub.d/40-custom
に以下のようなエントリーを追記します。
menuentry `NetBSD 7.1 on sda3` {
insmod bsd
set root=(hd0,3)
chainloader (hd0,3)+1
}
エントリーの名前は好きなものに設定してください。
root
, chainloader
で設定するパーティションは、NetBSDをインストールしたところ指すように設定するため、環境によって変わります。
NetBSDをインストールしたパーティションの番号やfdisk
の結果から決めてください。
次に、/etc/default/grub
を編集します。
7, 8行目付近に GRUB_HIDDEN_TIMEOUT
を含む二行があるので、これをコメントアウトします。
GRUBのメニューで勝手にUbuntuを起動させず、NetBSDのエントリーを選べるようにするためです。
最後に sudo update-grub
を実行し、GRUBの設定を更新します。
動作確認
以上でデュアルブートの設定は終わりです。 再起動してGRUBのメニューにNetBSDが現れることを確認しましょう。