Retrouvez cet article dans : Linux Pratique 40
Quand la nouvelle Mandriva, Fedora ou Ubuntu vient de paraître, quoi de plus normal que de l'essayer et de l'adopter ? Pour l'essayer, une partition libre fait l'affaire, mais quand on veut s'en servir " en production " à la place de l'ancienne, la situation devient délicate, car la réponse n'est pas toujours évidente. Cet article résulte d'une assez longue expérience que je voudrais partager avec vous. Mon propos est de vous aider à choisir une stratégie et à la mettre en œuvre sans crainte ni appréhension.
Analyser les partitions
C'est la première étape. Il faut avoir suffisamment de place pour installer une distribution récente. Dans le cas d'une utilisation personnelle, il est recommandé d'avoir au moins deux partitions, l'une dédiée au système et l'autre aux données personnelles. Certains vont plus loin en créant une petite partition /boot, d'autres pour /var ou /tmp. Ce sont des précautions très utiles pour un serveur, mais pour un usage individuel, ce n'est généralement pas nécessaire et ces répertoires seront inclus dans / (partition système). Pour connaître vos partitions, vous pouvez soit utiliser l'instruction df, soit utiliser un utilitaire graphique comme Diskdrake.

 Fig. 1 : L’outil de partitionnement Diskdrake
