web-dev-qa-db-ja.com

ハイブリッドライブUSBの作成方法

在庫のUEFIとWindows8.1を実行しているラップトップがあります。古いBIOSシステムまたは新しいUEFIシステムのいずれかを起動するために使用できる起動可能なライブLinuxUSBスティックを作成したいと思います。必要に応じて、USBスティックの異なるパーティションにライブディストリビューションの2つの別々のコピーを置いても問題ありません。これを達成するためのステップは何ですか?

私はこれが可能であることを示しているように見える他の投稿を読みましたが、それらのどれもそれを行う方法を明確に示していません:

SBドライブにハイブリッドMBR/GPTパーティションを作成する方法は?

ハイブリッドLinux USB-UEFIおよびレガシーBIOSに対応できますか?

3
taz

あなたがそれを行う方法の明確なイラストを要求するので、ここにあります。ライブLinuxが起動していると思います。

  1. USBサムドライブをパーティション分割する

    コマンドラインツールgdiskをお勧めします。非常にクリーンな結果が得られます。または、gpartedを使用することもできます。

    1. 新しいパーティションテーブルを作成します。保護MBRでGPTを使用します。

    2. これらのパーティションを定義します。

      • (オプション)データパーティション
      • Linuxパーティション
      • レガシーBIOSブートパーティション(1MBで十分)
      • EFIシステムパーティション(少なくとも32MB)
    3. 例:64GBのサムドライブでは、結果は次のようになります。

      Number  Start (sector)    End (sector)  Size       Code  Name
         1            2048       107632639   51.3 GiB    0700  DATA
         2       107632640       124411903   8.0 GiB     8300  Linux filesystem
         3       124411904       124413951   1024.0 KiB  EF02  BIOS boot partition
         4       124413952       124822453   199.5 MiB   EF00  EFI System
      
  2. 任意の方法を使用して、LinuxをUSBサムドライブにインストールします。

    プロセス中に、選択したファイルシステム、できればext4でLinuxパーティションをフォーマットします。このパーティションをroot/として使用します。
    EFIシステムパーティションをFAT16でフォーマットします。
    BIOSブートパーティションはフォーマットされていないままです。

  3. インストールGRUB 2回

    最後のステップで、UEFIスタイルの起動とレガシーBIOSの起動の両方の起動方法にGRUBをインストールします。

    grub-install --target=x86_64-efi --removable /dev/sdx
    
    grub-install --target=i386-pc /dev/sdx
    

    /dev/sdxは明らかにUSBサムドライブです。
    その--removableは重要です。取り外し可能なUSBサムドライブに必要だと気付くのに3時間かかりました...

    GRUBを「外部」からサムドライブにインストールする場合(USBサムドライブからLinuxを起動していない場合)、最初にLinuxパーティションをマウントする必要があります。おそらく/mntにマウントします。次に、EFIシステムパーティションをLinuxパーティションの/mnt/boot/efiディレクトリにマウントします。--root=/mntのパラメータとしてgrub-installを使用します。その後、grub-installが必要なすべてのディレクトリを検索します。

完了。

さらに読むために:
MBRで実際にパーティションを定義していません。したがって、レガシーBIOSマシンでパーティションが機能する理由を尋ねられるかもしれません。GRUB MBR。レガシーBIOSブートプロセス中に、MBRに格納されているブートローダーが実行されます。これによりGRUBのステージ1がロードされ、次にレガシーBIOSブートパーティションからステージ2がロードされます。ただし、現時点ではGRUBは、実際にはパーティションMBRなどについて何も知りません。このため、BIOSブートパーティションの位置に関する情報はGRUBステージ1に埋め込まれています。したがって、 BIOSブートパーティションを移動したら、GRUBを再インストールする必要があります。GRUBステージ2がロードされた後、GRUBはGPTを理解し、Linuxカーネルのブートを続行できます。

4
Hermann