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


15

私の考えは、古いBIOSラップトップと新しいUEFIシステムで起動できるLubuntuでUSB-Boot-Stickを作成することです。

Stickをレガシーブートデバイスとしてセットアップする場合、これは非常に簡単ですが、UEFI対応デバイスにしたいです。

  1. それは理にかなっていますか?!または、UEFIの概念を恐ろしく間違って理解しましたか?
  2. 必要に応じて、2つの異なるLinuxインストールを使用できます(1つはUEFI用、もう1つはレガシー用ですが、両方とも同じドライブにインストールします)
  3. 従来のBIOSでGPTデバイスを起動します-動作しますか?

はっきりとはわかりませんが、別個のレガシーLinuxブートスティックを用意する方が良いアイデアかもしれませんが、境界を探索したいです:)

では、レガシーBIOSで動作するハイブリッドlinux-uefi-boot-usb-stickのアイデアは可能ですか?


(3)grub http://www.rodsbooks.com/gdisk/booting.htmlを使用したLinuxで可能と思われる

さらに、スワップ、Fat32、2つのExt4パーティションの他に、そのスティックにEF00パーティションが用意されています。


(1)も可能だと思われるhttp://www.rodsbooks.com/bios2uefi/

ただし、この手順は2012年からのもので、しばらく経ちました-簡単な作業例はありますか?


このトピックの他の研究者向け:

非EFIマザーボード上のGPTディスクからのWindows 7の 起動GPTでBIOSを使用してWindows 7/8を起動する方法はありますか?

http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


更新:

rEFIndを使用してセキュアブートセットアップを含むUEFIパーツを作成できました。

与えられたアドバイスに従って、私は自分のドライブddにコピーgptmbr.binしていましたが、これはBIOSシステム上で少なくとも何かをするようです:「これは起動可能なディスクではありません」

しかし、私はアドバイスに従ってpmbrディスクのフラグとgpt legacy bootフラグを設定しました-それでもこのエラーを取得しますか?

ESPパーティションはディスク上の2番目のパーティションで、efiファイルでセットアップされています。

セットアップ:

  • 64GBのスペース
  • GPT Partitiontable
  • ディスクにpmbrフラグが設定されています
  • 1番目のパーティションは16MiBから始まり、約45GBで、データ用のfat32プライマリです
  • 2番目のパーティションは45GB前後で始まり、rEFIndセットアップが機能するEFIシステム(fat32)です。
  • 3番目-5番目のパーティションは、作業中のLubuntu 14.04.1のホーム(ext4)、スワップ、およびルート(ext4)です

使用ddしてgptmbr.bin、コンパイル済みの6.02 Syslinuxを最初の440バイトにコピーしました。

parted 3.2では、パーティション2にbootand legacy_bootフラグがあることがわかります。

起動中に私が取得んが、ブータブルディスクが見つからない -私はあることを第二パーティションの代わりに私の第五を設定した場合、legacy_boot私が手にOSがありません

生きてる!

(私の古い質問がhttps://askubuntu.com/q/516730/319747から削除されたため)


私の推測では、いくつか*.c32のファイルや他のファイルをEFI(どこ?!)またはルートパーティション(?!)のsyslinuxフォルダーにコピーする必要があります/boot/syslinux。どのファイルが不可欠ですか?

さらに、私syslinucx.cfgもそのファイルが必要になると思います-そうですか?


私の目標は、少なくともルートext4パーティションでlubuntuシステムを直接起動することです。

更新:

理由はわかりませんが、動作するようになりましたが、手動でインストールしたわけではありません。

  • pmbrフラグが悪かったとUEFIとスティックをブートからの私のUEFIシステムを禁止しました
  • legacy_bootフラグは、私の第五のパーティション(Linuxのルート)のために必要でした
  • 私は使わなければなりませんでした extlinux --install /path/to/root/parition
  • syslinux.cfgルートパーティションの起動時にsyslinuxフォルダにを作成する必要がありました

これをすべて2番目の小さなスティックで行い、syslinuxフォルダーのみをコピーしようとしましたが、運がありませんでした-これextlinux --installは必須のようです。

誰が正確に何をするのか知ってextlinux --installいますか?手動で行うことはできますか、それともシステムにインストールせずに6.02などの新しいバージョンをインストールする方法はありますか?

BIOS、UEFI、およびUEFI SecureBootで言及されているパーティションで作業している私のスティックを手に入れました。


あなたのリンクは壊れています。.あなたの物語はどこか他にありますか?私も同じことをしたいと思います。ありがとう。
pvinis

1
それが削除されたとして情報への感謝@pvinis、私は、ここにaskubuntuに起因する/質問をマージしました
Jook

回答:


10

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

パーティションテーブルタイプについて:

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

    GPTパーティションテーブルは、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を上書きします。したがって、2〜4 MBの専用パーティションを作成し、BIOSブート可能としてマークする必要がある場合があります。そうすると、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と呼ばれますBOOTBOOTディレクトリ内のサポートされているプロセッサアーキテクチャごとに実行可能なEFIイメージが1つだけ存在する必要があります。リムーバブルメディアをEFIで起動可能にするには、セクション3.4.1.1で規定されているルールに従ってビルドする必要があります。

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


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


+1-syslinux_install確認します。確認、安心、新しい入力をありがとう
Jook 14

私はあなたのアドバイスに従いましたが、セットアップにこだわっています。mbr大丈夫のようですが、EFI Systemパーティションが見つかりません。ディスクの45GB前後から始まるディスク上の2番目のパーティションであることは問題ですか?EFIのセットアップが既に行われているのに加えて、EFIに特別なセクションを設定する必要がありますか?
ジョーク14

うまくいった:)だから、ありがとう!syslinuxは非常に素晴らしく、gPxeとplopkexecに私を導いた。その他の研究者の場合:askubuntu.com/q/516730/319747
Jook

1

はい、これは可能です。

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

  1. BIOSブートパーティション(GPTタイプ1686148-6449-6E6F-744E-656564454649)-1 MiB、ファイルシステムなし
  2. EFIシステムパーティション(GPTタイプC12A7328-F81F-11D2-BA4B-00A0C93EC93B)-200 MiB、VFATファイルシステム
  3. Linuxブートパーティション(GPTタイプ0FC63DAF-8483-4772-8E79-3D69D8477DE4)-1 GiB、ext4ファイルシステム
  4. Linuxルート/ホームファイルシステム(GPTタイプ0FC63DAF-8483-4772-8E79-3D69D8477DE4)-残りのスペース、XFSまたはBtrfsファイルシステム

このパーティション分割により、レガシーシステムでの起動が可能になります。GPTには(下位互換性のため)MBRのスペースがまだあり、Grub2にはBIOSブートパーティションに中間ステージをインストールするのに十分なスペースがあります。レガシBIOSはパーティションスキームを気にしません。Grub2/ Linuxカーネルはレガシシステム上のGPTを理解するのに問題はありません。

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

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

Linuxブートファイルシステムがの​​下にマウントされ/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

出来上がり。


PS:このハイブリッドアプローチを実装するプロビジョニングスクリプトを作成したため、このようなUSBスティックを自動的に作成するために使用できます。
maxschlepzig
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.