Voici un exemple :
[pierre@azkar ~]$ df Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur /dev/hda1 7,8G 3,6G 4,3G 46% / /dev/hda6 30G 18G 13G 59% /home /dev/hda7 116G 43G 73G 37% /aux
La partition /aux est une partition de données, son nom, totalement arbitraire, n'est pas forcément dans /mnt qui a été initialement conçu pour recevoir les montages temporaires.
Quelle taille donner à la partition système ?
Comme les répertoires /tmp et /var sont inclus dans la partition système, il faudra laisser de la place disponible dans cette partition. Sachant qu'une Mandriva 2006 occupe environ 2 Go pour une installation bureautique, 3,6 Go lorsque quelques outils de développement sont installés et qu'il faut compter 1 Go de place libre pour graver un CD ou travailler sur de grosses images avec Gimp, on peut en déduire qu'une partition racine de 3 à 5 Go est actuellement un minimum. Si vous devez créer une nouvelle partition sur un gros disque, soyez généreux et montez à 7 Go voire 10 Go pour être tranquille le plus longtemps possible. Prévoyez aussi 800 Mo de swap ou plus si vous voulez mettre votre machine en veille profonde (suspend to disk), car le contenu de sa mémoire sera écrit sur la partition de swap. On conseille alors de mettre 30% de swap de plus que de RAM.
Refaire le partitionnement
Si vous avez besoin de refaire le partitionnement, la sauvegarde du répertoire /home sera indispensable. Mais, dans tous les cas, les sauvegardes sont essentielles.
Sauvegardes
Sauver les fichiers de configuration
Les fichiers de configuration système sont tous dans /etc. Aussi, il suffit de sauvegarder ce répertoire pour ne rien oublier. Pour cela, il faut ouvrir une console en mode administrateur (root) et exécuter l'une des deux commandes afin de sauvegarder la configuration chez l'utilisateur pierre :
# cp -a /etc /home/pierre/
Si vous avez moins de place :
# tar cvfz /home/pierre/etc.tgz /etc
On pourrait faire un tri plus sélectif, mais les risques d'oubli sont grands et un fichier de 3600 ko n'est pas très encombrant !
Sauver les fichiers de données
Le répertoire /var peut contenir des données précieuses. Ce sont, par exemple, des fichiers utilisés par le serveur HTTP dans /var/www/ ou dans /var/lib/ comme la base de données Posgresql : /var/lib/pgsql/.
On utilisera le même principe de sauvegarde que pour /etc et ainsi tout ce que l'on veut conserver se trouvera dans /home.
Sauver /home
Si vous n'avez pas besoin de modifier cette partition, vous pouvez omettre cette étape. Mais êtes-vous certain de ne pas avoir besoin de sauvegarde ?
Si vous disposez d'un espace libre sur une autre machine accessible par nfs ou ftp ou une autre partition comme le /aux de mon disque dur, vous pouvez faire une copie exacte de votre répertoire personnel avec par exemple
# cp -a /home /aux/sauve/
Si vous avez moins de place :
# tar cvfz /aux/home.tgz /home
Ces deux solutions conservent les dates et tous les attributs des fichiers. Mais attention, en cas de copie par cp -a sur un disque FAT, les attributs ne peuvent pas être enregistrés, car le système de fichiers ne le permet pas.
Le plus sage est de faire aussi des copies de sauvegarde sur CD ou DVD afin d'en placer une dans le coffre de sa banque ou chez un ami sûr.
Prendre la bonne décision
Faire une mise à jour ?
La mise à jour fonctionne bien lorsque l'on fait des mises à jour régulières sans sauter d'étapes. Dans ce cas, ceux qui ont fait les logiciels auront pris en compte les changements et tout se passe généralement bien. Mais, quand on saute une étape, les risques de dysfonctionnement deviennent importants.
C'est pour cela que la mise à jour d'une Mandrake 10.1 vers Mandriva2006 ou Mandriva 2005 vers 2007 est déconseillée. Dans le cas d'une version plus ancienne, il vaut mieux ne pas y penser ! Dans ce cas, il faut choisir l'installation.
Si les partitions système n'ont pas besoin d'être modifiées et si votre système est à la version n-1, alors la mise à jour est une bonne solution, mais pas toujours la meilleure. Parfois, on se retrouve en présence de situations complexes, voire inextricables.
Si c'est pour réparer votre environnement graphique (KDE par exemple) que vous voulez réinstaller votre système, il vaut mieux le réparer très simplement de la manière suivante :
- fermez votre session graphique ([Alt]+[Backspace]), ouvrez un terminal en mode texte ([Alt]+[Ctrl]+[F2]) et connectez-vous sous votre login/password ;
- renommez votre arborescence. Pour KDEÂ :
mv .kde .kde2Â; - relancez votre session graphique ([Alt]+[F7]).
Il ne vous reste ensuite plus qu'à récupérer les fichiers intéressants comme indiqué plus loin dans le chapitre " Remettre en place d'anciens fichiers ".
Faire une installation ?
On peut toujours préférer cette solution. Elle a l'avantage de ne pas masquer certaines évolutions. En effet, certains logiciels vont continuer à utiliser les anciens fichiers de configuration et ne montreront pas les nouvelles fonctions ou la nouvelle ergonomie. C'est aussi le cas pour les fichiers de configuration personnels situés dans /home que nous mettrons à l'abri.
Installer la nouvelle distribution
Ce n'est pas notre propos de détailler cette opération ici. Juste un conseil, si vous installez une Mandriva, prenez le partitionnement personnalisé et évitez de formater d'autres partitions que celles qui doivent l'être. L'assistant Diskdrake inclus dans l'installateur est à mon avis le meilleur outil pour gérer les partitions, même si on veut installer une autre
distribution.
À la fin de l'installation, ne vous reconnectez pas sous votre nom d'utilisateur afin de ne pas altérer vos fichiers de configuration. Lorsque la machine redémarre, connectez-vous en mode single user appelé aussi failsafe par Lilo. Il y a d'autres solutions comme booter avec Init 3, mais dans tous les cas, il faut utiliser une console en mode administrateur (root). Pour les inconditionnels de la souris, on peut se connecter root en mode graphique, mais ce n'est pas vraiment plus facile !
Restaurer /home
Si la partition home a été reformatée, il faut la reconstituer à l'aide de sa sauvegarde. En se reconnectant root, on utilise selon le cas :
# cp -a /aux/sauve/* /home/ # tar xvfz /aux/home.tgz /home/
Attention, c'est parfois assez long !
Réaménager /home
On a donc mis à jour ou réinstallé la nouvelle distribution. C'est l'occasion de faire un grand ménage de printemps dans son home peuplé de dizaines, voire de centaines de fichiers de configuration. Certains sont devenus inutiles ou risquent de ne plus convenir, d'autres sont précieux. Alors, nous allons en faire le tri sans risquer d'en perdre un seul.
Déplacer les fichiers cachés
Solution 1
Considérons le cas de l'utilisateur pierre. Nous allons déplacer les anciens fichiers de configuration dans un nouveau répertoire.
# cd /home/pierre # mkdir old-conf # chown pierre:pierre old-conf
Essayer l'instruction :
# ls -a | grep "^\."|grep -v ".bash"|grep -v ".\./"|grep -v "\./"
Cette instruction a pour but d'afficher tous les répertoires et fichiers cachés sauf ceux qui contiennent Bash, le répertoire courant et le répertoire parent. On peut ajouter | grep -v ".Mail dans la liste afin de ne pas déplacer le courrier. Ca évitera de devoir le remettre en place.
Si le résultat est bon, rappeler la ligne, mettre "mv $(" devant et ") old-conf/" après. On obtient :
mv $(ls -a | grep "^\." | grep -v ".bash" |grep -v ".\./"|grep -v "\./") old-conf/
C'est fini, l'utilisateur pierre pourra se connecter normalement et tous les fichiers de configuration seront automatiquement reconstruits à neuf.
Il faut répéter l'opération pour chaque utilisateur.
Solution 2
Nous allons nous intéresser à l'utilisateur pierre.

