web-dev-qa-db-fra.com

Comment amorcer PXE un client UEFI avec un rootfs NFS?

J'essaie de démarrer PXE des clients UEFI. Ma configuration actuelle pour les clients BIOS utilise pxelinux.0 avec un fichier pxelinux.cfg/default comme ceci:

DEFAULT vmlinuz-3.8.0-25-generic
APPEND initrd=initrd.img-3.8.0-25-generic root=/dev/nfs nfsroot=10.17.76.1:/var/lib/tribble/ephemeral ip=dhcp ro nomodeset

Mais j'ai du mal à faire la même chose avec UEFI, parti, car il y a tellement d'approches différentes qui peuvent être adoptées, et il y a si peu de bonne documentation.

Suite à cela guide sur le démarrage PXE de netboot mini.iso sur UEFI , j'ai pu démarrer PXE dans le programme d'installation, mais je n'ai pas encore trouvé le moyen d'adapter ces instructions à mon cas d'utilisation.

Donc, il y a peu de choses que je recherche:

  1. Quel chargeur de démarrage est recommandé pour le démarrage PXE de clients UEFI?

  2. Pouvez-vous me donner un exemple concret d'utilisation dudit chargeur de démarrage pour démarrer PXE avec un client UEFI dont le fichier rootfs est exporté via NFS?

  3. J'ai vu de nombreux tutoriels référençant les modules pxe et pxecmd , mais ceux-ci ne sont pas présents sur Ubuntu 13.04 ... sont-ils obsolètes, et si oui, qu'est-ce qui les remplace?

Options envisagées:

Dans cet océan d'options, j'espère trouver une solution à faible risque qui continuera d'être bien prise en charge par Ubuntu.

5
jderose

Comment netboot avec ELILO

Comment faire pour qu'EFI se lance sur le net?

Vous n’avez besoin d’aucun logiciel supplémentaire pour permettre à EFI de démarrer une session Netboot. Tout ordinateur EFI peut être configuré pour démarrer une session PXE/DHCP SI il possède une carte réseau qui prend en charge le protocole UNDI/PXE. La plupart des cartes modernes ont un tel support.

Pour activer le démarrage sur réseau, vous devez accéder au menu de maintenance du gestionnaire de démarrage EFI et à "Ajouter une option de démarrage". Sur l'écran, vous voyez la liste des périphériques à partir desquels démarrer. Au moins l'un d'entre eux doit être de la forme:

Load File [Acpi(PNP0A03,0)/Pci(5|0)/Mac(00D0B7A6FC25)]

qui représentent une carte Ethernet (adresse Mac). Si vous ne disposez pas de cette option, cela signifie que votre ordinateur ne possède pas de carte réseau ou que la ROM optionnelle n'est pas prise en charge par UNDI/PXE.

Vous devez sélectionner cette option et lui attribuer un nom logique tel que "netboot", par exemple. Ensuite, vous quittez le menu de maintenance et revenez au menu principal. Vous avez maintenant une nouvelle option du menu de démarrage. Si vous sélectionnez 'Netboot', EFI lancera la demande de découverte PXE/DCHP et recherchera un serveur pour obtenir une adresse IP.

Du côté du serveur, vous pouvez utiliser un serveur DHCP standard.

Netboot avec PXE

EFI a un support intégré pour PXE. En fait, il essaie d'abord PXE, puis DHCP par défaut, lorsqu'il ne trouve pas de serveur PXE valide.

Un package de serveur PXE est disponible à partir de Linux/ia32, mais ce package ne possède pas les extensions nécessaires pour communiquer avec le côté EFI.

Il n’est pas nécessaire d’utiliser des options spéciales ou des indicateurs de compilation pour que elilo fonctionne avec PXE au lieu de DHCP standard. Une fois netbooté, elilo détectera automatiquement s’il a été téléchargé via PXE ou DHCP et déterminera comment les fichiers suivants sont demandés.

Vous avez besoin d'une version spéciale du serveur DHCPD développée par Internet Software Consortium ( http://www.isc.org ) avec un correctif spécial pour ajouter les extensions PXE. Malheureusement, à compter de la version 3.0xx, le correctif n’a pas encore été intégré à l’arborescence officielle. Il est supposé apparaître dans la version 3.1 du serveur dhcpd.

