公開日: 2021年7月4日 / 最終更新日: 2023年4月25日
マルチブート事例 1: Windows 10 と FreeBSD と FreeBSD (後編)
Windows と FreeBSD と FreeBSD のマルチブートを試みる記事の後編です。ようやくここから FreeBSD のインストールに取りかかります。
FreeBSD を A 面にインストールする
細かい設定やアプリケーションのインストールは後回しにして、とにかく OS 本体のインストールだけやっつけましょう。手順は次のとおりです。
- 前編でパーティションを作ったときと同様に FreeBSD のインストーラを起動する。
- Welcome 画面で [Install] を選択する (図 1(a))。
- Keymap Selection 画面で好きなキーマップを選択する (図 1(b))。私は学生時代の名残で英語配列がしっくりくるので [United States of America (Caps Lock acts as Left Ctrl)] です。日本語キーボードなら [Japanese 106] あたりかと思います。
- Set Hostname 画面でホスト名を入力する (図 1(c))。私は好きな食べ物の名前を付けることが多いです。
- Distribution Select 画面はデフォルトのまま次へ (図 1(d))。
- Partitioning 画面で [Manual] を選択 (図 1(e))。
- Partition Editor 画面でスワップ用に作成したパーティション (ここでは ada0p2) にカーソルを合わせて [Modify] を選択する。入力内容は下記のとおり (図 1(f, g))。
※ ラベルはスワップパーティションであることがわかるような名前にしておく。Type: freebsd-swap Size: (自動入力) Mountpoint: (空欄) Label: FreeBSD swap
ちなみに図 1(f) で ada0 の上にある nvd0 は Windows 10 がプリインストールされている SSD です。ここを間違えると悲しいことになります。 - 続いて FreeBSD A 面用のパーティション (ここでは ada0p3,図 1(h))。
※ ここで指定したラベルは、あとで rEFInd の設定を書くときに使用する。Type: freebsd-ufs Size: (自動入力) Mountpoint: / Label: FreeBSD-A - 以上、入力を終えて [Finish] を選択すると、本当にディスクを消去してよいか訊かれる (図 1(i))。よければ [Commit] を選択するとインストールが始まる。よくなければ [Revert & Exit] または [Back] を選択する (どこに戻るんだったか忘れましたが、とにかくどこかに戻ります)。
- ここからはインストール後の設定。まず root のパスワードを入力する (図 1(j))。
- Network Configuration はあとで設定するので Cancel しておく (図 2(a))。
- Select local or UTC では日本に住んでいる方は「No」を選択し (図 2(b))、
- Time Zone Selector で [Asia] を選択し (図 2(c))、
- Countries in Asia で [Japan] を選択し、Confirmation で [Yes] を選択する (図 2(d))。
- Time & Date はあとで設定するので Skip (図 2(e))。
- System Configuration と System Hardening はデフォルトのまま (図 2(f, g))。
- 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 (デフォルト) - Final Configuration で [Exit] を、Manual Configuration で [No] を選択する (図 2(j, k))。これで A 面はおしまい。Installation of FreeBSD complete! と表示されるが、我々にはまだ B 面が残されている。[Reboot] を選択して次へ (図 2(l))。
FreeBSD を B 面にもインストールする
次は B 面です。簡単のために、味気なくも A 面と同じバージョンをインストールします。こうなると違ってくるのは手順 7 と 8 だけです。
- スワップパーティションは A、B 共用とするので、手順 7 は飛ばす。
- Partition Editor で FreeBSD B 面用に作成したパーティション (ここでは ada0p4) にカーソルを合わせて [Modify] を選択する。入力内容は次のとおり。
※ ここで指定したラベルも、あとで rEFInd の設定を書くときに使用します。Type: freebsd-ufs Size: (自動入力) Mountpoint: / Label: FreeBSD-B
バックアップしておいたパーティションをリストアする
前編でバックアップしておいたパーティションがあれば必要に応じてリストアします。つぎの記事を参照してください。
rEFInd のインストール・設定
rEFInd を使用すると EFI/UEFI ベースのパソコンでマルチブートを実現することができます。インストールにはいろいろなやり方がありますが、ここでは Windows 10 上で作業する方法を採ります。詳しくは下記 URL を参照してください。
- 公式サイトのリンクをたどって refind-bin-<バージョン>.zip をダウンロードし、適当なフォルダで解凍する。
- 管理者権限で DOS プロンプトを起動し、EFI システムパーティションを S ドライブにマウントする。
C:\WINDOWS\system32>mountvol s: /s
- 手順 1 で解凍したフォルダ (例えば D:\hoge\) の中にある refind フォルダをS:\EFI\ の下に丸ごとコピーする。
C:\WINDOWS\system32>s: S:\>xcopy /e d:\hoge\refiind-bin-<バージョン>\refind efi\refind\
- 不要なドライバを削除する。しないと起動に余計な時間がかかるどころか、システムクラッシュを引き起こすかも。みたいなことがドキュメントに書かれている。私の場合は 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
- UFS ドライバを組み込む。EFI Drivers のホームページ (http://efi.akeo.ie/) から ufs2_x64.efi をダウンロードし、S:\EFI\refind\drivers_x64\ にコピーする。
- ブートマネージャを Windows Boot Manager から rEFInd に変更する。
S:\>bcdedit /set "{bootmgr}" path \efi\refind\refind_x64.efi この操作を正しく終了しました。 S:\>bcdedit /set "{bootmgr}" description "rEFInd" この操作を正しく終了しました。
S:\>bcdedit /set "{bootmgr}" path \efi\microsoft\boot\bootmgfw.efi この操作を正しく終了しました。 S:\>bcdedit /set "{bootmgr}" description "Windows Boot Manager" この操作を正しく終了しました。
- 設定ファイルのサンプルをコピーし、メモ帳等の適当なエディタで変更する。
S:\>cd efi\refind S:\EFI\refind>copy refind.conf-sample refind.conf S:\EFI\refind>notepad refind.conf
refind.conftimeout 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 で入力したラベル - 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 が / にマウントされており、狙いどおりになっています。
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)