Restauration automatique d'un système
Il arrive (mais pas chez moi :-)) qu'on désire utiliser un système propriétaire dont le nom commence par W en le réinitialisant régulièrement à un état connu.
Voici une méthode, pas optimale mais facile à mettre en oeuvre avec des outils classiques et aisée vu la taille confortable des disques actuels. Elle nécessite:
- de l'espace disque suffisant
- System Rescue CD ou équivalent (un live-CD contenant parted ou gparted)
- de quoi installer Debian
Ce document est basé sur Windows XP et Debian Etch.
Procédure
On part d'un système avec Windows installé classiquement et dans l'état dans lequel on veut pouvoir le restaurer. Démarrer l'ordinateur sur System Rescue CD et utiliser parted/gparted pour réduire la partition Windows et faire de la place pour les aménagements à venir: 2 fois la RAM pour le swap Windows, un bon 500 Mb pour le système Debian, autant de fois la moitié de l'espace disque utilisé par Windows qu'on désire avoir d'images de sauvegarde et un peu de marge. Sur l'espace libéré, créer et formater une partition FAT32 ou NTFS de 2 fois la taille de la RAM. Eteindre le PC et retirer le CD.
Réduction de l'espace disque utilisé par Windows
Pour réduire la taille des images et accélérer leurs restaurations, on peut réaliser les opérations suivantes sur Windows:
- Vider la (ou les s'il y a plusieurs utilisateurs) poubelle
- Désactiver l'hibernation: cela retirera le fichier C:\hiberfile.sys , qui a la même taille que la RAM (soit pas mal de nos jours).
- Déplacer le swap sur la deuxième partition créée au chapitre précédent
De mémoire, les deux dernières opérations se font depuis "Panneau de Configuration -> Système sous XP. Lorsqu'elles sont finies, redémarrer et vérifier que les fichiers pagefile.sys et hiberfile.sys n'existent plus.
Installation du système de restauration
Installer Debian classiquement en dual boot sur l'espace libre. Pas besoin de swap, d'exploser le système en 36 partitions ou d'interface graphique: garder le système petit et simple. Y installer partimage depuis les dépôts.
Editer /boot/grub/menu.lst , et dans les commentaires spéciaux Debian, ajouter une ligne #altoptions = (Windows Restore) 4 . Il y a déjà une telle ligne pour le mode single user; cette nouvelle ligne va ajouter au menu GRUB une option pour démarrer en runlevel 4, runlevel qu'on va configurer plus bas.
Toujours dans le même fichier, repérer les lignes pour lancer Windows en bas du fichier et les déplacer juste en haut de la ligne # BEGIN AUTOMATIC KERNELS LIST pour qu'il apparaisse en première option et par défaut au boot. Regénérer ensuite le fichier de configuration avec update-grub . Ensuite, créer le fichier /usr/local/bin/sysrestore comme suit et le rendre exécutable:
#!/bin/bash image=`ls /root/partimage/*.000|tail -1` partimage -b -f2 restore /dev/sda1 $image
Ce script va récupérer la dernière image (dans l'ordre alphabétique) dans /root/partimage et la restaurer sur la partition /dev/sda1 (à changer si Windows est installé ailleurs). L'option -b va réaliser l'opération sans rien demander, et -f2 va redémarrer le PC après la restauration.
Finalement, éditer /etc/inittab et localiser les lignes lançant les gettys: remplacer
1:2345:respawn:/sbin/getty 38400 tty1
par:
1:23:respawn:/sbin/getty 38400 tty1
et ajouter une ligne
r4:4:once:/sbin/getty -n -l /usr/local/bin/sysrestore 38400 tty1
qui va lancer la restauration au runlevel 4.
Il reste à créer une première image: créer le répertoire /root/partimage, s'y placer et lancer partimage sans paramètres. Donner au fichier un nom du genre YYYYMMDD-description.img (pour que le système restaure automatiquement la dernière image), comprimer en gzip pour économiser de la place et veiller à ce que le fichier image soit séparé en plusieurs fichiers de 2 GB, sinon la restauration échouera.
Utilisation courante
En temps normal, GRUB démarre Windows. Pour la restauration, il faut y sélectionner l'option Linux (Windows Restore) qu'on a définie plus haut dans menu.lst. Pour créer de nouvelles images (ex: incluant des mises à jours), faire une restauration du sysème (pour repartir d'un état propre), faire les modifications nécessaires et redémarrer le système Linux en mode normal, puis y créer une nouvelle image comme au paragraphe précédent.
Variations
Evidemment, on peut adapter les comportements à souhait: arrêter le PC après la restauration au lieu de le redémarrer, configurer un runlevel supplémentaire pour restaurer une autre version que la dernière, conservation d'une partition séparée pour des données à conserver ...
tags: linux