Cette page est largement inspirée de cet article http://nwcablingltd.com/?p=16
Je verrais pour tester avec une Raspbian Stretch Lite à l'occasion.
<note warning> Cette méthode est totalement expérimentale. Si vous souhaitez continuer et l'appliquer c'est à vos risques et périls. </note>
<note> Avec l'éditeur nano, pour enregistrer : Ctrl+O et pour quitter Ctrl+X. </note>
Il est nécessaire de :
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
<note important> Comme j'ai un Raspberry Pi 1B, je suis parti sur cette base https://github.com/debian-pi/raspbian-ua-netinst/ plutôt que de partir sur NOOBS Lite https://www.raspberrypi.org/downloads/noobs/ ou sur l'image officielle Lite https://www.raspberrypi.org/downloads/raspbian/ qui sont elles compatibles pour tous les Raspberry Pi. </note>
Insérer la carte dans la Raspberry Pi et branchez la.
<note warning> Utiliser l'utilisateur root sur un serveur, même si cela facilite les manipulations, est fortement déconseillé. </note>
Une fois redémarré, il faudra se connecter avec l'utilisateur pi et le mot de passe est raspberry (rqspberry en qwerty).
raspi-config
Expand Filesystem
Enable SSH
Reboot : yes
sudo passwd pi
sudo -i passwd root
Éditer le fichier /etc/ssh/sshd_config :
Dans la rubrique # Authentification: commenter PermitRootLogin without-password et ajouter PermitRootLogin yes.
sudo apt-get install nano sudo nano /etc/ssh/sshd_config
#PermitRootLogin without-password PermitRootLogin yes
Faire la combinaison Ctrl+o pour enregistrer puis Ctrl+x pour sortir.
dpkg-reconfigure locales dpkg-reconfigure tzdata
apt-get update apt-get dist-upgrade apt-get install nano dnsmasq syslinux-common pxelinux nfs-kernel-server nfs-common apt-get autoclean && apt-get autoremove
<note> Les commandes peuvent se faire directement sur le Raspberry Pi ou bien en SSH. </note>
mkdir -p /srv/tftpboot/pxelinux.cfg cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftpboot/ cp /usr/lib/syslinux/memdisk /srv/tftpboot/ cp /usr/lib/syslinux/modules/bios/menu.c32 /srv/tftpboot/ cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftpboot/ cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftpboot/ cp /usr/lib/syslinux/modules/bios/libmenu.c32 /srv/tftpboot/
mkdir -p /srv/tftpboot/ubuntu/ wget http://cdimage.ubuntu.com/ubuntu-mate/releases/16.04.3/release/ubuntu-mate-16.04.3-desktop-i386.iso -P /srv/tftpboot/ubuntu/ mkdir -p /srv/tftpboot/ubuntu/16.04
nano /etc/fstab Ajouter la ligne suivante à la fin du fichier, enregistrer et fermer le fichier /srv/tftpboot/ubuntu/ubuntu-mate-16.04.3-desktop-i386.iso /srv/tftpboot/ubuntu/16.04 udf,iso9660 user,loop 0 0 Pour tester le point de montage mount –a Pour voir le dossier listant les images ISO qui sont montées ls -lash /srv/tftpboot/ubuntu/16.04/
nano /etc/exports Ajouter la ligne /srv/tftpboot/ubuntu/16.04/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
<note> S'il y a une erreur à propos de portmapper, alors désinstaller les paquets suivants et les réinstaller :
apt-get purge rpcbind nfs-common nfs-kernel-server apt-get install rpcbind nfs-common nfs-kernel-server
Il est alors nécessaire de refaire la modification du fichier exports </note>
showmount –e localhost
<note important> Dans ma box j'ai attribué l'adresse IP locale 192.168.0.25 au Raspberry Pi. La box donne l'adresse 192.168.0.1 comme porte de sortie. Il faut donc adapter cela à votre cas. </note>
nano /srv/tftpboot/pxelinux.cfg/default
Y ajouter ces lignes, enregistrer et fermer le fichier
DEFAULT menu.c32 PROMPT 0 MENU TITLE PXE Boot System LABEL Ubuntu_16_04 MENU LABEL Ubuntu Live (16.04 32bit) KERNEL /srv/tftpboot/ubuntu/16.04/casper/vmlinuz APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.0.25:/srv/tftpboot/ubuntu/16.04/ initrd=/srv/tftpboot/ubuntu/16.04/casper/initrd.lz splash —
Normalement toutes les lignes du fichier de configuration de dnsmasq sont commentées par défaut avec un # devant toutes les lignes. Il suffit donc d'ajouter ces lignes à la fin du fichier.
<note important> Dans ma box j'ai attribué l'adresse IP locale 192.168.0.25 au Raspberry Pi. La box donne l'adresse 192.168.0.1 comme porte de sortie. Il faut donc adapter cela à votre cas. </note>
nano /etc/dnsmasq.conf
Y ajouter ces lignes, enregistrer et fermer le fichier
interface=eth0 dhcp-range=192.168.0.1,proxy dhcp-boot=pxelinux.0 pxe-service=x86PC, “Linux”, pxelinux enable-tftp tftp-root=/srv/tftpboot dhcp-boot=pxelinux.0,raspberrypi,192.168.0.25
Redémarrer alors dnsmasq
service dnsmasq restart
A ce point vous devriez être capable de booter en PXE et de sélectionner Ubuntu dans le menu qui démarrera en tant que live-CD. Ça a fonctionné pour moi, j'ai pu lancer le live-CD sur un ordinateur raccordé au réseau.