Нам нужно настроить сервер 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
ОКОНЧАТЕЛЬНОЕ ИСПРАВЛЕНИЕ
Итак, проблема была в том, что я использовал неправильный синтаксис для устаревшей конфигурации GRUB. Спасибо #CENTOS в Freenode (IRC), один из участников (извините, я не помню его/ее ник) указал, что устаревшая версия GRUB не понимает директиву append
. Поэтому, переместив аргументы в append
строке моей конфигурации (выше) в kernel
директиву и потеряв append
строку в initrd
строке, а затем, наконец, удалив =
between 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, даже если мы начали портировать наше бездисковое решение на Windows до того, как его уничтожила эта большая двухбуквенная IT-компания...), вам может понадобиться что-то другое. 1 - Не указывайте никаких "root=" в строке ядра 2 - Используйте строку initrd (и связанный с ним init ram-диск, который вам нужно создать) 3 - В этом initrd инициируйте любое блочное устройство и драйвер файловой системы, которые вам нужны для монтирования вашего корневого раздела (и других разделов тоже)
Проверьте эту страницу: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html например