この記事では、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環境を構築してみてくださいね!応援しています!🎉😊👍
