LinuxとNetBSDのデュアルブート

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が現れることを確認しましょう。