在庫のUEFIとWindows8.1を実行しているラップトップがあります。古いBIOSシステムまたは新しいUEFIシステムのいずれかを起動するために使用できる起動可能なライブLinuxUSBスティックを作成したいと思います。必要に応じて、USBスティックの異なるパーティションにライブディストリビューションの2つの別々のコピーを置いても問題ありません。これを達成するためのステップは何ですか?
私はこれが可能であることを示しているように見える他の投稿を読みましたが、それらのどれもそれを行う方法を明確に示していません:
あなたがそれを行う方法の明確なイラストを要求するので、ここにあります。ライブLinuxが起動していると思います。
USBサムドライブをパーティション分割する
コマンドラインツールgdisk
をお勧めします。非常にクリーンな結果が得られます。または、gparted
を使用することもできます。
新しいパーティションテーブルを作成します。保護MBRでGPTを使用します。
これらのパーティションを定義します。
例: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
任意の方法を使用して、LinuxをUSBサムドライブにインストールします。
プロセス中に、選択したファイルシステム、できればext4
でLinuxパーティションをフォーマットします。このパーティションをroot/
として使用します。
EFIシステムパーティションをFAT16でフォーマットします。
BIOSブートパーティションはフォーマットされていないままです。
インストール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カーネルのブートを続行できます。