UEFIで外部ハードドライブにUbuntuをインストールすることはまだ可能ですか?


回答:


12

実際可能です。

続行する前に、これらの手順は空のEFIシステムパーティション(ESP)向けであり、おそらく既存のファイルを上書きするか、期待どおりに機能しません。少なくともバックアップを作成してください!

異なるプラットフォームに必要なパーティションを追加する

プラットフォーム:レガシーPC、UEFIベースのWindowsコンピューター、アップルコンピューター

MBRを使用して既存のインストールにESPを追加する

別のインストールまたはライブメディアからこれらの指示に従う必要があります。

  1. grub-efi-amd64-binパッケージをインストールします。これにより、必要なリソースのみがインストールされます。既存のMBRスタイルのインストールをUEFIに切り替えて、上下を逆にすることはありません。

  2. であなたのUbuntuのパーティションを縮小GPartedの ESPのためのスペースを作るために。ESPの推奨サイズの範囲は100 MBから500 MBですが、ここでこれらの指示に従って作成されたファイルは、2メガバイトから5メガバイトを超える必要はありません。

    注:ESPがディスク上のどこに配置されているかは関係ありません。Ubuntuパーティションを最後から数メガバイト縮小すると、すばやく安全になります。最初の収縮は安全ではありません。ただし、ESPはプライマリパーティションであり、拡張パーティションまたは論理ボリュームの一部ではないことに注意してください。1から4までのパーティション番号は問題ありません。上記の番号は、MBRパーティションテーブルの拡張パーティションを示します。

    ファイルシステムとしてFAT32を選択し、ブートフラグを設定します。

  3. 作成したESPと縮小したルートファイルシステムをマウントします。

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    注:交換する$esp_device$root_deviceして適切なデバイス、たとえば/dev/sdb2/dev/sdb1マウントポイント /mnt/espとは、/mnt/rootfsこの答えの残りの部分との仕事に選ばれただけの例です。

    GRUBのEFIイメージと最小構成ファイルを次のようにインストールします。

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    パーティションではなく、$deviceデバイス全体であることに注意してください/dev/sdb

  4. これで完了です。もう少し説明します。

    パラメーター--target x86_64-efiは、UEFIイメージとモジュールが指定されたパスにインストールされることを保証します。ディストリビューション固有のパスではなく、リムーバブルメディアの--removableハードコードされたパスにUEFIイメージをインストールし\EFI\BOOT\BOOT{arch}.EFIます。あなたのgrub.cfg中には、/boot/grub/起動方法や名前の新しいフォルダの両方で動作するはずですx86_64-efi、今隣に存在している必要がありますi386-pc

    完全を期すために、これはプラットフォームのNVRAMエントリに書き込みおよび依存するリムーバブルメディア以外のコマンドです。

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    適切なUEFIインストールには、以下ののような行が含まれて/etc/fstabいますが、セットアップは機能せず、UEFIイメージ(MBRブートローダーと同様)は通常、OSのインストール時にのみ書き込み/更新されます。

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

GPTを使用したインストールへのESPまたはGRUB-BBPの追加

GPTパーティションドライブのレガシーインストールにESPを追加することは、上記と非常に似ています。

  1. grub-efi-amd64-binパッケージをインストールします。
  2. ルートパーティションのサイズを変更してbootフラグを設定し、上記の手順と同様のFAT32ファイルシステムでパーティションを作成します。
  3. パーティションをマウントしgrub-install--removableパラメーターを含む上記のコマンドを実行します。

これは、既存のUEFIインストールを別のコンピューターで起動する場合にも機能します。

GRUB用のBIOSブート可能パーティション(BBP)の作成は少し異なります。

  1. grub-pc-binパッケージをインストールします。

  2. ルートパーティションのサイズを変更して上記の手順と同様のパーティションを作成し、bios_grubフラグを設定します。ファイルシステムを選択せず、フォーマットしないでください。

  3. /etc/default/grub管理者権限で構成ファイルを編集GRUB_DEVICE=/dev/sdb6し、最後に追加します。を/dev/sdb6BBPの実際のデバイス名に置き換えます。コマンドラインエディタnanoを使用して、物事をシンプルに保つことができます。

    以下を使用して、GRUB MBRイメージをBBPにインストールします。

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    この行を削除またはコメント化し/etc/default/grubて、実際のインストールに追加することができます。

