この記事では、Mac Pro (Late 2013モデル)Surface Pro 3 からでも起動できちゃう、超便利な外付けLinuxの作り方をご紹介します!🚀

📦 準備するものリスト

まずは、外付けLinuxを作るために必要なものを用意しましょう!

  • SSD または USBメモリー 💾
    • 🚀 スピード重視! USB 3.1 以上に対応していると、サクサク動いて快適です。転送速度はとっても大事!💨
    • 📂 容量は大きめがおすすめ! 500GB以上あると、いろいろなファイルを置いたり、アプリケーションを入れたりするのに余裕ができて使いやすいですよ。👍

🍏 Mac Pro (Apple MacPro6,1) の設定ポイント

Mac Proで使う場合の特別な設定を見ていきましょう。

  • 📡 無線LANドライバー (wlドライバー)
  • 🖥️ GPU設定 (amdgpuを使う!)
    • 標準のradeonドライバーではなく、amdgpu を使いましょう!こちらの方が新しいGPUに対応していて、パフォーマンスも良いことが多いです。✨
    • 🐧 カーネル設定 [amdgpu]
      • Enable amdgpu support for SI parts (SI世代のサポートを有効に)
      • Enable amdgpu support for CIK parts (CIK世代のサポートを有効に)
    • ⚙️ カーネルパラメータ
    • 🔉 オーディオ安定化?
      • 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])がリストアップされるはずです。

💻🟦 Surface Pro 3 の設定ポイント

Surface Pro 3で使う場合の特別な設定です。

  • 🐧🩹 カーネルにパッチを当てる
  • 📡📦 無線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.confberry.conf でカーネルの場所や起動オプション(前述のカーネルパラメータなど)を指定することで、外付けSSD/USBからLinuxを起動できるようになります。✨


📚 その他の参考情報

作業を進める上で役立つかもしれないリンクです。

これで、Mac ProとSurface Pro 3の両方で起動可能な外付けLinuxを作成するための主な手順と設定ポイントが網羅されました。🛠️🐧💻

頑張って、自分だけのカスタムLinux環境を構築してみてくださいね!応援しています!🎉😊👍