ディスクイメージがあります。
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 262MB 261MB fat16 MemTest86 legacy_boot, msftdata
2 263MB 524MB 261MB fat16 EFI System Partition boot, esp
Grubコンソールでは、私は次のことをしました。
loopback loop (some partition)/memtest.img
ls
2つのパーティションが正しく表示され、次のものが(loop,gpt2)
表示(loop,gpt1)
ls (loop,gpt2)/efi/boot/
されます。
Benchmark blacklist.cfg BOOTIA32.efi BOOTX64.efi mt86.png unifont.bin
ただし、次の操作を行うとエラーが発生します。not a valid root device
root=(loop,gpt2)
chainloader (loop,gpt2)/efi/boot/BOOTX64.efi
ブートローダを正しくチェーンロードするにはどうすればよいですか?
アップデート1:ループバックコマンドの後、検索コマンドでパーティションを見つけることができます。たとえば、ls(loop、gpt2)はUUID E64D-A5AAを表示します。search -u E64D-A5AA
展示するloop,gpt2
答え1
チェーンロードされたefiとカーネルがディスクイメージのマウント方法をサポートしていない限り、これは不可能です。
Grubループバックの起動プロセスは次のとおりです。
- grubは、ディスクイメージを含む物理ハードウェアパーティションをマウントします。
- grub ループバックディスクイメージ
- grubはこのイメージでefiアプリケーションを実行します。この時点で、grubはすべての制御をefiアプリケーションに渡します。 efiは、ディスクイメージを含むハードウェアパーティションを見つけることができる場所を知りません。この機能があってもディスクイメージをマウントする方法がわかりません。したがって、この段階では何も続くことができません。
最新のlivecdには、画像を見つける場所を教えて画像をマウントするためのいくつかのカーネルオプションがあります。ただし、grubはカーネルを起動する必要があるefiアプリケーションではなく、カーネルを直接実行する必要があります。 efiアプリケーションのすべてのパスはハードコーディングされており、絶対パスでなければならないからです。