64ビットバージョンの Minimal Linux Live にUEFIサポートを追加しようとしてかなり長い間、残念ながらあまり成功していませんでした。下の画像からわかるように、UEFI経由で起動しようとするたびに重大なエラーが発生します。
これは私がこの時点に到達するためにしたことです:
efi64/efi/syslinux.efi
を\EFI\BOOT\BOOTX64.EFI
にコピーしました。efi64/com32/elflink/ldlinux/ldlinux.e64
を\EFI\BOOT\LDLINUX.E64
にコピーしました。\EFI\BOOT\BOOTX64.EFI
を\EFI\BOOT\BOOTX641.EFI
に名前変更する必要がありました。edit
を使用してから、\EFI\BOOT
フォルダーに移動しました。BOOTX641.EFI
を手動で呼び出したところ、同じエラーが表示されました。したがって、EFIスタブは実行されていると結論付けることができますが、実行プロセス中に何かが中断し、現時点では何が問題なのかわかりません。
UEFIをサポートしていることがわかっている System Rescue CD のISOイメージ構造を確認したところ、次のことがわかりました。
\efi\boot\bootx64.efi
という1つのファイルしか含まれていません。\efi\boot\bootx64.efi
のサイズは724KBですが、Syslinux 6.03の対応するファイルefi64/efi/syslinux.efi
は〜200KBであるため、これは完全に同じファイルではありません。\efi\boot\bootx64.efi
をコピーして「Minimal Linux Live」のEFI構造で使用すると、UEFIブートプロセスは、GRUB = 2シェル。「システムレスキューCD」のファイル\efi\boot\bootx64.efi
にGRUB 2のサポートが組み込まれているため、カスタムビルドのソリューションである必要があることがわかりました。
だから、ほんの少しの問題です-私はVanilla Syslinuxパッケージを使用していて、簡単なISOイメージを起動するUEFI互換の構成を作成したいと思います。公式の指示に従ってもうまくいかないようです。
すべての提案は高く評価されています!ありがとうございました!
注1:ISOイメージはBIOSモードで正常に起動します。そこに問題はありません。
注2:他のオペレーティングシステム(UbuntuやLinux Mintなど)はUEFIモードで正常に起動するため、これはVirtualBoxのバグではない可能性があります。
EDIT 1 Jan-2017):
答えがないまま非常に長い間、私はまったく異なる方法で私のソリューションを実装しました:
Syslinux
を使用しません。startup.nsh
スクリプトを作成しました。このようにして、ブート機能の一部を失います。 vga=ask
はSyslinux
では正常に機能しますが、この特定のブートオプションには適切なLinuxブートローダーが必要なため、UEFIモードでは機能しません。
私はうまく機能する解決策を持っていますが、問題はまだ開いています。
編集2-(2017年12月):
これは、前の更新に追加されたものです。 startup.nsh
を使用したソリューションは、UEFIシステムに「UEFIシェル」(UEFI仕様によれば、ファームウェアがシェルを提供する場合と提供しない場合がある)の場合にのみ、このシェルがサポートレベル1以上の場合にのみ機能します。また、ISOイメージでESPを提供する適切な方法は 'El Torito'ブートイメージを介するため、起動スクリプトが実行される保証はありません。ESP ISOイメージ上で直接互換性のある構造は、特定のファームウェアでは正常に動作するように見えますが、これは普遍的なソリューションではありません。
質問は未解決のままですが、その間に---(systemd-boot を統合することができ、この問題を優先度の高いものとは考えていません。
System Rescue CDはsyslinuxではなくGRUBを使用しているようです。私のgrub64.efiは約1MBですが、含まれるモジュールを少なくしてビルドできると思います。
コピーしたイメージはsyslinux.efiと呼ばれるため、isolinuxとは呼びません。 syslinux.cfg
ではなくisolinux.cfg
という名前のファイルを探すことを期待しています。 (ただし、isolinuxはsyslinux.cfg
にフォールバックします)。
また、「すべてのISOLINUX構成ファイルはルートフォルダーにある」と言っていることにも気づきました。 ISOの作成方法はわかりません。ブートローダーは 特別なブートイメージ にある必要があることに注意してください。iso9660ファイルシステムをマウントした場合に表示されるディレクトリツリーではありません。明らかにVirtualBoxが何かを起動しているので、ここでは問題になりませんが、他のシステムよりも許容範囲が広い場合は、「間違った」ことを行っている可能性があります。
「いくつかの人気のあるLinuxディストリビューション」によってセットアップされたハイブリッドブートイメージは読むのがとても楽しいですが、最後に読んだのは、単一のイメージですべてのMac、32ビットEFIをサポートすることは不可能でした...複数のブートイメージを認識し、ユーザーに「1」と「2」のどちらかを選択するように求めるファームウェア。少なくともMac固有のサポートがあれば、だれかがうさぎの穴を掘り下げる前に、テストできるパーツだけを実装する方が安全な場合があります。