AppleシリコンMacにFreeBSDをどうしてもインストールしたい!ということで、Parallels Desktopを使ってM1 MacにFreeBSD 14.0をインストールしてみました。
下記のParallels公式ページによると、Intel MacではFreeBSDのインストールがサポートされているけど、AppleシリコンMacではサポートされていないようです。
でもご安心ください。インストールディスクイメージを使ってインストールすることができます。ただし、Parallels Toolsがインストールできないのでホストとゲストの連携(フォルダやクリップボードの共有など)はできませ◯。
- Mac mini (M1, 2020)
- macOS Sonoma 14.1.2
- Parallels Desktop 19 for Mac
- FreeBSD 14.0
FreeBSDの入手
FreeBSDのインストーラを入手するために、FreeBSDの公式サイトへ行きます。いつの間にか日本語ページがなくなっちゃったんですね。悲しいね。
まずは、CPUアーキテクチャを選択します。AppleシリコンMacならばaarch64、Intel Macならばamd64を選択します。
ファイルがいっぱいあって、どれを選べばいいかわかりませんね。まず、インストーラのフォーマットを次の5つから選びます。Parallels Desktopでは、インストール中にインターネット接続が可能なのでbootonlyを選べばよいでしょう。
bootonly | インストーラのみが含まれています。インストール中に必要なファイルをダウンロードするため、インターネット接続が必要です。 |
---|---|
disc1 | FreeBSDのインストールに必要なすべてのファイルが含まれています。 |
dvd1 | FreeBSDのインストールに必要なすべてのファイルとパッケージが含まれています。 |
memstick | FreeBSDのインストールに必要なすべてのファイルが含まれています。USBメモリに書き込んで使います。 |
mini-memstick | bootonlyと同じくインストーラのみが含まれています。USBメモリに書き込んで使います。 |
ファイル名の末尾に拡張子.xz
がついているのは圧縮ファイルで、ついていないのは圧縮されていないファイルです。xzファイルを展開する自信があるならば圧縮ファイルを、ないならば非圧縮ファイルを選んでダウンロードしましょう。
仮想マシンの作成
すでにParallels Desktopはインストール済みという前提で進めます。まだの方は下記の記事を参考にインストールしてください。
Parallels Desktopを起動してメニューバーの「ファイル > 新規…」を選択します。
VM(仮想マシン)の新規作成ウインドウが開くので「Windows、Linux、またはmacOSをイメージファイルからインストールします」を選択して「続行」ボタンをクリックします。
「ソースなしで続行する」にチェックを入れて「続行」ボタンをクリックします。
オペレーティングシステムは「その他」を選んで「OK」をクリックします。ご存知かと思いますが、FreeBSDはLinuxではありません。
VMの名前と保存先を決めて「作成」ボタンをクリックします。
OSがインストールされていないよんというメッセージが表示されたら「OK」ボタンを押します。
FreeBSDのインストール
- 矢印キー ↑ ↓ ← → でカーソルが移動します。矢印キーで移動できない場合はtabで移動できます。
- space で選択肢の選択・解除をします。
- return で決定します。
以下のような画面が表示されたら、ウインドウの右上の「CDアイコン > イメージの接続…」を選択します。そして、FreeBSDのインストールイメージ(ISO)を読み込んでください。
次にカーソルを「Continue」に移動してreturnキーを押します。
さあ、FreeBSDのインストールがはじまります。わくわく(アーニャ)。
なんと!BSDデーモン君がなめらかになっています。ご参考までに以前のWelcome画面をどうぞ。
[Install]
にカーソルを合わせて決定します。
Welcome to FreeBSD! Would you like to begin an installation or use the live CD?
FreeBSD へようこそ!インストールを始めたいですか、それともライブ CD を使いたいですか?
キーマップの設定をします。使っているキーボードに合わせて選択してください。私は日本語キーボードを使っているので「Japanese 106」を選択しました。
「Test jp.kbd keymap」を選択するとキーボード入力のテストをすることができます。
記号がちゃんと入力できるか確認しておきましょう。
Test the keymap by typing letters, numbers, and symbols. Caracters should match labels on the keyboard keys. Press enter to stop testing.
文字、数字、記号を入力してキーマップをテストします。文字はキーボードキーのラベルと一致していなければなりません。エンターキーを押してテストを中止します。
問題がなければ「Continue with jp.kbd keymap」を選択します。
このマシンのホスト名を設定します。
Please choose a hostname for this machine.
このマシンのホスト名を選択してください。
If you are running on a managed network, please ask your network administrator for an appropriate name.
管理されたネットワーク上で動作している場合は、ネットワーク管理者に適切な名前を尋ねてください。
インストールするコンポーネントを選択します。私はデフォルトのまま<OK>
しました。
Choose optional system components to install:
インストールするオプションのシステムコンポーネントを選択します。
base-dbg | デバッグシンボルを有効にしたベースツール。 |
---|---|
kernel-dbg | デバッグシンボルを有効にしたカーネルおよびモジュール。 |
lib32-dbg | 32bitアプリを64bit版のFreeBSDで実行する際に必要となる互換ライブラリ(デバッグシンボル有効)。 |
lib32 | 32bitアプリを64bit版のFreeBSDで実行する際に必要となる互換ライブラリ。 |
ports | Ports Collection。 |
src | カーネルおよびユーザランドの完全なソースコード。 |
tests | テストスイート。 |
bootonlyのインストーラを使っているのでインストールファイルをダウンロードするためにネットワーク設定をします。<OK>
します。
Some installation files were not found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet.
一部のインストールファイルがブートボリュームに見つかりませんでした。次の数画面では、インターネットからダウンロードできるようにネットワークを設定します。
「vtnet0」を選択して[OK]
します。
Please select a network interface to configure:
設定するネットワークインターフェイスを選択してください。
リゾルバの設定です。自動設定してくれているので、そのまま[OK]
します。
ディスクのパーティションの設定です。私は「Auto(UFS)」を選択しました。メモリに余裕があるならばZFSもいいのではないでしょうか。
How would you like to partition your disk?
ディスクのパーティションはどのようにしますか?
次に、パーティションを切るかどうかの選択をします。今回はパーティションを切らないので[Entire Disk]
を選択します。
Would you like to use this entire disk (ada0) for FreeBSD or partition it to share it with other operating systems? Using the entire disk will erase any data currently stored there.
このディスク (ada0) をまるごと FreeBSD で使うか、パーティションを切って他のオペレーティングシステムと共有しますか? ディスク全体を使用すると、現在そこに保存されているデータはすべて消去されます。
パーティションスキームを選択します。GPT で[OK]
です。
Select a partition scheme for this volume:
このボリュームのパーティションスキームを選択します。
パーティションの設定を確認して問題がなければ[Finish]
します。[Finish]
にカーソルを持っていくにはtabキーを使う必要があるかもしれません(やさしい)。
Please review the disk setup. When complete, press the Finish button.
ディスクのセットアップを確認してください。完了したら、Finishボタンを押してください。
確認が表示されるので[Commit]
します。コミットするってどういう意味だっけ?
Your changes will now written to disk. If you have chosen to overwrite existing data, it will be PERMANENTLY ERASED. Are you sure you want to commit your changes?
変更内容がディスクに書き込まれます。もし、既存のデータを上書きすることを選択した場合、そのデータは永久に消去されます。変更をコミットしてよろしいですか?
インストールファイルをどこからダウンロードするか選択します。あなたが日本にいるなら日本を選択しましょう。
Please select the best suitable site for you or “other” if you want to specify a different choice. The “Main Site” directs users to the nearest project managed mirror via GeoDNS (they carry the full range of possible distributions and support both IPvd and IPvG6). All other sites are known as “Community Mirrors”; not every site listed here carries more than the base distribution kits. Select a site!
最適なサイトを選択するか、別の選択肢を指定したい場合は「その他」を選択してください。 「メイン サイト」は、GeoDNS 経由でユーザーを最も近いプロジェクト管理のミラーに誘導します (可能なディストリビューションをすべて網羅し、IPvd と IPvG6 の両方をサポートします)。 他のすべてのサイトは「コミュニティ ミラー」として知られています。 ここにリストされているすべてのサイトが基本配布キット以上のものを提供しているわけではありません。 サイトを選択してください!
配布物のダウンロードが始まります。しばらく待ちましょう。
配布物がインストールされていきます。しばらく待ちましょう。
rootのパスワードを設定します。
Please select a password for the system management account (root):
システム管理アカウント(root)のパスワードを選択してください。
Typed characters will not be visible.
入力された文字は表示されません。
日付と時刻の設定です。日本時間にしたいので[No]
を選択します。
Is this machine’s CMOS clock set to UTC? If it is set to local time, or you don’t know, please choose NO here!
このマシンのCMOSクロックはUTCに設定されていますか?ローカルタイムに設定されている場合、またはわからない場合は、ここでNOを選択してください。
「Asia」を選択します。
「Japan」を選択します。
[Yes]
を選択します。
Does the abbreviation `JST’ look reasonable?
JSTという略称は合理的に見えますか?
日付の設定です。合っていれば[Skip]
します。
時刻の設定です。合っていれば[Skip]します。
起動時に開始するサービスの設定です。デフォルトでsshd
, dumpdev
が有効になっています。ntpd
, ntpd_sync_on_start
も有効にしたほうがよいでしょう。あとで rc.conf
で設定することもできます。
Choose the services you would like to be started at boot:
起動時に開始させたいサービスを選択します。
local_unbound | DNSのローカルunboundを有効にする。 |
---|---|
sshd | SSHによるリモートログインを有効にする。 |
moused | システムのコンソールでマウスを使用する。 |
ntpd | 自動時刻同期のためのNTPデーモンを有効にする。 |
ntpd_sync_on_start | 起動時に一度時刻を同期する。 |
powerd | 電源コントロールユーティリティを有効にする。 |
dumpdev | カーネルクラッシュダンプを有効にする。 |
セキュリティを強化するためのオプションです。必要に応じて適切に設定してください。FreeBSDのドキュメントは全部有効にしろと言っています。
Choose system security hardening options:
システムのセキュリティ強化オプションを選択します。
hide_uids | 他のユーザが実行しているプロセスを隠します。 |
---|---|
hide_gids | 他のグループが実行しているプロセスを隠します。 |
hide_jail | jailで実行中のプロセスを隠します。 |
read_msgbuf | 権限のないユーザがカーネルメッセージバッファを読めないようにします。 |
proc_debug | 権限のないユーザ対するプロセスデバッキング機能を無効にします。 |
random_pid | プロセスのPIDをランダム化します。 |
clear_tmp | システムの起動時に/tmp を空にします。 |
disable_syslogd | syslogd ネットワークソケットを閉じます。 |
secure_console | シングルユーザモードに入る際にrootパスワードが必要となります。 |
disable_ddtrace | DTraceの破壊的モードを無効にする。 |
システムにユーザを追加したい場合は<Yes>
を選択してユーザを追加します。
Would you like to add users to the installed system now?
今すぐインストールしたシステムにユーザーを追加したいですか?
設定し直したい項目があれば選択して<OK>
します。設定を終える場合は「Exit」を選択して<OK>
します。
Setup of your FreeBSD system is nearly complete. You can now modify your configuration choices. After this screen, you will have an opportunity to make more complex changes using a shell.
FreeBSD システムのセットアップはほぼ完了しました。これで設定の選択を変更することができます。この画面の後、シェルを使ってより複雑な変更をする機会があります。
シェルを開くか訊かれるので、<No>
を選択します。
The installation is now finished. Before exiting the installer, would you like to open a shell in the new system to make any final manual modifications?
これでインストールは終了です。インストーラを終了する前に、新しいシステムでシェルを開き、手動で最終的な修正を行いますか?
[Reboot]
を選択して再起動します。
Installation of FreeBSD complete! Would you like to reboot into the installed system now?
FreeBSDのインストールが完了しました!インストールされているシステムを今すぐ再起動しますか?
rootでログインできればインストール成功です。おつかれーしょん。
SSHで接続する
MacのターミナルからSSH接続できるようにしましょう。
デフォルトではrootでSSH接続ができないので、sshdの設定を変更します。
# vi /etc/ssh/sshd_config
PermitRootLogin yes
# service sshd reload
仮想マシンに割り当てられたIPアドレスを確認します。
# ifconfig
vtnet0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4c07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,TXCSUM_IPV6>
ether 00:1c:42:05:7c:4f
inet 10.211.**.** netmask 0xffffff00 broadcast 10.211.55.255
inet6 fe80::****:****:****:****%vtnet0 prefixlen 64 scopeid 0x1
inet6 fdb2:****:****:****:****:****:****:**** prefixlen 64 autoconf pltime 604800 vltime 2592000
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vtnet0:
下の inet 10.211.**.**
がこの仮想マシンに割り当てられたIPアドレスです。このIPアドレスを使ってSSH接続をします。
% ssh root@10.211.**.**
でわでわ
コメント