Как загрузить ядро ​​Linux из сети через Console Grub2?

Вам необходимо предоставить доступ к 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).
...
...
...
1
11.12.2018, 12:51
1 ответ

Примечания к выпуску последней прошивки для вашей платы(Выпуск от ноября 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и/или использовать команду initrdGRUB для загрузки initramfs с того же TFTP-сервера, что и исходный файл. ядра перед вводом команды boot.

Внутри initramfs вы можете включить инструменты для произвольно сложных настроек, например. подключение к хранилищу iSCSI и использование файловой системы на нем в качестве корневой файловой системы, если хотите.

1
28.01.2020, 00:22

Теги

Похожие вопросы