Apple Silicon プロセッサを搭載した Mac では、通常の方法で Linux をインストールすることはできません。フラッシュ ドライブからの起動は不可能であり、ブートローダーは Apple によって署名されています。 ASAHI Linux プロジェクトはこれを回避することに取り組みました。参加者はリバース エンジニアリングを使用して、M1 および M2 ハードウェアを通常の Linux で動作できるようにしました。現在、このプロジェクトの主力ディストリビューションは Fedora Asahi Remix であり、M2 上で非常に確実に動作します。この記事では、インストールをステップごとに説明します。

Asahi Linux とは
このプロジェクトは 2020 年に始まり、Apple が独自のチップに切り替え、それに伴いクローズド ブート スキームが導入されました。つまり、デバイスは Apple が署名したコードのみを実行します。 ASAHI Linux の参加者は、m1n1 ブートローダーを作成し、その上に U-Boot と UEFI 環境を作成しました。次に、最も一般的な ARM64 システムがロードされますが、linux-asahi カーネルがロードされ、非標準の Apple ハードウェア (GPU、ビデオ、サウンド、カメラ ユニット) 用のドライバーが追加されます。
実際には、次のようになります。macOS からインストーラーを実行すると、ディスクがパーティション分割され、ブート チェーンとシステムがインストールされます。 macOS はそのまま残り、デュアル ブートが可能になり、電源を入れるときにシステムを選択できます。
要件
- M2 チップを搭載した Mac – MacBook Air、MacBook Pro 13 インチ、M2 Pro および M2 Max を搭載した 14 インチと 16 インチ。 M1 車もサポートされています。
- 現在の macOS。 インストーラーにはシステムの最新バージョンが必要なので、開始する前に更新してください。
- 空き容量。 最小約 30 GB、快適であれば 100 GB 以上。このスペースは APFS コンテナから切り離され、自然に戻ることはありません。
- macOS 管理者パスワード。 パーティション分割時と初めてリカバリ モードで起動する際の両方で必要になります。
- バックアップ。 ディスクのパーティショニングは、新しいバックアップから始めるのが最適な操作です。
ステップ 1. バックアップとアップデート
Time Machine またはその他の方法でコピーを作成します。 macOS を利用可能な最新バージョンに更新し、再起動します。 FileVault が有効な場合、リカバリ モードでの起動段階でもそのパスワードが必要になります。インストーラーはドライブのロックを解除する必要があります。
ステップ 2. インストーラーを起動します
macOS でターミナルを開き、次のコマンドを 1 つ実行します。
curl https://alx.sh | sh
これはプロジェクトの公式インストーラーです。自動的にダウンロードされ、Mac のモデルが確認され、ディストリビューションの選択が求められます。 Fedora 用に直接オプションもあります。
curl https://fedora-asahi-remix.org/install | sh
最初のオプションが推奨されます。これは、現在利用可能なシステムを示し、デスクトップの選択肢も提供します。
ステップ 3. ディスクのパーティション
インストーラーは管理者パスワードを要求し、現在のレイアウトを表示します。するとダイアログは次のようになります。
- r を押して macOS パーティションのサイズを変更します。
- 新しい Linux パーティションのサイズを入力します。ギガバイト単位で指定することも、ディスクのパーセンテージで指定することも、分 と記述することもできます。その場合、可能な限り最小の部分が切り取られます。
- 文字 y でマークを確認します。このステップは最も時間がかかります。システムはデータを APFS コンテナに物理的に移動します。大きなディスクでは、これには数分かかります。
- f を押して、インストーラーが新しく作成された空きパーティションを指すようにします。
何が起こっているのかを理解することが重要です。Linux は APFS 内ではなく、その隣の別のパーティションにインストールされています。これが、macOS が変更されずに残され、ロールバックがこのセクションの削除に短縮される理由です。
ステップ 4. ディストリビューションとデスクトップの選択
次に、インストーラーはシステムとデスクトップ環境を提供します。 Fedora Asahi Remix にはデフォルトで KDE Plasma が付属しています。これは最初にアップデートを受け取る主力オプションです。代替手段として GNOME があります。これは macOS に近い操作性を持っています。グラフィカル環境が必要ない場合には、最小限の画像もあります。
ステップ 5. 最初にリカバリ モードで起動します
パーティション分割後、インストーラーにより続行を求めるメッセージが表示され、Mac がシャットダウンされます。最も珍しい部分は次のとおりです。
- 少なくとも 25 秒待ちます。これは、リカバリ モードに入る Apple の要件です。
- 起動オプションが表示されるまで電源ボタンを押し続けます。
- インストール ボリュームを選択し、macOS パスワードを入力します。
このステップでは、ブート チェーンがサービス パーティション (m1n1、U-Boot、および UEFI 環境) にインストールされます。その後、マシンが再び再起動します。電源ボタンを再度押したままにして、新しいボリュームを選択し、今度はシステムにアクセスします。このような再起動は数回行われ、それぞれ手動で選択する必要があります。デフォルトでは、Mac は macOS をロードし続けます。
ステップ 6. システムのインストール
次に、システム名、ユーザー、パスワード、タイムゾーン、キーボードレイアウトの初期セットアップウィザードが開始されます。この後、インストール自体が開始され、すでにインターネットから来ています – 安定した接続が必要で、最終的には15分から30分かかります。
インストールが完了したら、再起動し、ブート メニューから Linux を選択します。初めてログインすると、セットアップとアップデートを完了するように求めるメッセージが表示されます。
何が機能し、何が機能しない
インストールする前に、何が失われるかを冷静に評価する必要があります。 M2 ラップトップでは、状況は次のとおりです。
作品:
- Wi-Fi と Bluetooth – 制限なし
- 統合された画面とグラフィックス – OpenGL や Vulkan などのハードウェア アクセラレーション
- MacBook Air および MacBook Pro のウェブカメラ、マイク、スピーカー
- スリープ モード – 正常に動作します。
- ハードウェア ビデオ デコード – プレーヤーはプロセッサをロードしません。
- USB ポート(Thunderbolt コネクタ経由の USB 2 および USB 3 を含む)
動作しない、または部分的に動作する:
- Touch ID。 指紋認証は Linux では使用できません – パスワードを使用してログインします。
- Thunderbolt (USB4)。 ステータス – 開発中。残念ながら、特に Thunderbolt を必要とするデバイスは動作しません。
- USB-C 経由の外部モニター。 DisplayPort Alt Mode も動作中です。 M2 ラップトップには HDMI ポートがないため、外部スクリーンを接続できません。 M2 Pro および M2 Max を搭載したモデルには HDMI があり、動作します。 USB-C の回避策は、以下の Fairydust コア セクションに記載されています。
- ハードウェア ビデオ エンコードは計画にあり、デコードはすでに実施されています。
簡単に言うと、コード、ターミナル、ブラウザ、ローカル モデルを操作する場合には優れたシステムですが、外部モニター ドックには適していません。
フェアリーダスト コア経由の外部モニター
USB-C イメージ出力は、Asahi Linux チームの実験的な Fairydust カーネル ブランチで利用できます。手動で組み立てると時間がかかるため、asahi-fairydust-display プロジェクトのラッパー スクリプトを使用する方が簡単です。
git clone https://github.com/bharambetejas/asahi-fairydust-display
cd asahi-fairydust-display
chmod +x asahi-fairydust-build.sh
./asahi-fairydust-build.sh
スクリプトは、fairydust ブランチのクローンを作成し、カーネルを構成してアセンブルし、それを標準のブランチの隣に配置して、GRUB を編集します。 15 GB の空き容量、USB-C → HDMI または DisplayPort アダプターが必要で、組み立てには 60 ~ 90 分かかります。再起動後、GRUB で -fairydust というラベルの付いたカーネルを選択し、アダプタを最前面の USB-C ポートに挿入します。
ダウンロード後に確認してください:
uname -r
glxinfo | grep "OpenGL renderer"
xrandr
最初のコマンドは接尾辞 -fairydust の付いたバージョンを表示し、2 番目のコマンドは llvmpipe ではなく Apple M2 を表示し、3 番目のコマンドは接続された DP-1 出力を表示する必要があります。
予約。このブランチは実験的なものであり、正式にはサポートされていません。出力は 1 つの USB-C ポート経由でのみ機能し、ホットプラグに常に耐えられるわけではありません。アダプターを既に挿入した状態で再起動する方が安全です。スクリプトは表示を自動的に構成しません。Wayland でログイン ループが発生したため、スクリプト内の対応するステップは無効になります。 dnf 経由でストック カーネルを更新すると、/boot/dtb シンボリック リンクが再配置されるため、出力が静かに動作を停止する可能性があり、その場合はビルドを繰り返す必要があります。
標準カーネルには触れません。戻るには、GRUB メニューで選択するだけです。
アップグレードの代わりに外付けドライブ
ここが良い面です。 MacBook はアップグレードできません。メモリとストレージはボードにはんだ付けされており、それらの容量は購入時に一度選択されます。 macOS では、外付けドライブは外付けのままです。システムやアプリケーションをそこに実際に転送することはできません。
Linux では、この制限がなくなりました。USB 経由の外付け SSD は通常のブロック デバイスであり、/etc/fstab 経由で任意のマウント ポイントを転送できます。ホーム ディレクトリ、Steam ライブラリ、仮想マシン イメージ、またはローカル モデルを転送したい場合は、そうしてください。まさにこの車にはないアップグレードが判明しました。
こんな感じです。まず、目的のパーティションの UUID を確認します。
lsblk -f
sudo blkid
次に、/etc/fstab に次の行を追加します。
UUID=ваш-uuid /home ext4 defaults,nofail 0 2
転送自体はコピーによって行われます。データは外部ドライブに移動され、その後、目的の場所にマウントされます。多くの場合、この方法では /home 全体が削除されるのではなく、個々の重いディレクトリが削除されます。この方法の方がリスクは少なくなります。
いくつかの注意点があります。 nofail パラメータはオプションで設定する価値があります。パラメータがないと、ディスクが接続されていないとシステムは起動しません。 USB ドライブの速度は内蔵 NVMe よりもまだ遅いため、頻繁な I/O 操作のために内部ディスクにスペースを残しておくことをお勧めします。また、ディレクトリがマウントされている状態で移動中にディスクを取り出す必要はありません。まずディスクをアンマウントしてください。
システムを切り替える方法
電源を入れたら、電源ボタンを押し続けます。ブート メニューが表示され、macOS と Linux が含まれています。 macOS のデフォルトのシステムは、「システム環境設定」→「一般」→「システムディスク」から選択できます。 Linux にも対応する設定があるため、ターミナルを使用せずに双方向に切り替えることができます。
リンク
https://asahilinux.org/fedora/
https://asahilinux.org/docs/
https://asahilinux.org/docs/platform/feature-support/m2/
https://fedoraproject.org/asahi-remix
https://github.com/bharambetejas/asahi-fairydust-display
https://github.com/AsahiLinux/linux/tree/fairydust
ソース
https://asahilinux.org/docs/platform/feature-support/m2/
https://discussion.fedoraproject.org/t/fedora-asahi-remix-installation-guide/
https://github.com/AsahiLinux/docs
https://github.com/bharambetejas/asahi-fairydust-display/blob/main/README.md
https://github.com/bharambetejas/asahi-fairydust-display/blob/main/asahi-fairydust-build.sh
Leave a Reply