会社で必要なすべてを実行するレガシーPXEサーバーと、(カスタム)CentOS 7livecdを起動するエントリがレガシーPXEにあります。
これらをEFIPXEで動作させたいと思います。
これまでのところ、dhcpd.conf
で指定する.efiファイルに応じて、さまざまな負荷に対してEFIPXEブートシステムの画面にさまざまなものを表示できます。基本的に、EFIPXEブートがネットワーク上で機能することを知っています。
私が抱えている問題は、必要な機能を実現するために使用する.efiイメージです。理想的には、代わりにEFIだけでレガシーPXEメニューのすべての機能を使用できますが、主にCentOS 7LivecdをEFIPXEから起動することに興味があります。
このフォーラム投稿 とgrubx64.efi
を使用して、grubとコンテンツをgrub.cfg
ファイルにロードするためのEFIPXEブートシステムを使用することができました。
フォーラム投稿のgrub.cfg
内で、従来のPXEメニューエントリと同じパラメーターに一致するようにメニューエントリを変更しました(コメント行は投稿の元の「linuxefi」行であることに注意してください)。
menuentry 'Install CentOS 7' {
#linuxefi /centos7-net/vmlinuz inst.repo=http://buildlogs.centos.org/centos/7/os/x86_64-latest/
linuxefi /livecd/vmlinuz initrd=/livecd/initrd.img ksdevice=bootif lang= root=live:/boot.iso kssendmac text ks=http://XX.XX.24.21/cblr/svc/op/ks/profile/LiveCD
initrdefi /livecd/initrd.img
レガシーPXEで動作するvmlinuz
ファイルとinitrd.img
ファイルの両方が存在し、誰でも読み取れるようにアクセス許可が設定されています。
私がこれから得たのはエラーです:
「エラー:initrdを読み込めません」
しかし、これを改善する方法がわかりません。 initrdは、カーネルパラメータとinitrdefi
行エントリの両方で指定されたパスにあります。
誰かが以前にこれをしたことがありますか?
メニュー、サブメニュー、OSインストールなどの管理など、一般的にPXE EFIサーバーをどのように管理しますか?
pXEでは、カーネルとinitrdをTFTPでロードできます。それだけです。残りの部分、つまりライブディストリビューションを実装する大きなsquahfsファイルは、HTTPまたはSMB共有(NFSもオプション)によって一時的に移動されます。
次に、initrdをロードできないというエラーに加えて、を使用してライブイメージをロードすることはできません。
root=live:/boot.iso
必要なネットワーク情報がありません。 Servaがここでどのようにそれを行うかを見てみてください:
https://www.vercot.com/~serva/an/NonWindowsPXE3.html
;-Serva v3.0 Non-Windows Asset Information File
;-Boot/Install:
; Red Hat Enterprise Linux / CentOS Linux
;-Tested on:
; rhel-server-7.3-x86_64-dvd.iso
; rhel-server-7.3-x86_64-boot.iso
; rhel-workstation-7.3-x86_64-dvd.iso
; rhel-workstation-7.3-x86_64-boot.iso
; rhel-client-7.3-x86_64-dvd.iso
; rhel-client-7.3-x86_64-boot.iso
;
; rhel-server-7.2-x86_64-dvd.iso
; rhel-server-7.2-x86_64-boot.iso
; rhel-workstation-7.2-x86_64-dvd.iso
; rhel-workstation-7.2-x86_64-boot.iso
; rhel-client-7.2-x86_64-dvd.iso
; rhel-client-7.2-x86_64-boot.iso
;
; rhel-atomic-installer-7.2-10.x86_64.iso
;
; CentOS-7-x86_64-DVD-1611.iso
; CentOS-Atomic-Host-7.1704-Installer.iso
;
; rhel-workstation-6.5-x86_64-dvd.iso
; rhel-server-6.5-x86_64-dvd.iso
; CentOS-6.5-x86_64-bin-DVD1.iso
;
;-Require:
; \SERVA_REPO\ offered as HTTP root
;-Notes:
; For KickStart
; 7.3 > Add to append inst.ks=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/images/pxeboot/ks.cfg
; 7.2 > Add to append ks=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/images/pxeboot/ks.cfg
[PXESERVA_MENU_ENTRY]
asset = RHEL Server 7.3
platform = x86_64
kernel_bios = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz
append_bios = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img inst.repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;7.2 > append_bios = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;6.x > append_bios = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img method=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$ noipv6 ksdevice=bootif
ipappend_bios = 2
kernel_efi64 = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz
append_efi64 = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img inst.repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;7.2 > append_efi64 = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
ipappend_efi64 = 2
私はServaの開発に関係しています。