公開日: 2021年7月4日 / 最終更新日: 2023年4月25日

マルチブート事例 1: Windows 10 と FreeBSD と FreeBSD (後編)

Windows と FreeBSD と FreeBSD のマルチブートを試みる記事の後編です。ようやくここから FreeBSD のインストールに取りかかります。

FreeBSD を A 面にインストールする

細かい設定やアプリケーションのインストールは後回しにして、とにかく OS 本体のインストールだけやっつけましょう。手順は次のとおりです。
  1. 前編でパーティションを作ったときと同様に FreeBSD のインストーラを起動する。
  2. Welcome 画面で [Install] を選択する (図 1(a))。
  3. Keymap Selection 画面で好きなキーマップを選択する (図 1(b))。私は学生時代の名残で英語配列がしっくりくるので [United States of America (Caps Lock acts as Left Ctrl)] です。日本語キーボードなら [Japanese 106] あたりかと思います。
  4. Set Hostname 画面でホスト名を入力する (図 1(c))。私は好きな食べ物の名前を付けることが多いです。
  5. Distribution Select 画面はデフォルトのまま次へ (図 1(d))。
  6. Partitioning 画面で [Manual] を選択 (図 1(e))。
  7. Partition Editor 画面でスワップ用に作成したパーティション (ここでは ada0p2) にカーソルを合わせて [Modify] を選択する。入力内容は下記のとおり (図 1(f, g))。
    Type:freebsd-swap
    Size:(自動入力)
    Mountpoint:(空欄)
    Label:FreeBSD swap
    ※ ラベルはスワップパーティションであることがわかるような名前にしておく。
    ちなみに図 1(f) で ada0 の上にある nvd0 は Windows 10 がプリインストールされている SSD です。ここを間違えると悲しいことになります。
  8. 続いて FreeBSD A 面用のパーティション (ここでは ada0p3,図 1(h))。
    Type:freebsd-ufs
    Size:(自動入力)
    Mountpoint:/
    Label:FreeBSD-A
    ※ ここで指定したラベルは、あとで rEFInd の設定を書くときに使用する。
  9. 以上、入力を終えて [Finish] を選択すると、本当にディスクを消去してよいか訊かれる (図 1(i))。よければ [Commit] を選択するとインストールが始まる。よくなければ [Revert & Exit] または [Back] を選択する (どこに戻るんだったか忘れましたが、とにかくどこかに戻ります)。
  10. ここからはインストール後の設定。まず root のパスワードを入力する (図 1(j))。
  11. Network Configuration はあとで設定するので Cancel しておく (図 2(a))。
  12. Select local or UTC では日本に住んでいる方は「No」を選択し (図 2(b))、
  13. Time Zone Selector で [Asia] を選択し (図 2(c))、
  14. Countries in Asia で [Japan] を選択し、Confirmation で [Yes] を選択する (図 2(d))。
  15. Time & Date はあとで設定するので Skip (図 2(e))。
  16. System Configuration と System Hardening はデフォルトのまま (図 2(f, g))。
  17. Add User Accounts で一般ユーザのアカウントをひとつ作っておく (図 2(h, i))。下記の例では "Invite into other groups?" の項目に "wheel" を入れて、このユーザが su コマンドで root になることを許可している。このあたりはユーザに与える権限によって適切に設定する。
    Username: mijinco
    Full name: Mijinco
    Login group: mijinco (デフォルト)
    Invite mijinco into other groups?: wheel operator (空白文字で区切って複数指定可)
    Login class: default (デフォルト)
    Shell: tcsh (あとで zsh に変更しようと思う)
    Home directory: /home/mijinco (デフォルト)
    Home directory permissions: (空欄)
    Use an empty password?: no (デフォルト)
    Use a random password?: no (デフォルト)
    Enter password: (パスワード入力)
    Enter password again: (パスワード再入力)
    Lock out the account after creation?: no (デフォルト)
  18. Final Configuration で [Exit] を、Manual Configuration で [No] を選択する (図 2(j, k))。これで A 面はおしまい。Installation of FreeBSD complete! と表示されるが、我々にはまだ B 面が残されている。[Reboot] を選択して次へ (図 2(l))。
図 1
図 1
図 2
図 2

FreeBSD を B 面にもインストールする

次は B 面です。簡単のために、味気なくも A 面と同じバージョンをインストールします。こうなると違ってくるのは手順 7 と 8 だけです。
  1. スワップパーティションは A、B 共用とするので、手順 7 は飛ばす。
  2. Partition Editor で FreeBSD B 面用に作成したパーティション (ここでは ada0p4) にカーソルを合わせて [Modify] を選択する。入力内容は次のとおり。
    Type:freebsd-ufs
    Size:(自動入力)
    Mountpoint:/
    Label:FreeBSD-B
    ※ ここで指定したラベルも、あとで rEFInd の設定を書くときに使用します。

バックアップしておいたパーティションをリストアする

前編でバックアップしておいたパーティションがあれば必要に応じてリストアします。つぎの記事を参照してください。

rEFInd のインストール・設定