Dans tous les cas, le paquetage elilo contient un exemple simple illustrant comment vous pouvez configurer le fichier /etc/dhcpd.conf pour un serveur DHCP compatible PXE à l'aide des extensions fournies dans le correctif. Vous pouvez regarder dans examples/dhcpd-pxe.conf. La syntaxe est très différente de celle d’un serveur DHCP standard.

Les éléments clés à garder à l’esprit sont les couches PXE utilisées par elilo pour demander les différents fichiers:

Layer 0 : to get the name of the boot loader (elilo.efi)
Layer 1 : to get the name of the elilo config file
Layer 2 : to get the name of the kernel image

Il y a une distinction IMPORTANTE entre ces couches. Les deux premiers (0,1) et demandés systématiquement alors que le dernier n’est utilisé que lorsque le fichier de configuration n’est pas trouvé, c’est-à-dire quel est le noyau par défaut à démarrer. Les fichiers sont toujours téléchargés via TFTP. Par conséquent, le serveur TFTP doit également être configuré (voir la section précédente pour plus d’informations à ce sujet).

Obtenir le fichier de configuration

Dans ce mode, elilo utilise la couche 1 PXE pour obtenir le fichier de configuration à utiliser. Par conséquent, cela doit être défini côté serveur. Elilo utilisera la séquence suivante pour rechercher un fichier de configuration:

- use the name provide by the PXE server Layer 1 or

- elilo-ia64.conf/elilo-ia32.conf/elilo-x86_64 or

- elilo.conf

Exemple de fichier elilo.conf

chooser=textmenu
default=install
delay=20
Prompt

message=boot-screens/elilo_menu.msg
f1=boot-screens/general.msg
f2=boot-screens/params.msg

relocatable

image=vmlinuz
    label=install
    description="Install"
    initrd=initrd.gz
    append="--"
    read-only

image=vmlinuz
    label=expert
    description="Install [Expert mode]"
    initrd=initrd.gz
    append="priority=low --"
    read-only

image=vmlinuz
    label=rescue
    description="Rescue"
    initrd=initrd.gz
    append="rescue/enable=true --"
    read-only

Un autre

boot=/dev/sda1
delay=30
timeout=50
default=Gentoo
append="console=ttyS0,9600"
Prompt

image=/vmlinuz
    label=Gentoo
    root=/dev/sda2
    read-only

image=/vmlinuz.old
    label=Gentoo.old
    root=/dev/sda2
    read-only

Consultez également elilo.conf , et Gestion des chargeurs de démarrage EFI pour Linux: avec ELILO

Elilo s'arrête au premier match. Avec PXE, elilo n'essaie pas de télécharger un fichier de configuration nommé d'après l'adresse IP attribuée, contrairement à DHCP, car la configuration du serveur PXE est suffisamment flexible pour ce faire.

Obtenir l'image du noyau

Lorsqu'il n'y a pas de fichier de configuration, elilo utilisera le nom du noyau renvoyé par PXE Layer 2. S'il n'est pas spécifié, il utilisera par défaut "vmlinux".

Récupération du ramdisk initial

Le nom de fichier du disque mémoire DOIT provenir du fichier de configuration. Elilo n'utilise pas de couche PXE pour demander un nom par défaut.

Obtenir des informations sur l'adresse IP

Lorsque elilo est démarré sur le réseau, le module du système de fichiers réseau initialise certaines variables elilo avec les informations reçues du serveur DHCP. Au minimum, il a reçu l'adresse IP.

Les informations suivantes sont stockées dans les variables indiquées ci-dessous:

assigned IP address -> %I
assigned netmask    -> %M
assigned domainname -> %D
assigned gateway    -> %G

Ces variables peuvent être utilisées pour ajuster dynamiquement les arguments de ligne de commande passés au noyau.

Pour plus d'informations, voir PXE Linux et Implémentation du démarrage PXE

Source: HP

4
Mitch

Seulement signifié comme questions "d'éveil":

L'UEFI sur ces clients est-il obligatoire? -

Vous ne pouvez pas désactiver UEFI sur chaque client et activer uniquement EFI sur ceux-ci? -

Il serait probablement plus facile de démarrer toutes les installations avec grub2.

Vous pouvez envisager de régler les paramètres du BIOS sur EFI-boot au lieu de UEFI-boot, car le double démarrage avec UEFI n’est pas très fiable, par exemple. Windows 7 ou Windows 8. Je connais certaines installations. Ubuntu avec UEFI-dual-boot Win7 est souvent tombé en panne dans gdm.

0
dschinn1001