ディスクレス Linux UEFI ブートは、ルートを指定する必要がある pivot_root で失敗しますが、ルート デバイスをどのように判別すればよいですか?

ディスクレス Linux UEFI ブートは、ルートを指定する必要がある pivot_root で失敗しますが、ルート デバイスをどのように判別すればよいですか?

EFI PXE サーバーをセットアップする必要があります。テスト マシンを起動プロセスの pivot_root 部分まで正常に起動できました。その後、次のような恐ろしいエラーが発生します。

VFS: Cannot open root device "nvram" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:

はい、パーティションのリストは ですnil

ディスクレス CentOS マシンのレガシー grub conf の root= デバイスを取得する方法を教えてください。明らかに、私はすでに/dev/nvram、およびを試しました/dev/ram

PXE ブート (レガシー モード) を実行する場合、ルート デバイスを要求する問題や特別な設定は発生しません。そのまま動作します。EFI ブートを使用するのは今回が初めてなので、いくつかのパラメータが不足しているだけだと思います。

現在の設定: CentOS 6.8、レガシー Grub (bootx64)、ISC DHCP、TFTP

現在の EFI 構成 (/EFI/efidefault):

default=0
timeout=3
splashimage=(nd)/splash.xpm.gz
#prompt 0
#ONTIMEOUT default

title Linux
   menu label UEFI Image
   menu default
   root (nd)
   kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 root=/dev/nvram
   append initrd=/discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216

最終修正

問題は、レガシー GRUB 構成に間違った構文を使用していたことです。Freenode (IRC) の #CENTOS のおかげで、メンバーの 1 人 (申し訳ありませんが、ニックネームは覚えていません) が、レガシー GRUB はディレクティブを理解しないことを指摘しましたappend。そこで、構成の文字列 (上記) の引数をディレクティブappendに移動し、行の文字列kernelを削除し、最後に との間のを削除することで、問題は解決しました。appendinitrd=initrd/discover...

default=0
timeout=3
splashimage=(nd)/splash.xpm.gz

title Linux
   menu label UEFI Image
   menu default
   root (nd)
   kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216
   initrd /discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz

答え1

私の知る限りでは (ただし、私の実験はディスクレス Windows に関するもので、この大手 2 文字の IT 企業によって廃止される前にディスクレス ソリューションを Windows に移植し始めたとしても...)、別の方法が必要になる場合があります。1 - カーネル ラインに「root=」を指定しない 2 - initrd ラインを使用する (および構築する必要がある関連する init ram ドライブ) 3 - この initrd で、ルート パーティション (およびその他のパーティション) をマウントするために必要なブロック デバイスとファイル システム ドライバーを初期化する

このページを確認してください: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html 例えば

関連情報