rEFInd を使用すると EFI/UEFI ベースのパソコンでマルチブートを実現することができます。インストールにはいろいろなやり方がありますが、ここでは Windows 10 上で作業する方法を採ります。詳しくは下記 URL を参照してください。また、複数のパーティションから FreeBSD を起動するために UFS ドライバを使用するアイデアについては下記のサイトが大変参考になりました。では手順です。
  1. 公式サイトのリンクをたどって refind-bin-<バージョン>.zip をダウンロードし、適当なフォルダで解凍する。
  2. 管理者権限で DOS プロンプトを起動し、EFI システムパーティションを S ドライブにマウントする。
    C:\WINDOWS\system32>mountvol s: /s
    
  3. 手順 1 で解凍したフォルダ (例えば D:\hoge\) の中にある refind フォルダをS:\EFI\ の下に丸ごとコピーする。
    C:\WINDOWS\system32>s:
    S:\>xcopy /e d:\hoge\refiind-bin-<バージョン>\refind efi\refind\
    
  4. 不要なドライバを削除する。しないと起動に余計な時間がかかるどころか、システムクラッシュを引き起こすかも。みたいなことがドキュメントに書かれている。私の場合は x64 を残して ia32 と aa64 を削除。
    S:\>cd efi\refind
    S:\EFI\refind>del refind_aa64.efi refind_ia32.efi
    S:\EFI\refind>rd /s drivers_aa64 drivers_ia32 tools_aa64 tools_ia32
    
  5. UFS ドライバを組み込む。EFI Drivers のホームページ (http://efi.akeo.ie/) から ufs2_x64.efi をダウンロードし、S:\EFI\refind\drivers_x64\ にコピーする。
  6. ブートマネージャを Windows Boot Manager から rEFInd に変更する。
    S:\>bcdedit /set "{bootmgr}" path \efi\refind\refind_x64.efi
    この操作を正しく終了しました。
    
    S:\>bcdedit /set "{bootmgr}" description "rEFInd"
    この操作を正しく終了しました。
    
    ちなみに、やっぱり Windows Boot Manager に戻したい…という場合はこうする。
    S:\>bcdedit /set "{bootmgr}" path \efi\microsoft\boot\bootmgfw.efi
    この操作を正しく終了しました。
    
    S:\>bcdedit /set "{bootmgr}" description "Windows Boot Manager"
    この操作を正しく終了しました。
    
  7. 設定ファイルのサンプルをコピーし、メモ帳等の適当なエディタで変更する。
    S:\>cd efi\refind
    S:\EFI\refind>copy refind.conf-sample refind.conf
    S:\EFI\refind>notepad refind.conf
    
    変更点は下記のとおり。timeout と textonly の設定はお好みでよいと思います。
    refind.conf
    timeout 0
    textonly
    scanfor manual
    
    menuentry "Windows 10" {
        loader \EFI\Boot\bootx64.efi
    }
    
    menuentry "FreeBSD 12.2-R" {
        volume freebsd-A
        loader /boot/loader.efi
    }
    
    menuentry "FreeBSD 12.2-R" {
        volume freebsd-B
        loader /boot/loader.efi
    }
    
    1行目:この値を 0 にするとオートブートしない。
    2行目:テキストベースのメニュー画面を有効にする。
    3行目:ブートローダの検索方法を指定する。"manual" にすると、この設定ファイルに記述されたスタンザ (定型詩を構成する数行単位のまとまりをそう呼ぶんだそうです) に従う。
    5行目:Windows 10 用のスタンザ
    9行目:FreeBSD A 面用のスタンザ
    10行目:FreeBSD A 面インストール時に Partition Editor で入力したラベル
    14行目:FreeBSD B 面用のスタンザ
    15行目:FreeBSD B 面インストール時に Partition Editor で入力したラベル
  8. UEFI の設定。パソコンによって設定方法が違うので細かくは書かないが、下記のように UEFI を設定の上、パソコンを再起動する。
    • CSM (Compatibility Supported Module): 無効
    • Secure Boot: 無効
    • ブート優先順位の設定で rEFInd を Windows Boot Manager よりも上に持ってくる。

結果、こうなる

パソコンを起動すると、けっこう長めの「間」ののち、図 3 のように rEFInd のブート選択画面が表示されます (この「間」は UFS ドライバに因るものらしいです) 。refind.conf で "textonly" を指定したので、MS-DOS でも起動しそうな簡素な佇まいですが、私はこのほうが好みです。それぞれの OS がちゃんと起動するか確認しましょう。Windows 10 は見た目ですぐわかるのでいいとして、FreeBSD の A 面 B 面は mount コマンドの出力で確認します。A 面は /dev/ada0p3 が、B 面は /dev/ada0p4 が / にマウントされており、狙いどおりになっています。
rEFInd のブート選択画面
図 3: rEFInd のブート選択画面
A 面
% mount
/dev/ada0p3 on / (ufs, local, journaled soft-updates)
devfs on /dev/(devfs, local, multilabel)
B 面
% mount
/dev/ada0p4 on / (ufs, local, journaled soft-updates)
devfs on /dev/(devfs, local, multilabel)