Вам необходимо предоставить доступ к X-серверу для других пользователей
/usr/bin/xhost +
Вы можете прочитать о xhost
в man страница:
XHOST(1)
NAME
xhost - server access control program for X
...
...
...
+ Access is granted to everyone, even if they aren't
on the list (i.e., access control is turned off).
...
...
...
Примечания к выпуску последней прошивки для вашей платы(Выпуск от ноября 2018 г. ), кажется, указывает, что 64-битная -версия прошивки действительно поддерживает загрузку по сети, даже с использованием HTTP/ протоколы HTTPS. Только в 32-битной -версии прошивки по-прежнему отключена поддержка сети UEFI. Возможно, обновление прошивки решит вашу проблему?
Я вижу, вы используете efinet
в качестве модуля сетевого драйвера GRUB. Я думаю, предполагается, что прошивка уже инициализировала сетевой интерфейс и получила IP-адрес либо по DHCP, либо из конфигурации прошивки.
Если прошивка не инициализирует аппаратное обеспечение и не предоставляет соответствующий протокол UEFI для использования GRUB, драйвер efinet
не будет работать... если, конечно, вы не найдете нужный сетевой драйвер UEFI на веб-страницах поддержки Intel и выполните несколько сценариев UEFI, чтобы сначала загрузить и настроить драйвер сетевой карты и стек драйверов TCP/IP с какого-либо другого носителя перед запуском grubx64.efi
. Но это как бы противоречит цели загрузки по сети.
Для поддержки загрузки UEFI PXE и загрузки UEFI 2.5 HTTP (S )ваш сервер DHCP должен иметь возможность обнаруживать параметр архитектуры PXE в запросе DHCP клиента и добавлять соответствующую информацию о загрузке в ответ DHCP.. Если вы используете ISC dhcpd
в качестве DHCP-сервера, часть конфигурации DHCP-сервера, относящаяся к сетевой загрузке, должна быть аналогична этой:
option pxearch code 93 = unsigned integer 16;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server <IP address of boot server>; # bootp style option
option tftp-server-name "<IP address of boot server>"; # DHCP style option
if option pxearch = 00:10 {
# 0x0010 = UEFI 2.5 HTTP boot for x86_64
filename "<HTTP or HTTPS URL pointing to a.efi bootloader file>";
} elsif option pxearch = 00:0f {
# 0x000f = UEFI 2.5 HTTP boot for 32-bit x86
filename "<HTTP or HTTPS URL pointing to a.efi bootloader file>"
} elsif option pxearch = 00:09 {
# TFTP-based UEFI PXE boot for x86_64 according to original RFC 4578
filename "/some/TFTP/path/grubx64.efi";
option boot-size <nnnn>; # size of grubx64.efi as reported by "du -B 512 grubx64.efi"
} elsif option pxearch = 00:07 {
# TFTP-based UEFI PXE boot for x86_64 according to current IANA registry
# and RFC 4578 errata
filename "/some/TFTP/path/grubx64.efi";
option boot-size <nnnn>; # as above
} elsif option pxearch = 00:06 {
# TFTP-based UEFI PXE boot for 32-bit x86
filename "/some/TFTP/path/grubia32.efi";
option boot-size <nnnn>;
} else {
# plain old x86 BIOS PXE boot options here
}
# end of PXE boot specific options
}
Чтобы указать корневую файловую систему в GRUB, вы можете добавить параметры загрузки, такие как ip=dhcp root=/dev/nfs nfsroot=nfs.server.ip.address:/root/filesystem/share
, в командную строку GRUB linux
и/или использовать команду initrd
GRUB для загрузки initramfs с того же TFTP-сервера, что и исходный файл. ядра перед вводом команды boot
.
Внутри initramfs вы можете включить инструменты для произвольно сложных настроек, например. подключение к хранилищу iSCSI и использование файловой системы на нем в качестве корневой файловой системы, если хотите.