lundi 30 avril 2018

Installer Windows 10 depuis un PXE Linux

Un certain temps s'est écoulé depuis la rédaction de ce billet expliquant comment installer Windows sur un PXE Linux. Il existe désormais une méthode plus simple grâce au bootloader wimboot, développé par le projet iPXE.

Sur un machine sous Windows, installer le Windows 10 ADK (Assessment and Deployment Kit). Copier les éléments suivants dans un répertoire acessible en TFTP :

  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\boot.sdi
  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\BCD
  • C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\en-us\winpe.wim
  • wimboot


Ajouter un fichier "startnet.cmd" avec la liste des commandes à lancer au démarrage :

wpeinit
net use Y: \\boot\windows10 /user:user pass
Y:\setup.exe


Pour du PXElinux, ajouter une entrée dans le menu :

# Installation de Windows 10
LABEL win10installer
        MENU LABEL Installation de Windows 10 Professionnel 64 bits
        COM32 linux.c32
        APPEND win10installer/wimboot initrdfile=win10installer/startnet.cmd,win10installer/BCD,win10installer/boot.sdi,win10installer/boot.wim

Attention : il faut avoir une version de pxelinux assez récente pour pouvoir lancer wimboot !

dimanche 5 février 2017

Debian : The attempt to mount a file system with type ext4 ... at / failed.

En installant Debian depuis un serveur PXE (netboot), il arrive parfois que l'installeur n'arrive pas à monter la partition où installer l'OS :

The attempt to mount a file system with type ext4 [...] at / failed.


L'explication se trouve ici : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780812

This is due to kernel and module version mis-match in debian-installer [...] which was built with an older kernel version


Solution : mettre à jour debian-installer sur le serveur PXE, tout simplement. Il suffit de récupérer les derniers noyau et initrd en date :

  • http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
  • http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz

lundi 18 mai 2015

Échec de l'installation de Mint 17 depuis un live-PXE

Suite à ce billet, je me suis rendu compte que l'installateur plante s'il est lancé depuis un "live-PXE".
À l'origine du problème, la procédure de fabrication du fichier de configuration d'APT (gestionnaire de paquets), qui n'est pas adaptée à un "live-PXE". Néanmions, voici comment le contourner.

Solution 1 : one-shot

Une fois Mint démarré, éditer /usr/lib/ubiquity/apt-setup/apt-setup et trouver la ligne suivante :

mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list

La remplacer par ceci :

if [ -f $ROOT/etc/apt/sources.list.new ]; then
	mv $ROOT/etc/apt/sources.list.new $ROOT/etc/apt/sources.list
fi

Attention : cette modification n'est pas enregistrée. Elle doit donc être faite à chaque redémarrage.

Solution 2 : correction permanente

Cette solution consiste à appliquer le patch ci-avant à l'image SquashFS. Pour ceci, installer les outils squashfs :

apt-get install squashfs-tools

Décompresser le squashfs de Mint :

unsquashfs casper/filesystem.squashfs

Appliquer le patch indiqué précédemment.
Recompresser le squashfs :

mksquashfs squashfs-root/ filesystem.squashfs -noappend -always-use-fragments


3... 2... 1... bootez !

jeudi 2 août 2012

Linux Mint Live en PXE par NFS

Il est possible, très simplement, de démarrer la distribution Linux Mint depuis un serveur PXE. Cette façon de faire peut être adaptée à d'autres distributions, elle est d'ailleurs inspirée de celle d'Ubuntu (d'où est tirée Mint).

mount -o loop linuxmint-13-mate-dvd-64bit.iso /media/imagecd
mkdir /tftpboot/mint
cp -r /media/imagecd/casper /tftpboot/mint/
umount /media/imagecd
  • Rendre ce répertoire accessible en NFS. Pour cela, installer le serveur NFS et ajouter une ligne d'export au fichier /etc/exports :
apt-get install nfs-kernel-server
echo '/tftpboot/mint *(ro,no_root_squash,no_subtree_check,async)' >> /etc/exports
/etc/init.d/nfs-kernel-server restart
  • Ajouter une entrée dans le fichier <racine TFTP>/pxelinux.cfg/default. Pour ma part j'ai aussi passé l'OS en français :
LABEL mint
     MENU LABEL Mint Live (NFS)
     KERNEL mint/casper/vmlinuz
     APPEND initrd=mint/casper/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.1:/tftpboot/mint locale=fr_FR keymap=fr console-setup/layoutcode=fr



Mise à jour (21/11/2012) : le réseau fonctionne sous Linux Mint 13, mais plus sous Mint 14. Il faut alors redemander une IP :

sudo dhclient eth0

samedi 7 juillet 2012

Installer Windows depuis un serveur PXE Linux

Voyons comment installer Windows depuis un démarrage PXE. Ceci revient en fait à lancer l'installation de Windows (7 par exemple) depuis un environnement WinPE personnalisé de la manière suivante :
- intégration du pilote Realtek Gigabit PCIe, de plus en plus répandu et indispensable pour lancer l'installation par le réseau ;
- une fois WinPE chargé, montage du media en CIFS contenant le répertoire "source" du média d'installation et lancement de l'assistant.

Lire la suite...