Сбой загрузки бездискового Linux UEFI в pivot_root с указанием 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,

Может кто-нибудь сказать мне, как можно получить устройство root= для моего старого Grub Conf для бездисковых компьютеров Centos? Очевидно, я уже пробовал /dev/nvram, а также /dev/ram,

Когда мы загружаем PXE (устаревший режим), нет проблем или специальных настроек, запрашивающих корневое устройство. Это просто работает. Это первый раз, когда я работал с загрузкой EFI, поэтому я уверен, что мне просто не хватает некоторых параметров.

Текущая настройка: CentOS 6.8, Legacy 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

FINAL FIX

Поэтому проблема заключалась в том, что я использовал неправильный синтаксис для устаревшей конфигурации GRUB. Благодаря #CENTOS в Freenode (IRC) один из участников (извините, я не помню его ник) указал, что Legacy GRUB не понимает append директивы. Таким образом, перемещение аргументов в append строка моего конфига (выше) к kernel директива и потеря append строка на initrd линия, а затем, наконец, удаляя = между 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 ответ

Решение

AFAICT (но мой собственный эксперимент больше связан с бездисковой Windows, даже если мы начали переносить наше бездисковое решение на Windows до того, как оно было убито этой большой компанией из двух букв...), вам может понадобиться что-то другое. 1 - Не указывайте никаких "root=" в строке ядра. 2 - Используйте строку initrd (и связанный с ним ram-диск, который вам нужно собрать). 3 - В этом initrd, инициируйте любое устройство блочного устройства и драйвер файловой системы, которое вам нужно смонтировать. ваш корневой раздел (и другие разделы)

Проверьте эту страницу: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html например,

Другие вопросы по тегам