C'est fini, tous les anciens fichiers et répertoires sont maintenant dans /home/pierre/pierre-old/ et l'utilisateur pourra les remettre en place à sa convenance.
Cette opération doit être répétée pour chaque utilisateur. Un script peut l'automatiser.
#!/bin/sh cd /home for f in paul thomas mathieu julie pierre do echo $f mv $f $f-old cp -a /etc/skel /home/$f chown -R $f:$f $f mv $f-old $f/ done
On peut améliorer ce script pour qu'il détecte automatiquement les utilisateurs. Chaque utilisateur retrouve tous ses anciens fichiers dans un répertoire nommé ancien.
#!/bin/sh # préparer le passage à une nouvelle version # chaque utilisateur a un environnement neuf # et retrouve absolument tous ses fichiers dans ~/ancien/ # on suppose que le nom de /home/toto correspond au user toto date cd home/ ls -1|while read d do if [ ! -d $d ]; then continue; fi n=`basename $d` echo $n g=`id -g $n` date > $n/ladate.$n.txt cp -a /etc/skel . chown -R $n:$g skel mv $n skel/ mv skel/$n skel/ancien mv skel $n done
Personnellement, j'ai une préférence pour cette solution, car elle oblige à faire un peu de rangement dans ses fichiers et répertoires.
Cette opération peut être faite à tout moment. Elle peut avantageusement être faite avant l'installation de la nouvelle distribution. La seule condition est qu'aucune session graphique ne soit active.
Remettre en place les anciens fichiers utiles
Pour les remettre en place le plus simple est de déplacer fichiers et répertoires et non de les copier. Cela a plusieurs avantages : on ne fait que déplacer des adresses, mais les fichiers par eux-mêmes ne bougent pas sur le disque. L'opération est très rapide et ils conservent toutes leurs propriétés. On peut faire cela avec Konqueror ou avec l'instruction mv dans une console. Si vous tenez plutôt à en faire une copie, utilisez l'instruction cp avec l'option -p ou -a afin de conserver les attributs et les droits des fichiers et des répertoires.
Voici une liste de fichiers que l'on peut remettre en place :

Bien entendu, il ne faut pas qu'un programme fonctionne quand on touche aux fichiers qu'il utilise.
Le résultat est généralement très décevant !
Reconstituer la configuration système
Nous voici arrivé à la dernière étape. Ce n'est pas forcément la plus difficile. En effet, la plupart des périphériques seront automatiquement et correctement réinstallés lors de la nouvelle installation.
Une attention particulière sera apportée à la configuration du réseau. Dans le cas des machines itinérantes, on utilise souvent Netprofile qui permet de changer instantanément les caractéristiques de connexion. On pourra recopier à l'identique l'ancienne arborescence /etc/netprofile avec la commande cp -a, car la configuration des réseaux ne subit que très peu d'évolutions d'une version à l'autre.
Certains fichiers devront être obligatoirement restaurés manuellement, comme /etc/ssh/* utilisé pour les connexions sécurisées, d'autres gagneront à être restaurés comme /etc/ntp/drift qui permet au serveur de temps de compenser la dérive de l'horloge et qui a obtenu une valeur très précise après des centaines d'heures de fonctionnement. On en profitera pour donner dans /etc/ntp.conf des serveurs optimisés comme :
server fr.pool.ntp.org.
Réparer les accidents
Les fichiers de configuration anciens ont été sauvegardés dans la première étape. Il est possible de retrouver des fichiers importants et de remettre les bons droits.
Conclusion
L'installation permet d'installer, paramétrer, vérifier et remettre sa machine en parfait état en une ou deux heures. Mettre à jour peut éventuellement être plus court, mais ce n'est jamais garanti.
Retrouvez cet article dans : Linux Pratique 40

