この記事では、Mac Pro (Late 2013モデル) や Surface Pro 3 からでも起動できちゃう、超便利な外付けLinuxの作り方をご紹介します!🚀
📦 準備するものリスト
まずは、外付けLinuxを作るために必要なものを用意しましょう!
- SSD または USBメモリー 💾
- 🚀 スピード重視! USB 3.1 以上に対応していると、サクサク動いて快適です。転送速度はとっても大事!💨
- 📂 容量は大きめがおすすめ! 500GB以上あると、いろいろなファイルを置いたり、アプリケーションを入れたりするのに余裕ができて使いやすいですよ。👍
🍏 Mac Pro (Apple MacPro6,1) の設定ポイント
Mac Proで使う場合の特別な設定を見ていきましょう。
- 📡 無線LANドライバー (wlドライバー)
- Mac Proの無線LANを使うには、このドライバーが必要です。Broadcomのサイトからダウンロードできます。
- 🔗 Broadcomサポート: http://www.broadcom.com/support/802.11
- 🔗 openSUSE Build Service: https://pmbs.links2linux.de/package/show/Essentials/broadcom-wl
- 🔗 https://archlinux.org/packages/extra/x86_64/broadcom-wl/
- 🔗 https://archlinux.org/packages/extra/x86_64/broadcom-wl-dkms/
- 🖥️ GPU設定 (amdgpuを使う!)
- 標準のradeonドライバーではなく、amdgpu を使いましょう!こちらの方が新しいGPUに対応していて、パフォーマンスも良いことが多いです。✨
- 🐧 カーネル設定 [amdgpu]
Enable amdgpu support for SI parts
(SI世代のサポートを有効に)Enable amdgpu support for CIK parts
(CIK世代のサポートを有効に)
- ⚙️ カーネルパラメータ
- 以下のパラメータをカーネルの起動オプションに追加します。
amdgpu.dc=1 radeon.si_support=0 amdgpu.si_support=1
- 古い情報や別の設定例も参考にしつつ、環境に合わせて調整してみてください。
(古い設定例: radeon.dpm=1 radeon.hard_reset=1 modprobe.blacklist=radeon radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1)
- 🔗 Fedora Project Discussion: https://discussion.fedoraproject.org/t/guide-installing-fedora-40-on-mac-pro-2013-and-enabling-amdgpu-for-video-hardware-acceleration/123704
- 🔗 Proton GitHub Issue: https://github.com/ValveSoftware/Proton/issues/6284
- 🔉 オーディオ安定化?
amdgpu.audio=0
を追加すると安定するという情報もあります。試してみる価値あり!
- ⚠️ Wifiが不安定?
- もしWifiの調子が悪いときは、上のカーネルパラメータが関係しているかもしれません。設定を見直してみてください。🤔
- AMD GPU-PRO
- http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Driver-for-Linux-Release-Notes.aspx
- Chrome 設定
- Chromeでamdgpuを使うための設定です。
- 🌐 Chromeを開いて
chrome://flags
とアドレスバーに入力。 - 🔍
ソフトウェア レンダリング リストをオーバーライド / Override software rendering list
を探して 有効 にします。これにより、GPUを使えるようになります。(カーソルが消えることあり、、)👍 - 📦 必要なパッケージのインストール
sudo dnf install xorg-x11-drv-amdgpu mesa-vulkan-drivers vulkan-loader vulkan-tools
- ✨ Vulkanテスト
vkcube
コマンドを実行して、Vulkanが正しく動作するか確認できます。もし動けばGPUアクセラレーションOK!🎉
- 🎮 WebGPU
chrome://flags
でWebGPU関連の設定も確認できます。- WebGPU Developer Features, Unsafe WebGPU Support を 有効 にします。
- https://ics.media/entry/230426/
- 🛠️ 現在のVGAデバイス確認
$ lspci | grep -i VGA
- これでGPUデバイス(例:
Tahiti LE [Radeon HD 7870 XT]
)がリストアップされるはずです。
- これでGPUデバイス(例:
💻🟦 Surface Pro 3 の設定ポイント
Surface Pro 3で使う場合の特別な設定です。
- 🐧🩹 カーネルにパッチを当てる
- Surface Pro 3でLinuxをしっかり動かすには、カーネルに特定のパッチを適用する必要があります。
- 🔗 詳細はこちらを参照してください: https://github.com/linux-surface/linux-surface
- 📡📦 無線LANファームウェア
- Surface Pro 3の無線LANを使うためには、専用のファームウェアが必要です。
- ソースコードからダウンロードします:
git://git.marvell.com/mwifiex-firmware.git
- ドライバーは
mwifiex_usb
、必要なファームウェアファイルはmrvl/usb8797_uapsta.bin
です。
💾🔪 SSDのパーティションを区切ろう!
外付けSSD/USBメモリをLinux用に分割します。ここでは /dev/sdz
というデバイス名で説明します。(実際のデバイス名は環境によって異なりますので注意!)
gdisk
というツールを使います。
$ gdisk /dev/sdz
SSDのパーティションを区切る(/dev/sdzの場合)
$ gdisk /dev/sdz
x
l
1
m
n
1
34
2047
ef02
x
l
m
n
2
2048
+100MB
ef00
w
y
$ gdisk /dev/sdz
n
3
+410G
0700
n
4
+10G
8300
n
5
8300
x
c
4
00000000-1994-0205-2002-424552525900
c
5
00000000-2014-1002-2002-424552525900
w
y
EFIの設定
/efi
/efi/boot
/efi/boot/bootx64.efi
/efi/boot/linuxx64.efi.stub
/efi/boot/vmlinuz
/efi/boot/vmlinuz-4.13.10-berry
/loader
/loader/splash.bmp
/loader/loader.conf
/loader/entries
/loader/entries/berry-en.conf
/loader/entries/berry.conf
パーティション設定手順 (GPT形式)
まずは詳細設定モードに入ります。
x # エキスパートコマンド
そして、GPTの初期化を行います。
l # GPTテーブルをリロードし、新しいテーブルを開始
1 # 1番目のパーティションテーブル
元のパーティションテーブルを削除します。(必要に応じて)
m # メインメニューに戻る
パーティション 1: BIOSブートパーティション (ef02)
- 古いBIOSシステムでも起動できるようにするための領域です。(必須ではない場合もありますが、互換性のため)
n # 新しいパーティションを作成 1 # パーティション番号 1 34 # 開始セクター (デフォルトでOK) 2047 # 終了セクター (ここではセクター番号を指定) ef02 # パーティションタイプコード (BIOS boot partition)
エキスパートコマンドに戻り、詳細を確認します。
x # エキスパートコマンド
l # パーティションテーブルをリスト表示 (確認用)
メインメニューに戻ります。
m # メインメニューに戻る
パーティション 2: EFIシステムパーティション (ef00)
- UEFIブートに必要な領域です。ブートローダーなどが置かれます。
n # 新しいパーティションを作成 2 # パーティション番号 2 2048 # 開始セクター +100MB # サイズ (100MB確保) ef00 # パーティションタイプコード (EFI system partition)
パーティション 3: データ領域 (exFAT) (0700)
- MacとWindows両方で読み書きできるデータ共有領域として使えます。(exFAT形式)
n # 新しいパーティションを作成 3 # パーティション番号 3 # 開始セクターはデフォルト (前のパーティションの次) +410G # サイズ (例: 410GB確保) 0700 # パーティションタイプコード (Microsoft basic data - 通常はNTFS/exFAT)
パーティション 4: Linuxシステム領域 (ext4) (8300)
- LinuxのOS本体などがインストールされる領域です。
/
(ルート) としてマウントされます。n # 新しいパーティションを作成 4 # パーティション番号 4 # 開始セクターはデフォルト +10G # サイズ (例: 10GB確保) 8300 # パーティションタイプコード (Linux filesystem)
パーティション 5: Linuxホーム領域 (ext4) (8300)
- ユーザーのファイルや設定などが置かれる領域です。
/home
としてマウントされます。n # 新しいパーティションを作成 5 # パーティション番号 5 # 開始セクターはデフォルト # 終了セクターは最後まで (Enterキーを押す) 8300 # パーティションタイプコード (Linux filesystem)
パーティション名 (UUID) の設定
後から識別しやすいように、パーティションに名前(UUID)を設定します。
x # エキスパートコマンド
c # パーティションの名前を変更
4 # パーティション番号 4 (Linuxシステム領域)
00000000-1994-0205-2002-424552525900 # 設定したいUUID (例: BerryOS)
c # パーティションの名前を変更
5 # パーティション番号 5 (Linuxホーム領域)
00000000-2014-1002-2002-424552525900 # 設定したいUUID (例: BerryOS_Home)
設定の書き込みと終了
すべての設定が終わったら、パーティションテーブルをディスクに書き込みます。
w # パーティションテーブルを書き込み、終了
y # 確認に対して 'y' で続行
これでパーティション分割は完了です!🎉
ファイルシステムの作成
分割したパーティションにファイルシステムを作成します。
# EFIシステムパーティション (FAT32)
# -n EFI でボリュームラベルを設定
# mkfs.vfat (または mkfs.fat) を使用
# sudo mkfs.vfat -F 32 /dev/sdz2 -n EFI # FAT32にする場合は-F 32オプション
sudo mkfs.vfat /dev/sdz2 -n EFI
# データ領域 (exFAT)
# -n Samsung_T5 でボリュームラベルを設定
sudo mkfs.exfat /dev/sdz3 -n Samsung_T5
# Linuxシステム領域 (ext4)
# -L BerryOS でボリュームラベルを設定
# -U <UUID> でUUIDを設定 (gdiskで設定したUUIDと一致させるか、新たに生成)
# -m 1 で予約ブロック率を1%に設定 (デフォルトは5%)
sudo mkfs.ext4 /dev/sdz4 -L BerryOS -U 00000000-1994-0205-2002-424552525900 -m 1
# Linuxホーム領域 (ext4)
# -L BerryOS_Home でボリュームラベルを設定
# -U <UUID> でUUIDを設定
sudo mkfs.ext4 /dev/sdz5 -L BerryOS_Home -U 00000000-2014-1002-2002-424552525900
(注意: UUIDは例です。実際には uuidgen
コマンドなどで生成した固有の値を使うのが一般的です。gdiskで設定したUUIDを正確に使う場合は、上記コマンドの -U
オプションにその値を指定してください。)
🚀 EFIの設定ファイル構造
UEFIで起動するために必要なファイル構造です。EFIパーティション (/dev/sdz2
) にこれらのファイルを配置します。
/efi 📁 (EFIパーティションのルート)
└── boot 📁 (ブート関連ファイル)
├── bootx64.efi 📄 (UEFIの標準ブートローダー名 - 64bitシステムの場合)
├── linuxx64.efi.stub 📄 (LinuxカーネルをUEFIで起動するためのスタブローダー)
├── vmlinuz 📄 (Linuxカーネル本体 - シンボリックリンクの場合も)
└── vmlinuz-4.13.10-berry 📄 (バージョン付きのLinuxカーネル本体)
/loader 📁 (ブートローダーの設定関連)
├── splash.bmp 🖼️ (起動時のスプラッシュ画像 - オプション)
├── loader.conf 📄 (ブートローダーの全体設定)
└── entries 📁 (個別のOSエントリー設定)
├── berry-en.conf 📄 (BerryOS 英語設定のエントリー)
└── berry.conf 📄 (BerryOS 標準設定のエントリー)
これらのファイルやディレクトリをEFIパーティションに正しく配置し、loader.conf
や berry.conf
でカーネルの場所や起動オプション(前述のカーネルパラメータなど)を指定することで、外付けSSD/USBからLinuxを起動できるようになります。✨
📚 その他の参考情報
作業を進める上で役立つかもしれないリンクです。
- 🔊 ALSA (Linuxオーディオ): https://yui0.github.io/ALSA/
- 🌐 ネットワークインターフェース名設定 (ifrename): https://yui0.github.io/ifrename/
- 💡 参考ブログ記事 (hatenablog): http://takuya-1st.hatenablog.jp/entry/2016/12/03/011022
- ℹ️ SurfaceをUSBデバイスから起動する方法 (Microsoft公式): https://support.microsoft.com/ja-jp/help/4023511/surface-boot-surface-from-a-usb-device
- 📝 Qiita記事 (Linuxインストール参考): https://qiita.com/kiida/items/67bda4881fef5444fbe5
- 📖 個人メモ (Linux関連): https://u7fa9.org/memo/HEAD/archives/2013-06/2013-06-16.rst
これで、Mac ProとSurface Pro 3の両方で起動可能な外付けLinuxを作成するための主な手順と設定ポイントが網羅されました。🛠️🐧💻
頑張って、自分だけのカスタムLinux環境を構築してみてくださいね!応援しています!🎉😊👍