Hey ! Non, ce blog n’est pas mort !
J’ai fait l’acquisition depuis quelques semaine d’un NAS Netgear ReadyNAS Ultra 2… qui depuis n’existe plus vraiment depuis car remplacé par la série ReadyNAS 10X. Bref.
Ce petit joujou n’est rien d’autre qu’une petite machine avec du Debian dedans, une vieille Debian Etch, qui date un peu mais qui reste fonctionelle. Voulant utiliser mon NAS comme serveur de sauvegarde je me suis mis en tête de bidouiller pour pouvoir booter un CD de sauvegarde Acronis via le réseau.
Eh beurk, Acronis me direz-vous, et un bon vieux Rsync des familles alors ?! Je n’ai pas trop le choix si je veux pouvoir sauvegarder mon PC pro, car c’est le seul outil supporté oficiellement par le service informatique de ma boite…
Dans le monde Linux, boot via le réseau se traduit par PXE. Pour résumer, une machine compatible pourra lors du démarrage faire une connection au réseau filaire et booter sur une image stockée sur le réseau.
Etape 1 : Les mains dans le terminal
Première étape avant toute bidouille sur le NAS, c’est la sauvegarde… mettez vos données de coté, on sais jamais !
Ceci étant fait, il va falloir faire du apt-get
pour arriver à nos fins, et donc activer l’accès SSH sur votre NAS. Utilisez tout simplement cet add-on, puis un reboot plus tard vous voila dans votre terminal préféré.
Attention, vous êtes sur un système Debian certes, mais très largement customisé et optimisé par Netgear. On reste donc très prudent sur ce qu’on installe !
Pour se mettre en jambes :
apt-get update
apt-get upgrade
apt-get install vim
Etape 2 : dnsmasq, le serveur PXE (mais pas que)
Qui dit PXE dit serveur DHCP qui va donner les infos… exit donc le bon vieux truc par défaut de la box et à nous la solution maison !
J’ai choisi d’installer dnsmasq car c’est un outil très léger, très simple d’utilisation et surtout bien documenté sur la toile. Son installation est en théorie très simple (apt-get install dnsmasq
), mais dans notre cas cela ne suffira pas.
Notre Debian étant un peu ancienne, la version présente dans le repository n’est pas assez récente et ne propose pas les fonctionnalités PXE voulues…
On va donc tricher en utilisant les paquets d’une version Debian plus récente. Une chance que dnsmasq ne soit pas trop contraignant en termes de prérequis, car cela nous évite de changer le système en profondeur.
On récupère donc les packages et on les installe, dans cet ordre strict :
wget http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.15-2_i386.deb
dpkg -i libidn11_1.15-2_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/d/dnsmasq/dnsmasq-base_2.55-2+b1_i386.deb
dpkg -i dnsmasq-base_2.55-2+b1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/d/dnsmasq/dnsmasq_2.55-2_all.deb
dpkg -i dnsmasq_2.55-2_all.deb
La configuration est alors assez simple, éditez /etc/dnsmasq.conf
et pensez-bien à couper le DHCP de votre box ou autre :
interface=eth0
bind-interfaces
# Quelques options DHCP : le range, la passerelle, le DNS, une ip statique
dhcp-range=192.168.1.50,192.168.1.80,1h
dhcp-option=3,192.168.1.254
dhcp-option=6,192.168.1.101
dhcp-host=00:24:e8:bb:2f:41,192.168.1.10,tym-laptop
# La partie TFTP
enable-tftp
tftp-root=/opt/pxe
dhcp-boot=pxelinux.0
On a donc maintenant un serveur DHCP, un serveur DNS (par défaut les demandes sont renvoyées aux DNS dans /etc/resolv.conf
et dnsmasq utilise /etc/hosts
pour la “zone” locale) et surtout un serveur PXE.
Etape 3 : “On s’pingue et on s’fait un boot ?”
On va maintenant mettre en place le contenu du serveur PXE : /opt/pxe
dans la config précédente.
Tout d’abord les binaires PXE :
pxelinux.0
à prendre la racine de l’archivememdisk
à trouver dans le dossier memdisk de l’archive
On place les deux fichiers dans /opt/pxe
avec l’image iso de votre choix… aux hasard le CD bootable Acronis.
On crée un répertoire pxelinux.cfg
avec dedans un fichier default
contenant :
DEFAULT acronis
LABEL acronis
KERNEL memdisk
APPEND initrd=acronis.iso iso raw
Et hop, tout ce petit monde vous permettra de booter votre iso favorite via le réseau :
nas:~# ls -R /opt/pxe/
/opt/pxe/:
acronis.iso memdisk pxelinux.0 pxelinux.cfg
/opt/pxe/pxelinux.cfg:
default
Bon boot ;-)