<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>4. Création de la sauvegarde de l'étape 1</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.67.2" name="generator"><link rel="start" href="index.html" title=" Guide pratique de sauvegarde et de récupération sous Linux "><link rel="up" href="index.html" title=" Guide pratique de sauvegarde et de récupération sous Linux "><link rel="prev" href="ar01s03.html" title="3. Préparation"><link rel="next" href="ar01s05.html" title="5. Première étape de restauration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">4. Création de la sauvegarde de l'étape 1</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s03.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s05.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="CreatingtheStage1BackUp"></a>4. Création de la sauvegarde de l'étape 1</h2></div></div></div><p> Votre sauvegarde de production étant effectuée, il est indispensable de conserver les informations de partitions pour pouvoir les reconstruire.</p><p> Le script <a href="ar01s11.html#make.fdisk" title="11.1.1. make.fdisk"><code class="filename">make.fdisk</code></a> recherche les informations des partitions du disque dur et les enregistre dans trois fichiers. Le premier est un script exécutable, nommé <a href="ar01s11.html#make.dev.hda" title="11.1.2. make.dev.hda"><code class="filename">make.dev.x</code></a> (où « <span class="quote">x</span> » est le nom du fichier de périphérique, c'est-à-dire hda). Le second est <a href="ar01s11.html#mount.dev.hda" title="11.1.3. mount.dev.hda"><code class="filename">mount.dev.x</code></a>, qui crée les points de montage et qui y monte les partitions nouvellement créées. Le dernier, <a href="ar01s11.html#dev.hda" title="11.1.4. dev.hda"><code class="filename">dev.x</code></a>, est constitué des commandes nécessaires à <span><strong class="command">fdisk</strong></span> pour construire les partitions. Vous précisez quel disque dur vous désirez, pour construire les scripts associés (et donc les noms de fichiers) en nommant le fichier de périphérique associé comme argument de <a href="ar01s11.html#make.fdisk" title="11.1.1. make.fdisk"><code class="filename">make.fdisk</code></a>. Par exemple, sur un système IDE classique,</p><pre class="programlisting"> bash# <span><strong class="command">make.fdisk /dev/hda</strong></span> </pre><p> produit les scripts <a href="ar01s11.html#make.dev.hda" title="11.1.2. make.dev.hda"><code class="filename">make.dev.hda</code></a>, <a href="ar01s11.html#mount.dev.hda" title="11.1.3. mount.dev.hda"><code class="filename">mount.dev.hda</code></a> ainsi que le fichier en entrée de <span><strong class="command">fdisk</strong></span>, <a href="ar01s11.html#dev.hda" title="11.1.4. dev.hda"><code class="filename">dev.hda</code></a>.</p><p> De plus, si <a href="ar01s11.html#make.fdisk" title="11.1.1. make.fdisk"><code class="filename">make.fdisk</code></a> rencontre une partition FAT, il conserve le secteur d'amorçage de la partition dans un fichier nommé <code class="filename">dev.xy</code>, où x est le nom de périphérique du disque (c'est-à-dire sdc, hda) et y est le numéro de la partition. Le secteur d'amorçage est le premier secteur (512 octets) de la partition. Ce secteur est restauré en même temps que les partitions sont reconstruites, dans le script <code class="filename">make.dev.hda</code>.</p><p> Heureusement, le prix des disques durs s'effondre presque aussi vite que la confiance du public envers les politiciens après une élection. Donc, c'est une bonne chose que les fichiers produits soient au format texte et puissent être édités manuellement. C'est la façon la plus difficile mais la plus flexible pour effectuer une reconstruction sur un plus grand disque de remplacement. (Voir <a href="ar01s10.html#todo" title="10.1. Liste de travail">la liste du carnet de route</a>.)</p><p> Les autres méta données sont conservées dans le script <a href="ar01s11.html#save.metadata" title="11.1.5. save.metadata"><code class="filename">save.metadata</code></a>. Le script enregistre les informations de partition dans le fichier <code class="filename">fdisk.hda</code> à la racine du disque ZIP. C'est une bonne idée d'imprimer ce fichier ainsi que votre <code class="filename">/etc/fstab</code> pour avoir une copie durable au cas où vous devriez restaurer manuellement les données de la partition. Vous pouvez enregistrer une arborescence en alternant l'utilisation de deux consoles virtuelles, par le lancement de <span><strong class="command">fdisk</strong></span> dans l'une et en affichant par la commande cat <code class="filename">/etc/fstab</code> ou <code class="filename">/fdisk.hda</code> au besoin. Cependant, pratiquer ainsi peut mener à l'erreur.</p><p> Vous voudrez aussi conserver les fichiers se rapportant à votre méthode de restauration. Par exemple, si vous utilisez nfs pour sauvegarder vos données, vous devrez conserver hosts.allow, hosts.deny, exports, etc. De même, si vous utilisez un processus de restauration adossé au réseau comme Amanda ou Quick Restore, il vous faudra conserver les fichiers de configuration réseau tels que HOSTNAME, hosts, etc., ainsi que l'arborescence logicielle qui s'y rapporte.</p><p> La façon la plus simple de régler ces questions ainsi que d'autres similaires est de conserver l'intégralité du répertoire etc.</p><p> Il est impossible à un lecteur ZIP de 100 Mo de contenir à lui tout seul l'installation d'une distribution moderne d'un serveur Linux. Nous ne pouvons pas conserver l'ensemble du zinzin. Il nous faut être bien plus sélectifs. De quels fichiers avons-nous besoin ?</p><div class="itemizedlist"><ul type="disc"><li><p> Le répertoire /boot.</p></li><li><p> Le répertoire /etc et ses sous-répertoires.</p></li><li><p> Les répertoires nécessaires au moment du démarrage.</p></li><li><p> Les fichiers de périphériques dans /dev.</p></li></ul></div><p> Pour déterminer les répertoires nécessaires au démarrage, il nous faut regarder dans le fichier d'initialisation du démarrage <code class="filename">/etc/rc.sysinit</code>. Il détermine son propre chemin ainsi :</p><pre class="programlisting"> PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH </pre><p> Les essais et les erreurs ont indiqué que nous avons besoin d'autres répertoires, tels que <code class="filename">/dev</code>. Sous Linux, vous ne pouvez pas faire grand-chose sans les fichiers de périphériques.</p><p> Lorsque vous lirez le script <a href="ar01s11.html#save.metadata" title="11.1.5. save.metadata"><code class="filename">save.metadata</code></a>, vous remarquerez que nous ne sauvegardons pas nécessairement les fichiers qui sont appelés par leur chemin absolu.</p><p> Il nous faudra peut-être procéder à plusieurs itérations de sauvegarde, tester la restauration intégrale du système, réinstaller d'un CDROM et essayer encore, avant d'obtenir un script de sauvegarde fonctionnel. Pour la préparation de ce guide pratique, j'ai fait cinq itérations avant de réussir une restauration. C'est la raison pour laquelle il est nécessaire d'utiliser des scripts dès que possible. Testez soigneusement !</p><p> L'une des choses à faire avec un système basé sur RPM est d'utiliser le programme <span><strong class="command">rpm</strong></span> pour déterminer l'emplacement des fichiers. Par exemple, pour obtenir la liste complète des fichiers utilisés par le paquet openssh, saisissez :</p><pre class="programlisting"> bash# <span><strong class="command">rpm -ql openssh</strong></span> </pre><p> Certains éléments ne sont pas nécessaires, comme les pages man. Vous pouvez les inspecter un par un et décider de les sauvegarder ou non.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: AVERTISSEMENT"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">AVERTISSEMENT</th></tr><tr><td valign="top" align="left" colspan="2"><p> La seconde étape de la restauration est menée sans que les fichiers précédemment restaurés soient écrasés. Cela signifie que les fichiers restaurés durant la première étape sont ceux qui seront utilisés après la fin de la restauration. Donc, mettez à jour vos sauvegardes intégrales de système à chaque fois que vous mettez à jour des fichiers de ces répertoires.</p></td></tr></table></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: AVERTISSEMENT"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">AVERTISSEMENT</th></tr><tr><td valign="top" align="left" colspan="2"><p> La version de <span><strong class="command">tar</strong></span> fournie avec <a href="http://www.toms.net/rb" target="_top">tomsrtbt</a> ne préserve pas le propriétaire lors de la restauration. Ceci peut poser problème à des applications comme <a href="ar01s08.html#amanda" title="8.5. Amanda">Amanda</a>. Amanda, outil de sauvegarde et de restauration, a plusieurs répertoires dont le propriétaire est son utilisateur éponyme. La solution est :</p><div class="itemizedlist"><ul type="disc"><li><p> Notez quels sont les répertoires et les fichiers dont root n'est pas propriétaire.</p></li><li><p> Notez l'identifiant de leurs propriétaires.</p></li><li><p> Faites en sorte que le processus de restauration comprenne le rétablissement du propriétaire. Par exemple :</p><pre class="programlisting"> bash# <span><strong class="command">chown -R amanda:disk /var/lib/amanda</strong></span> </pre><p> vous pouvez aussi ajouter cette ligne à vos scripts de la deuxième étape de restauration, comme dans <a href="ar01s11.html#restore.tester" title="11.3.2. restore.tester"><code class="filename">restore.tester</code></a>.</p></li></ul></div></td></tr></table></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="ThemeAndVariations"></a>4.1. Variations sur le thème</h3></div></div></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="N10389"></a>4.1.1. Pas de lecteur ZIP</h4></div></div></div><p> Ce processus de sauvegarde vous oblige à disposer du lecteur de disque ZIP à chaque sauvegarde. Vous pouvez créer le contenu du disque ZIP dans un répertoire, puis le sauvegarder via le réseau. Ensuite, il vous faudra simplement construire un disque ZIP sur le serveur de sauvegarde (avec la commande <span><strong class="command">cp -rp</strong></span>) lorsque vous aurez besoin de restaurer.</p><p> Le processus de sauvegarde sera plus rapide, mais vérifiez tout de même que le répertoire créé tiendra sur votre disque ZIP (avec la commande <span><strong class="command">du -hs $cible.zip</strong></span>) ! Vous devrez éditer la définition de la variable <code class="varname">zip</code> dans le fichier <a href="ar01s11.html#save.metadata" title="11.1.5. save.metadata"><code class="filename">save.metadata</code></a>.</p><p> Mon portable ne supportant pas la présence simultanée d'une carte réseau et d'un lecteur ZIP, c'est le processus que j'utilise pour le sauvegarder. Je conserve une image de sauvegarde en même temps que la courante, ce qui fait que je dispose d'un système de secours au cas où l'ordinateur planterait pendant une sauvegarde.</p><p> Vous pouvez aussi sauvegarder sur plusieurs disques ZIP des données qui en valent la peine, et les transférer sur le système pendant la restauration.</p></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="N103A5"></a>4.1.2. Cédérom</h4></div></div></div><p> Ceci est similaire à l'option « <span class="quote">pas de lecteur ZIP</span> » ci-dessus. Enregistrez vos sauvegardes dans un répertoire de votre disque dur, comme mentionné. Puis, utilisez la commande <span><strong class="command">mkisofs</strong></span> pour créer une image ISO 9660 de ce répertoire et gravez-la. </p><p> De nos jours, beaucoup d'ordinateurs sont livrés avec un lecteur de CDROM mais pas de disquette. De plus, les lecteurs de disquette tombent en panne. C'est pourquoi, graver votre CDROM avec une image qui permette d'amorcer le système est une bonne idée. La mauvaise nouvelle, c'est que le format « <span class="quote">El Torito</span> » supporte les disquettes de 1,2 Mo, 1,44 Mo et 2,88 Mo, et que <a href="http://www.toms.net/rb" target="_top">tomsrtbt</a> utilise une disquette de 1,7 Mo. La bonne nouvelle, c'est que vous pouvez obtenir une version en 2,88 Mo, <code class="filename">tomsrtbt-2.0.103.ElTorito.288.img</code> , des mêmes miroirs que là où vous vous procurez l'image pour disquette. Placez une <span class="emphasis"><em>copie</em></span> <sup>[<a href="#ftn.N103C1" name="N103C1">1</a>]</sup> dans le répertoire racine des fichiers de sauvegarde. Puis, utilisez l'option -b de la commande <span><strong class="command">mkisofs</strong></span> pour spécifier que <code class="filename">tomsrtbt-2.0.103.ElTorito.288.img</code> est le fichier de l'image d'amorçage.</p><p> Le seul point noir de ce processus est que beaucoup de vieux BIOS ne supportent pas les images de disquette de 2,88 Mo sur CDROM. Beaucoup de ceux-ci s'amorceront avec une disquette <a href="http://www.toms.net/rb" target="_top">tomsrtbt</a>. </p><p> On peut aussi utiliser <a href="http://syslinux.zytor.com/" target="_top">Syslinux</a>. Il n'est pas dépendant de l'image d'une disquette et vous pouvez construire votre propre CD avec un certain nombre d'outils tels que <a href="http://www.toms.net/rb" target="_top">tomsrtbt</a>.</p><p> Il vous faudra peut-être ajuster les options du BIOS pour pouvoir amorcer sur le lecteur de CDROM.</p><p><span class="emphasis"><em>Testez</em></span> vos CDROM sur le lecteur que vous utiliserez pour la restauration. S'il se trouve que vous devez modifier les scripts, vous pouvez les copier dans <code class="filename">/tmp</code>, un disque en mémoire vive sous <a href="http://www.toms.net/rb" target="_top">tomsrtbt</a>, et les y éditer. Les scripts s'exécuteront à cet emplacement. Un disque en MEV étant volatil par nature, enregistrez vos changements avant de réamorcer !</p></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="N103EF"></a>4.1.3. Disques ZIP multiples</h4></div></div></div><p> En séparant les deux premiers scripts de la première étape, <a href="ar01s11.html#restore.metadata" title="11.1.6. restore.metadata"><code class="filename">restore.metadata</code></a> et <a href="ar01s11.html#save.metadata" title="11.1.5. save.metadata"><code class="filename">save.metadata</code></a>, vous pouvez répartir les méta données de la première étape sur plusieurs disques ZIP.</p></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="N10401"></a>4.1.4. Exclusions de l'enregistrement de la première étape</h4></div></div></div><p> Lors de la première étape, il est parfois nécessaire de compresser quelques méga-octets de données, particulièrement lorsque vous atteignez les limites de votre disque ZIP. La fonction <span><strong class="command">crunch</strong></span> du script <a href="ar01s11.html#save.metadata" title="11.1.5. save.metadata"><code class="filename">save.metadata</code></a> accepte de nombreux paramètres pour alimenter la commande <span><strong class="command">tar</strong></span>. Elle accepte aussi le paramètre <span><strong class="command">--exclude</strong></span>. Ainsi, par exemple, vous pouvez exclure les répertoires <code class="filename">samba</code> et <code class="filename">X11</code> situés dans <code class="filename">/etc</code> de cette façon :</p><pre class="programlisting"> crunch etc etc --exclude etc/samba --exclude etc/X11 </pre><p> Pourquoi ces deux-là ? Parce qu'ils consomment beaucoup d'espace disque et que nous n'en avons pas besoin pour l'amorçage. </p><p> Si vous possédez un nombre important de noyaux, vous pouvez éliminer les modules de tous les noyaux sur lesquels vous n'amorcerez pas. vérifiez votre <code class="filename">lilo.conf</code> ou <code class="filename">grub.conf</code> pour connaître le noyau que vous utiliserez, puis vérifiez <code class="filename">/lib/modules</code> pour connaître les répertoires des modules que vous pouvez exclure.</p><p> Où trouver d'autres bons candidats à l'exclusion ? Listez les répertoires cible avec la commande <span><strong class="command">ls -alSr</strong></span> pour les fichiers individuels, et avec la commande <span><strong class="command">du | sort -n</strong></span> pour les répertoires.</p><p> Une autre façon (probablement plus nette), d'exclure les répertoires est d'écrire la liste complète des répertoires dans un fichier puis d'y faire référence via l'option tar <code class="filename">--exclude-from=FILENAME</code>.</p></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="initrd"></a>4.1.5. Initrd</h4></div></div></div><p> Si votre système utilise un disque MEV pour initialiser, ou initrd pour amorcer, assurez-vous que <a href="ar01s11.html#restore.metadata" title="11.1.6. restore.metadata"><code class="filename">restore.metadata</code></a> crée le répertoire <code class="filename">/initrd</code>. La façon la plus simple de le faire est de s'assurer qu'ils figurent dans la liste des répertoires utilisés dans la boucle de création des répertoires (vers la fin).</p><p> Votre système utilise probablement initrd s'il démarre sur un disque SCSI ou si sa racine est sur une partition ext3fs. Vérifiez dans <code class="filename">/etc/lilo.conf</code> s'il appelle un tel script.</p></div></div><div class="footnotes"><br><hr align="left" width="100"><div class="footnote"><p><sup>[<a href="#N103C1" name="ftn.N103C1">1</a>] </sup> Je fais ressortir copie parce que <span><strong class="command">mkisofs</strong></span> détruira le fichier dans le répertoire où il fabrique l'image ISO. </p></div></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s03.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s05.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">3. Préparation </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> 5. Première étape de restauration</td></tr></table></div></body></html>