Faire des sauvegardes automatiques de ses disque, via un boot réseau (Clonezilla)

Puisqu’apparemment ce n’est pas encore aujourd’hui qu’un article juridique verra le jour sur ce blog, et puisque j’évoquais le boot PXE dans le précédent article, j’en profite pour vite partager une autre astuce que j’aime utiliser pour faire une image d’un disque, et surtout pour la restaurer.
Ça peut être très pratique pour déployer rapidement un très grand nombre d’ordinateur, ou pour faire des tests sur un système, avant de le re-déployer.

Quand il s’agit d’un one-shot, je boote souvent simplement sur un live-usb linux, et puis je fais

dd if=LE_DISQUE_A_SAUVER | gzip -c Le_PATH_OU_SAUVER

Sachant que LE_DISQUE_A_SAUVER sera souvent /dev/sda et que Le_PATH_OU_SAUVER sera souvent un emplacement sur le réseau (typiquement un NAS) monté pour l’occasion.

Pour restaurer, je fais

 gunzip -c la/partoche.img.gz | dd of/dev/lapartochecible

Mais quand je dois réutiliser l’image, ou que je veux pouvoir faire les opérations automatiquement, alors je préfaire utiliser un Clonezilla bootable par le réseau.

Pour ce faire, j’utilise le serveur pxe/tftp comme configuré dans le précédent article, auquel j’ajoute des options.

Pour ce faire, je crée un dossier clonezilla dans /var/lib/tftpboot/

sudo mkdir /var/lib/tftpboot/clonezilla

Puis je place le fichier pxelinux.0 (le fichier qui permet d'amorcer un linux via un boot PXE) dans ce dossier
cp /var/lib/tftpboot/ltsp/i386/pxelinux.0 /var/lib/tftpboot/clonezilla

Notez qu’ici je prends celui qui est fourni par ltsp, mais je pourrais prendre celui qui est fourni par le paquet syslinux (qui sera trouvable ici: /usr/lib/syslinux/pxelinux.0), voire même directement celui distribué sur kernel.org https://www.kernel.org/pub/linux/utils/boot/syslinux/)

Ensuite, je place dans le même dossier, les fichiers vmlinuz, initrd.img et filesystem.squashfs trouvé dans le zip de la dernière version de clonezilla, en zip.

unzip clonezilla-live-2.2.2-37-i686-pae.zip live/vmlinuz live/filesystem.squashfs live/initrd.img -d /var/lib/tftpboot/clonezilla

Il reste à donner à pxelinux sa config

sudo mkdir /var/lib/tftpboot/clonezilla/pxelinux.cfg
sudo nano /var/lib/tftpboot/clonezilla/pxelinux.cfg/default

Et mettre dans default

DISPLAY boot.txt

LABEL clonezilla
kernel vmlinuz
append initrd=initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://L'ADRESSE-IP-DU-SERVEUR/clonezilla/filesystem.squashfs

PROMPT 1
TIMEOUT 0

 

(à noter que pxelinux admet des config par adresse ip, pour plus de détail voir http://www.syslinux.org/wiki/index.php/PXELINUX#How_do_I_Configure_PXELINUX.3F)

Pour pouvoir booter sur Clonezilla, il ne reste plus qu’un étape: que le serveur dhcp renvoie vers notre tftp. On va donc adapter la config de dnsmasq (déjà mis en place à l’article précédent), pour y faire apparaître

pxe-service=x86PC, « Charger Clonezilla », /clonezilla/pxelinux

Et on peut enfin démarrer son clonezilla sur le réseau.

Rester maintenant à automatiser tout ça.