grub-mkimage - `/srv/tftp/boot/grub/x86_64-efi/core.efi.modを開くことができません。回避策は何ですか?

grub-mkimage - `/srv/tftp/boot/grub/x86_64-efi/core.efi.modを開くことができません。回避策は何ですか?

新しいブートローダを構築しようとしていますが、残念ながら、そのトピックについて知っていることはあまりありません。私は以下の指示に従います。PXE経由でUEFIシステムにインストーラを起動中に問題が発生する

私は最初に次を実行します。

grub-mknetdir --net-directory=/srv/tftp/ --subdir=/boot/grub
Netboot directory for x86_64-efi created. Configure your DHCP server to point to /srv/tftp/boot/grub/x86_64-efi/core.efi

これがうまくいくようで、次のコマンドに進みました。

root@vogon:~# grub-mkimage -O x86_64-efi /srv/tftp/boot/grub/x86_64-efi/core.efi --prefix='tftp,192.168.50.9)/boot/grub' efinet tftp
grub-mkimage: error: cannot open `/srv/tftp/boot/grub/x86_64-efi/core.efi.mod': No such file or directory.

次の.modファイルが表示されます/srv/tftp/boot/grub/x86_64-efi/

root@vogon:~# file /srv/tftp/boot/grub/x86_64-efi/*
/srv/tftp/boot/grub/x86_64-efi/acpi.mod:                 ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
/srv/tftp/boot/grub/x86_64-efi/adler32.mod:              ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
/srv/tftp/boot/grub/x86_64-efi/affs.mod:                 ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
/srv/tftp/boot/grub/x86_64-efi/afs.mod:                  ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
...

efinet.modどちらもtftp.mod存在しますが、もちろんcore.efi.mod存在しません。このcore.efiファイルは次のように異なります.mod

root@vogon:~# file /srv/tftp/boot/grub/x86_64-efi/core.efi
/srv/tftp/boot/grub/x86_64-efi/core.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows

この問題をどのように解決できますか?

ベストアンサー1

通常、これらのコマンドは標準のtftpディレクトリでホストされているBIOSとuefiのブートイメージを作成する必要があります。

apt-get install grub-pc-bin grub-efi-amd64-bin
mkdir -p /srv/tftp
grub-mknetdir --net-directory /srv/tftp/

verboseフラグを使用すると、使用中のgrub-mkimageコマンドを表示できますgrub-mknetdir

# grub-mknetdir --net-directory /srv/tftp/ -v
...
grub-mknetdir: info: grub-mkimage --directory '/usr/lib/grub/i386-pc' --prefix '/boot/grub' --output '/srv/tftp/boot/grub/i386-pc/core.0'  --dtb '' --format 'i386-pc-pxe' --compression 'auto'  'tftp' 'pxe'
...
grub-mknetdir: info: grub-mkimage --directory '/usr/lib/grub/x86_64-efi' --prefix '/boot/grub' --output '/srv/tftp/boot/grub/x86_64-efi/core.efi'  --dtb '' --format 'x86_64-efi' --compression 'auto'  'tftp' 'efinet'

これらのコマンドをカスタマイズに簡単に適用できます。

grub-mkimage --directory '/usr/lib/grub/x86_64-efi' --prefix '(tftp,192.168.50.9)/boot/grub' --output './core.efi' --format 'x86_64-efi' --compression 'auto'  'tftp' 'efinet'

おすすめ記事