Voici donc la suite des articles sur la sauvegarde d’un système.
Nous allons réaliser une image asr du système courant.
ASR, pour Apple Software Restore est utilisé par Apple pour l’installation automatique des machines neuves. Il est également possible de se servir de ASR pour les sauvegardes et les restaurations.
Prérequis
<td valign="top">
Il est nécessaire d’avoir de la place disque. Si possible sur un disque externe ou une partition autre que celle du système. La place disque nécessaire est égale à au moins une fois celle occupée par votre système. Soit environ 30 Go dans mon cas.
</td>
Principe
Pour faire cette sauvegarde, nous allons créer une image sur laquelle nous allons copier, avec asr les éléments qui sont sur le disque démarrage. Cette image pourra ensuite être restaurée sur un disque externe, ou sur le disque principal de la machine à condition de démarrer sur un autre disque ou sur CD-ROM.
Définition de quelques variables
Pour éviter de retaper plusieurs fois les mêmes choses, on utilise des variables. Celles-ci sont conservées en mémoire tant que le script Shell est en cours d’exécution.
Il nous faut une variable pour le nom du volume, nous prendrons le nom de la machine, une variable pour le nom de l’image, le fichier sur le disque, une variable pour le nom de la destination (le disque sur lequel l’image sera stockée) et une variable pour le chemin de la source des fichiers à sauvegarder, ici la racine du disque représentée par /
. Pour définir une variable, on donne son nom, suivi (sans espace) par le signe égal puis, toujours sans espace, la valeur que l’on veut lui affecter :
|
|
Le nom de l’image comporte le nom de la machine (le résultat de la commande hostname
plus la date de création de celle-ci. On appelle l’utilitaire date
avec un formatage particulier.
Création de l’image
Pour créer l’image, nous devons d’abord déterminer la taille que celle-ci devra avoir. Pour cela nous allons utiliser la commande df
.
Cette commande permet de connaître l’espace utilisé et l’espace libre sur une ou plusieurs partitions. Grâce au paramètre -m
nous aurons cette taille en mégaoctets. L’information qui nous intéresse est la taille utilisée, c’est-à-dire celle de la troisième colonne. C’est l’utilitaire (plutôt le langage) awk
qui va nous permettre d’obtenir ce chiffre. Enfin, et par mesure de sécurité, nous allons augmenter cette taille de 5 %. Voici le code qui réalise cette opération :
|
|
Une fois la taille de l’image obtenue, il est temps de créer cette image, sur le disque qui dispose de suffisamment de place pour cela.
C’est l’utilitaire hdiutil
que nous allons utiliser.
Remarquez que pour utiliser une variable et donc la valeur quelle contient, on ajoute $
devant son nom.
hdiutil create -quiet -megabytes $SIZE -fs HFS+ -volname $VOLUMENAME $IMAGENAME
Montage de l’image
Il faut maintenant rendre disponible l’image pour la sauvegarde en la « montant ». C’est à nouveau hdiutil
qui fait le travail :
|
|
Le résultat de la commande complète est stocké dans la variable DEVICE
dont nous nous servirons plus tard.
Réalisation de la sauvegarde
Enfin il est possible de réaliser la sauvegarde avec asr
qui copie de puis la source
vers la cible (target
en anglais). Au passage nous demandons a ce qu’il n’y ait pas de question posée, asr
prenant alors ses valeurs par défaut.
|
|
Démonter l’image
Une fois la sauvegarde terminée, il est temps de « démonter » l’image, toujours avec hdiutil
:
|
|
Restaurer avec notre image
Voici maintenant comment utiliser notre image en cas de problème sur le disque démarrage. Il faut bien sûr que le disque sur lequel est stockée l’image soit accessible.
Vous devez démarrer sur un disque externe comportant un système, par exemple en mettant votre Mac malade en mode Target. Cela se fait en reliant votre Mac à un autre par un câble FireWire et de démarrer votre Mac en maintenant enfoncé la touche T. Votre Mac est alors vu comme un disque dur sur l’autre machine. Vous pouvez aussi démarrer sur le CD-ROM d’installation du système fourni avec votre machine.
Vous devez ensuite lancer le Terminal, et repérer l’emplacement de votre image (par exemple /Volumes/Sauvegarde/backup_2007-06-01.dmg
.
C’est avec asr
que la restauration sera faite, exactement que fut fait la sauvegarde :
|
|