Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ipxe [Le 05/05/2019, 16:38] – [Savoir décompresser une ISO] nicolas84 | ipxe [Le 29/06/2024, 14:08] (Version actuelle) – samba solve acces denied sur winpe 7 andykimpe | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | |||
| ====== IPXE : utilisation avec TFTP, PXE, DHCP, NFS et HTTP ====== | ====== IPXE : utilisation avec TFTP, PXE, DHCP, NFS et HTTP ====== | ||
| Ligne 5: | Ligne 7: | ||
| L' | L' | ||
| - | Il existe d’autres méthodes comme par exemple : | + | Il existe d’autres méthodes comme par exemple : |
| - | <note warning> | + | |
| - | Cet article est en cours de rédaction. Certaines informations peuvent être erronés ou incomplète. | + | |
| - | </ | + | |
| - | ===== Processus de démarrage ===== | ||
| - | |||
| - | - L' | ||
| - | - Le serveur DHCP, présent sur le réseau, lui envoie un fichier ipxe à démarrer. | ||
| - | - L' | ||
| - | - Il charge le fichier de configuration par défaut. | ||
| - | - Le fichier contient les informations nécessaire à l' | ||
| ===== Installer et lancer les serveurs nécessaires ===== | ===== Installer et lancer les serveurs nécessaires ===== | ||
| Ligne 24: | Ligne 16: | ||
| Installation du serveur DHCP sur le serveur. | Installation du serveur DHCP sur le serveur. | ||
| <note important> | <note important> | ||
| - | Un serveur doit avoir une adresse ip fixe ! Ici, le serveur dispose de l’ip 10.0.0.200. Voir : https:// | + | Un serveur doit avoir une adresse ip fixe ! Ici, le serveur dispose de l’ip 10.0.0.200. Voir : [[: |
| </ | </ | ||
| < | < | ||
| sudo apt update && sudo apt install | sudo apt update && sudo apt install | ||
| - | sudo nano etcdhcp/dhcpd.conf | + | sudo nano / |
| + | </ | ||
| + | |||
| + | <file - / | ||
| + | # Path to dhcpd' | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # Path to dhcpd' | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # Additional options to start dhcpd with. | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? | ||
| + | # | ||
| + | INTERFACESv4="" | ||
| + | INTERFACESv6="" | ||
| + | </ | ||
| + | < | ||
| + | sudo nano /etc/dhcp/dhcpd.conf | ||
| </ | </ | ||
| <file - / | <file - / | ||
| + | default-lease-time 7200; | ||
| + | max-lease-time 7200; | ||
| + | |||
| allow unknown-clients; | allow unknown-clients; | ||
| + | # | ||
| option subnet-mask 255.255.255.0; | option subnet-mask 255.255.255.0; | ||
| Ligne 95: | Ligne 113: | ||
| next-server 10.0.0.200; | next-server 10.0.0.200; | ||
| # PXE | # PXE | ||
| - | if option arch = 00:07 { | + | if option arch = 00:07 or option arch = 00:09 { |
| if exists user-class and option user-class = " | if exists user-class and option user-class = " | ||
| filename " | filename " | ||
| Ligne 101: | Ligne 119: | ||
| filename " | filename " | ||
| } | } | ||
| - | } else if option arch = 00:09 { | + | } else if option arch = 00:06 { |
| if exists user-class and option user-class = " | if exists user-class and option user-class = " | ||
| filename " | filename " | ||
| } else { | } else { | ||
| - | filename "ipxe/ipxe.efi"; | + | filename "ipxe/ipxe32.efi"; |
| } | } | ||
| } else { | } else { | ||
| - | | + | if exists user-class and option user-class = " |
| filename " | filename " | ||
| } else { | } else { | ||
| filename " | filename " | ||
| } | } | ||
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Dans la configuration ci-dessous le réseau est configurer | + | Dans la configuration ci-dessous le réseau est configuré |
| </ | </ | ||
| Les premières « option » permettent à isc-dhcp-server de comprendre des options DHCP spécifique à ipxe. | Les premières « option » permettent à isc-dhcp-server de comprendre des options DHCP spécifique à ipxe. | ||
| Cela sera plus compréhensible plus tard, mais les « if » en fin de document permettent de distribuer le bon fichier en fonction du client PXE (Bios, EFI) | Cela sera plus compréhensible plus tard, mais les « if » en fin de document permettent de distribuer le bon fichier en fonction du client PXE (Bios, EFI) | ||
| - | Pour plus d’info sur la configuration : | + | Pour plus d’info sur la configuration : |
| < | < | ||
| - | sudo service | + | sudo systemctl restart |
| </ | </ | ||
| + | <note important> | ||
| + | Avoir deux serveurs DHCP sur le même réseau est souvent synonyme de conflits. Il est préférable de désactiver tous les autres serveurs DHCP (de votre box ou routeur par exemple). Dans ce cas, il faut décommenter la ligne " | ||
| + | |||
| + | Dans le cas où il n'est pas possible de désactiver les autres serveur DHCP, à minima, il faut régler le paramètre " | ||
| + | |||
| + | Une autre méthode consiste à amorcer iPXE à l'aide d'une clé USB : [[: | ||
| + | </ | ||
| ==== Serveur TFTP ==== | ==== Serveur TFTP ==== | ||
| Le serveur TFTP est celui qui va fournir les fichiers nécessaires au démarrage réseau. | Le serveur TFTP est celui qui va fournir les fichiers nécessaires au démarrage réseau. | ||
| < | < | ||
| - | sudo apt install tftpd-hda | + | sudo apt install tftpd-hpa |
| - | sudo nano etc/ | + | sudo nano /etc/ |
| </ | </ | ||
| <file - / | <file - / | ||
| Ligne 144: | Ligne 169: | ||
| Ensuite, redémarrer le service : | Ensuite, redémarrer le service : | ||
| < | < | ||
| - | | + | |
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Si un pare-feu est activé, | + | Si un pare-feu est activé, ouvrir le port 69 |
| </ | </ | ||
| Ligne 157: | Ligne 182: | ||
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Si un pare-feu est activé, | + | Si un pare-feu est activé, |
| </ | </ | ||
| Ligne 167: | Ligne 192: | ||
| </ | </ | ||
| Pour plus d' | Pour plus d' | ||
| + | |||
| + | On créer un lien symbolique de tftpboot sur le serveur LAMP : | ||
| + | < | ||
| + | ln -s / | ||
| + | </ | ||
| + | |||
| ===== Préparer les fichiers de démarrage iPXE ===== | ===== Préparer les fichiers de démarrage iPXE ===== | ||
| Ligne 188: | Ligne 219: | ||
| dhcp | dhcp | ||
| - | chain http:// | + | chain http:// |
| </ | </ | ||
| < | < | ||
| cd / | cd / | ||
| make bin-x86_64-efi/ | make bin-x86_64-efi/ | ||
| - | make bin-i386-efi/ | + | make bin-i386-efi/ |
| - | make undionly.kpxe EMBED=chain.ipxe | + | make bin/undionly.kpxe EMBED=chain.ipxe |
| + | |||
| + | cp bin-x86_64-efi/ | ||
| + | cp bin-i386-efi/ | ||
| + | cp bin/ | ||
| </ | </ | ||
| - | Ses deux fichiers seront ensuite à copier dans / | + | La construction nécessite les paquets suivants : [[apt> |
| </ | </ | ||
| Ligne 240: | Ligne 275: | ||
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Ce menu ne sert à rien dans l’état, il est à compléter en fonction de ce que l’on a démarrer. | + | Ce menu ne sert à rien dans l’état, il est à compléter en fonction de ce que l’on a démarrer. |
| + | |||
| + | Des exemples de menu sont proposés sur cette page : [[http:// | ||
| </ | </ | ||
| Ligne 246: | Ligne 283: | ||
| Utiliser un ordinateur ou une machine virtuelle pour tenter un démarrage PXE. Pour cela, il faut changer l' | Utiliser un ordinateur ou une machine virtuelle pour tenter un démarrage PXE. Pour cela, il faut changer l' | ||
| - | Plus d' | + | Plus d' |
| + | <note tip> | ||
| + | Si cela ne fonctionne pas dans une machine virtuelle, tentez quand même sur un ordinateur physique. Sur les machines virtuelles, cela a parfois tendance à être capricieux ! | ||
| + | Par exemple pour un test via VirtualBox, il faut impérativement installer les extensions packs pour ne pas avoir d' | ||
| + | Dans les paramètres VirtualBox, ajouter l' | ||
| + | </ | ||
| ===== Compléter le menu ipxe ===== | ===== Compléter le menu ipxe ===== | ||
| Ligne 284: | Ligne 326: | ||
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Il convient évidemment d' | + | Il convient évidemment d' |
| </ | </ | ||
| - | Il faudra ensuite | + | Il faudra ensuite |
| < | < | ||
| sudo echo "/ | sudo echo "/ | ||
| - | sudo service | + | sudo systemctl restart |
| </ | </ | ||
| ==== Démarrer Windows ==== | ==== Démarrer Windows ==== | ||
| Ligne 314: | Ligne 356: | ||
| == Sous Windows == | == Sous Windows == | ||
| + | |||
| + | Pré-requis : Télécharger et installer Windows ADK [[https:// | ||
| + | |||
| + | <note important> | ||
| + | Désactiver votre programme antivirus lors de la manipulation des images. | ||
| + | </ | ||
| + | |||
| + | Dans le menu démarrer taper : " | ||
| + | |||
| + | Copier WinPE | ||
| + | < | ||
| + | copype amd64 C: | ||
| + | </ | ||
| + | |||
| + | Monter l' | ||
| + | < | ||
| + | Dism / | ||
| + | </ | ||
| + | |||
| <note tip> | <note tip> | ||
| - | A compléter, cette solution | + | Il est possible a ce stade de rajouter des fichiers/ |
| + | |||
| + | Il est aussi possible de modifier le script de démarrage (pour lancer des commandes automatiquement au démarrage) : | ||
| + | Exemple : | ||
| + | <file - C: | ||
| + | wpeinit | ||
| + | net use Y: \\10.0.0.200\win10_1809_custom_x64 /user:user pass | ||
| + | Y: | ||
| + | </ | ||
| </ | </ | ||
| + | |||
| + | __Pour ajouter des pilotes de périphériques (.inf) : __ | ||
| + | |||
| + | Un seul à la fois : | ||
| + | < | ||
| + | Dism /Add-Driver / | ||
| + | </ | ||
| + | Tout un dossier de .inf (il peut être nécessaire d' | ||
| + | < | ||
| + | Dism /Add-Driver / | ||
| + | </ | ||
| + | Vérification : | ||
| + | < | ||
| + | Dism / | ||
| + | </ | ||
| + | <note tip> | ||
| + | D' | ||
| + | </ | ||
| + | Quand toutes les modifications sont terminées, il faut démonter l' | ||
| + | < | ||
| + | Dism / | ||
| + | </ | ||
| + | |||
| + | Création d'un image ISO : | ||
| + | < | ||
| + | Makewinpemedia /iso C: | ||
| + | </ | ||
| === Configuration du menu === | === Configuration du menu === | ||
| Ligne 350: | Ligne 446: | ||
| [win10] | [win10] | ||
| path = / | path = / | ||
| - | browseable = no | + | browseable = yes |
| writable = no | writable = no | ||
| guest ok = yes | guest ok = yes | ||
| create mask = 0775 | create mask = 0775 | ||
| directory mask = 0775 | directory mask = 0775 | ||
| + | acl allow execute always = yes | ||
| </ | </ | ||
| Ligne 364: | Ligne 461: | ||
| </ | </ | ||
| <note tip> | <note tip> | ||
| - | Même si le répertoire samba est accessible anonymement (guest ok = yes), il faut saisir un utilisateur et un mot de passe bidon pour que la connexion fonctionne. | + | Même si le répertoire samba est accessible anonymement (guest ok = yes), il faut parfois |
| </ | </ | ||
| Ligne 399: | Ligne 496: | ||
| ===== Astuces ===== | ===== Astuces ===== | ||
| + | ==== Si cela ne fonctionne pas ==== | ||
| + | __**Si je n'ai pas de menu**__ | ||
| + | * Tester avec un autre ordinateur | ||
| + | * Vérifier que la connexion ethernet fonctionne | ||
| + | * Vérifier si l' | ||
| + | * Vérifier les droits du fichier menu (install.ipxe) et des fichiers de démarrage (undionly.kpxe et ipxe.efi) | ||
| + | |||
| + | __**Si j'ai le menu**__ (dans ce cas là, c'est le système choisi qui ne démarre pas) | ||
| + | * Vérifier que tous les fichiers pointés dans la configuration du menu sont accessibles et que les chemins sont corrects. | ||
| + | * Vérifier si il n'y a pas un problème de droit | ||
| + | * Si vous êtes en EFI, vérifiez que ce que vous voulez démarrer est compatible. | ||
| + | |||
| + | ====Créer une clé USB d' | ||
| + | |||
| + | Pour éviter l' | ||
| + | |||
| + | < | ||
| + | cd /tmp | ||
| + | git clone git:// | ||
| + | cd ipxe/src | ||
| + | </ | ||
| + | |||
| + | <note warning> | ||
| + | Manipulez la commande [[:dd]] avec beaucoup de précaution !! | ||
| + | </ | ||
| + | |||
| + | Pour la version bios : | ||
| + | < | ||
| + | make bin/ | ||
| + | dd if=bin/ | ||
| + | </ | ||
| + | |||
| + | Pour la version efi : | ||
| + | < | ||
| + | make bin-x86_64-efi/ | ||
| + | dd if=bin-x86_64-efi/ | ||
| + | </ | ||
| ==== Gagner de la place ==== | ==== Gagner de la place ==== | ||
| Si vos ISO sont déjà dans un autre emplacement sur votre serveur, il est possible d' | Si vos ISO sont déjà dans un autre emplacement sur votre serveur, il est possible d' | ||
| Ligne 405: | Ligne 539: | ||
| </ | </ | ||
| - | Il est aussi faisable d' | + | Il est aussi faisable d' |
| <note important> | <note important> | ||
| - | Ne pas utiliser de lien symbolique à l' | + | Ne pas utiliser de lien symbolique à l' |
| Il est en revanche possible d'en utiliser avant le point de montage du partage. | Il est en revanche possible d'en utiliser avant le point de montage du partage. | ||
| Ligne 415: | Ligne 549: | ||
| ==== Bugs connus ==== | ==== Bugs connus ==== | ||
| - | === Ubuntu | + | === Ubuntu |
| - | Si Ubuntu | + | Si Ubuntu |
| - | Source | + | Pour Ubuntu ou Lubuntu 18.04.2, il faut rajouter en sus : " |
| + | |||
| + | Pour Ubuntu et Lubuntu 18.04.3, il faut enlever toutes ses modifications faites pour Ubuntu Server 18.04. 1 et 2 sinon l' | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | === Ubuntu 20.04 === | ||
| + | Sur les distributions basées sur Ubuntu 20.04, un fsck des fichiers est effectué, ce qui rend le démarrage très long. Pour éviter cette étape il suffit de rajouter fsck.mode=skip après boot=casper | ||
| + | |||
| + | === Pas de réseau dans Windows PE === | ||
| + | Si le retour de la commande ipconfig ne donne rien, alors c'est qu'il n'y a pas le pilote réseau adéquat pour votre carte réseau. Recherchez son pilote chez le constructeur de votre carte réseau, et, intégrez ce pilote lors de la construction de WinPE. (voir paragraphe : [[: | ||
| ===== Voir aussi ===== | ===== Voir aussi ===== | ||
| [[http:// | [[http:// | ||
| + | |||
| + | [[http:// | ||
| **__Contributeur__** | **__Contributeur__** | ||
| nicolas84 | nicolas84 | ||
