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