GNU/Linux >> Linux の 問題 >  >> Linux

UEFI とレガシー BIOS 用のハイブリッド Linux USB スティックは可能ですか?

それは可能であり、非常に頻繁に 外付け USB スティックと内蔵ドライブの両方で行います。

パーティション テーブルの種類について:

  • 通常、BIOS は不要 任意のパーティション テーブル。 ブートストラップ コードのみに関心があります MBR の最初の 440 バイトの部分です。 (例外もありますが、一部の BIOS 実装は、通常のパーティション タイプのいずれかで MBR が見つからない場合、実際に壊れます。うまくいけば、それらはまれです。)

    GPT パーティション テーブルは物理的に MBR を置き換えます。MBR は常にセクター 1 から始まりますが、MBR はセクター 0 にあるため、ディスクに両方を含めることができます。実際、ほとんどの GPT ディスクは対応しています。 ディスク全体をカバーする単一のパーティションのみを含む「保護 MBR」を用意して、古い MBR のみのパーティショニング ツールが誤ってデータを破壊するのを防ぎます。

    たとえば、Syslinux ブート セクタを MBR にインストールすると、起動します。 (syslinux-install_update スクリプトがこれを行いますが、 gptmbr.bin を探すことができます 手動で行うには、syslinux パッケージに追加します。)

    MBR パーティションの「アクティブ」フラグと同様に、Syslinux は GPT パーティションの「レガシー BIOS ブート可能」フラグを探します (ビット 2 – UEFI 仕様 2.4 セクション 5.3.3 表 20)。前述のスクリプトは、 sgdisk がある場合、そのフラグも自動的に設定します (gptfdisk から) インストール済み。

    GRUB も使用できますが、少し面倒です。 GRUB 2 は、従来は使用されていなかったセクター 1 ~ 62 に自身の一部を「埋め込む」ことを望んでいるため、同じ場所に保存されている GPT を上書きします。 grub-install

  • 一方、UEFI 仕様は そう MBR パーティション タイプ (セクション 12.3.1) のサポートを必要とし、MBR パーティション タイプ 0xEF を割り当てます。 EFI システム パーティションにコピーします (セクション 5.2.2)。

    したがって、何らかの理由でディスクを GPT で動作させることができない場合でも、MBR に EFI システム パーティションを作成することができます。これは、正しいファイル システムとすべての必要なファイルがある限り使用されます (セクション 12.3.1.3)。

    <ブロック引用>

    リムーバブル メディア デバイスの場合、UEFI 準拠のシステム パーティションは 1 つだけ存在する必要があり、そのパーティションにはルート ディレクトリに UEFI 定義のディレクトリが含まれている必要があります。ディレクトリの名前は EFI になります .すべての OS ローダーとアプリケーションは、EFI の下のサブディレクトリに保存されます BOOT と呼ばれる . BOOT でサポートされているプロセッサ アーキテクチャごとに実行可能な EFI イメージが 1 つだけ存在する必要があります。 ディレクトリ。リムーバブル メディアを EFI で起動できるようにするには、セクション 3.4.1.1 で説明されている規則に従ってビルドする必要があります。

オペレーティング システムに関しては、Linux は一般に、今日は BIOS から起動され、明日は UEFI から起動されるかどうかについて、少しも気にしません。 3.17 UEFI サポートのバグを見つけようとしている間、ラップトップを UEFI モードから「BIOS 互換性」モードに再起動して、おそらく 100 回も戻す必要がありました...

「BIOS から UEFI への変換」の記事は、まったく別のことを扱っていることに注意してください。 UEFI 自体のインストール方法について説明します – 「DUET」と呼ばれる UEFI 実装 – BIOS のみのシステムから起動します。 BIOS からオペレーティング システムを直接起動することとは関係ありません。


はい、可能です。

基本的な考え方は、USB スティックを次のように GPT パーティション化することです:

<オール>
  • BIOS ブート パーティション (GPT タイプ 1686148-6449-6E6F-744E-656564454649 ) - 1 MiB、ファイルシステムなし
  • EFI システム パーティション (GPT タイプ C12A7328-F81F-11D2-BA4B-00A0C93EC93B ) - 200 MiB、VFAT ファイルシステム
  • Linux ブート パーティション (GPT タイプ 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - 1 GiB、ext4 ファイルシステム
  • Linux ルート/ホーム ファイル システム (GPT タイプ 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - 残りのスペース、XFS または Btrfs ファイルシステム
  • このパーティショニングにより、レガシー システムでの起動が可能になります。これは、GPT には MBR 用のスペースがまだあり (下位互換性のため)、Grub2 には中間段階を BIOS ブート パーティションにインストールするのに十分なスペースがあるためです。レガシー BIOS はパーティショニング スキームを気にせず、Grub2/Linux カーネルはレガシー システムで GPT を理解する問題はありません。

    UEFI システムでは、UEFI ファームウェアは MBR を無視し、EFI システム パーティションをエントリ ポイントとして使用します。

    たとえば、Fedora では、基本的に次のことを行う必要があります:

    Linux Boot ファイルシステムが /boot の下にマウントされていることを確認してください EFI システム パーティションのファイルシステムが /boot/efi の下にマウントされていること .

    (再)レガシーおよび UEFI ブートローダーの両方をインストールします:

    grub2-pc grub2-efi-x64 shim-x64 efibootmgr
    

    レガシーおよび UEFI ブートの両方の grub 構成ファイルを (再) 生成します。

    # grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    # grub2-mkconfig -o /boot/grub2/grub.cfg
    

    システムがレガシー モードまたは UEFI モードで起動したかどうかに応じて、最初または 2 番目のファイルを修正し、(linux|initrd)16 を置き換える必要があります。 (linux|initrd)efi で またはその逆。

    GRUB を MBR にインストールします:

    # grub2-install --target=i386-pc /dev/sd_your_usb_stick_device
    

    出来上がり。


    Linux
    1. Linuxでディスクをパーティション分割する方法

    2. Linux – BIOSを備えた32ビットシステムにGptを使用してインストールしますか?

    3. Linux から起動可能な Windows 10 USB ドライブ (UEFI) を作成する

    1. Linux –プロセスの特定のパスを偽造することは可能ですか?

    2. USB が UEFI/BIOS で動作するのに Linux で動作しないのはなぜですか?

    3. Linux /boot パーティションの推奨サイズは?

    1. Linux – USBスティックの最初のパーティションの前にスペースをLuksキーとして使用しますか?

    2. Linux – Uefi / biosで動作するのにUsbがLinuxで動作しないのはなぜですか?

    3. Parted GPT を使用して Linux で 2TB サイズのパーティションを作成する方法