おまけ:GPTを使用するインストールでMac用のパーティションを追加する

私がテストした非常に新しいMac(Mac Mini A1347 EMC 2840)は、MBRからでも、標準のFAT32 ESPから起動できることがわかりました。とにかく、ここに行きます:

  1. インストールしgrub-efi-amd64-binhfsprogsmactel-bootおよびmactel-boot-logo(オプション)パッケージ。ユニバースリポジトリを有効にし(コマンドラインから「ユニバース」リポジトリを有効にするにはどうすればよいですか?)、現在のMactelサポートPPA(詳細についてはMactelサポートコミュニティチームを参照)を追加して、それらすべてをインストールする必要があります。

  2. ルートパーティションのサイズを変更して、上記の手順と同様のHFS +ファイルシステムでパーティションを作成します。今回はさらに数メガバイトのスペースが必要なので、以前は5メガバイト以下しかなかった場合は、ESPのサイズを2倍にします。フラグは必要ありません。

  3. パーティションをマウントします。

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    注:競合を回避するために選択$esp-mac_device/mnt/esp-macました。

    パラメータgrub-installを含むコマンドを実行し--removableます。

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    最後に、Macが期待するとおりにパーティションをセットアップします。

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Macで外部メディアからUbuntuを起動するには、オプションキーを押す Alt、Windowsキーボードで正しいディスクを選択するだけです。

    ボリュームとUbuntuロゴを表示するMacスタートアップマネージャー

パーティションフラグ、タイプコード、GUIDについて

できるだけ正確にするために、ブートフラグはGRUBにとって重要ではありません。デフォルトでは、GRUBはUUIDを検索して、ブート元の適切なファイルシステムを見つけます。GPartedでブートフラグまたはbios_grubフラグを設定すると、通常、パーティションのタイプ(MBR)またはGUID(GPT)が設定されます。

正しいタイプまたはGUIDを設定することの利点は、適切に機能する設定があることに加えて、これらのパーティションがファイルマネージャーで非表示になることです。タイプとGUIDをチェックして変更する最も簡単な方法は、ディスクgnome-disks)を使用することです。

gnome-disksのドライブとパーティションを示すスクリーンショット

gnome-disksのパーティション編集ダイアログを示すスクリーンショット

または、partedまたはgdiskを使用することもできます。

  • 0xefは、fdiskで使用するMBRのESPのタイプコードです。
  • ef00は、gdiskで使用するためのGPTのESPの省略型コードです。
  • ef02は、gdiskで使用するGPTのBBPの省略型コードです。

ウィキペディアには、GPTGUIDの大きなリストがあります。

コマンドラインでの等価物partedに従ってマニュアルがあるparted $device set partition esp onparted $device set partition bios_grub on


詳細は文書化していません。しかし、フラッシュドライブをgptにパーティション化し、efiパーティションを作成して、efiブートファイルをefiパーティションにコピーするだけでした。grub-mkimageはファイルの特定のパスを想定するgrubx64.efiを作成するため、ファイル構造をインストールから/ boot / grubにコピーし、configファイルエントリを含むgrub.cfgを/ iso内の別のgrub.cfgに追加しましたISOをループマウントブートするフォルダー。おそらく、makeイメージを使用して独自のgrubx64.efiを作成する方が正しいですが、コピーは機能しました。
oldfred 2014

私は「MBRを使用して既存のインストールにESPを追加する」部分を実行する方法を見つけるために高低を検索しました。緊張しましたが、1回でうまくいきました!正解です。
Mark E. Haase

回答のMBR部分を含む既存のインストールにESPを追加するを使用して、USB上のUbuntuのフルBIOS / MRRインストールにEFIブート機能を追加しようとしています。「エラー:ファイル/boot/が見つかりません」と表示されます。grub.cfg右のUUIDにESPパーティションポイントインチ 何か案は?新しい質問を投稿させていただきます。
user68186 2017

@ user68186できましたか?
BRabbit27

Macから外付けドライブにUbuntuをインストールできました。Macに接続すると、Ubuntuで正しく起動します。ただし、起動デバイスでWindows10マシン(xps 15 9560)に接続すると、外付けハードドライブは表示されません。私の直感は、UEFIによるものです。誰かが私の直感が正しいかどうか、またこのスレッドがWindowsマシンから起動するために必要なものかどうかを確認できますか?
BRabbit27 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.