新しいブートローダを構築しようとしていますが、残念ながら、そのトピックについて知っていることはあまりありません。私は以下の指示に従います。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'