web-dev-qa-db-ja.com

EFILivecdを起動するPXE-CentOS

会社で必要なすべてを実行するレガシー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サーバーをどのように管理しますか?

1
Locane

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の開発に関係しています。

2
Pat