Table des matières
Il y a une section sur GRUB que je ne sais pas compléter car je n'utilise pas ce boot loader
Introduction
Ce document explique comment copier le répertoire racine d'une distribution Linux fonctionnelle pour la reproduire sur un nouveau HD. Les buts sont :1) Changer le HD d'une machine sans tout devoir réinstaller
2) Graver sur un DVD une copie de sa config en cas de pépin (on peut aussi penser provisoirement à une clé USB de 4 ou 8 go)
3) Cloner pour ses amis une install Linux MAO en un temps record avec tout déjà bien configuré et optimisé
Attention: pour cette dernière option installez au préalable un noyau Linux qui corresponde à la machine de destination sinon vous ne pourrez pas booter. De plus il ne sera pas possible de passer d'une architecture 64 vers 32bit. Prudence donc avant de vous lancer.
Principe
On passe énormément de temps à personnaliser sa version de Linux et il serait fort dommage de perdre tout cela pour une raison ou pour une autre. Au prix d'un ou deux DVD vierges il est possible périodiquement de graver son répertoire racine, on peut aussi le copier sur un autre HD et en peu de de temps retrouver une config prête à l'emploi moyennant quelques petites manipulations.La difficulté réside dans deux points particuliers:
- certains répertoires "spéciaux" ne contiennent pas de vrais fichiers ou on un rôle particulier: C'est le cas par exemple du répertoire /proc qui est en fait une interface de communication avec le system. Ce répertoire n'a pas raison d'être copié. Il y a aussi le répertoire /tmp qui sur certaines distributions est vidé automatiquement à chaque reboot de la machine.
- les fichiers contenus peuvent être des liens ou des fichiers cachés (nom commençant pat un .): il est impératif de conserver les liens (mais pas de les substituer par une copie du fichier), et il faut bien-sûr copier aussi les fichiers cachés.
Que contient le répertoire racine ?
Les répertoires normaux à copier directement
bin : des fichiers binaires basiques lors du bootsbin : pareil
lib : les bibliothèques de ces binaires
opt :
usr :
boot :
etc :
root :
var :
home :
autres: votre système peut contenir d'autres répertoires comme "/portage" sous gentoo par exemple, il faut les copier également.
Les répertoires spéciaux
proc : un système de fichier virtuel qui ne contient rien, les fichiers sont régénérés à chaque boot -> à laissersys: même chose que proc -> à laisser
dev : ce répertoire contient des liens vers les périphériques -> à copier ? (je pense qu'il est virtuel et donc généré au boot mais dans le doute, ça ne fait pas de mal de le copier. Je l'ai déjà fait sans pbm)
tmp : ce répertoire est vidé à chaque boot sur certaines distribs (mais pas sous gentoo) -> à laisser (à vous de faire le ménage avant)
lost+found : contient des fichiers récupérés lors de la réparation d'un système de fichiers corrompu, habituellement vide ->à laisser
media:
mnt: le répertoire contient les points de montages occasionnels comme un clé USB par exemple ou un cédérom. -> à copier (mais attention de ne pas avoir de systèmes de fichiers montés à ce moment là car sinon vous copierez son contenu en prime).
Tout les répertoires à laisser ont juste besoin d'être recréer avec mkdir sur la copie
Connaitre la taille des répertoires
Vous pouvez utiliser la commande du avec les options comme suit (cela peut prendre plusieurs minutes):# du -sh /*
6.2M /bin
19M /boot
180K /dev
9.1M /etc
556M /home
108M /lib
16K /lost+found
4.0K /media
36K /mnt
427M /opt
620M /portage
0 /proc
0 /RezList
136M /root
4.9M /sbin
0 /sys
185M /tmp
8.4G /usr
6.2M /bin
19M /boot
180K /dev
9.1M /etc
556M /home
108M /lib
16K /lost+found
4.0K /media
36K /mnt
427M /opt
620M /portage
0 /proc
0 /RezList
136M /root
4.9M /sbin
0 /sys
185M /tmp
8.4G /usr
Ou dans mc Command/Show directory sizes (même remarque)
Cloner les répertoires
Attention pour cette manip il faut être en root, et ce afin de pouvoir accéder à tous les fichiers et aussi reproduirent leurs attributs et leur appartenance. En fonction de votre stratégie (copie sur HD ou DVD) vous pouvez utiliser différents logicielsCopier les répertoires avec Midnight Commander vers un autre HD
Il suffit d'utiliser mc en faisant bien attention sur certains options lors de la copie. Les options par défaut sont normalement les bonnes, mais voici une capture d'écran à tout hasard:L'option "preserve Attributes" est particulièrement importante car elle permet que les droits soient préservés. Les autres options doivent être décochées.
Utiliser K3b pour graver sur un DVD
K3b est plutôt sympathique pour graver rapidement une copie de son répertoire racine. A savoir:- Do you also want add hidden files ? (voulez vous aussi ajouter les fichiers cachés ?) OUI
- K3b est tombera souvent sur un lien symbolique, il faut répondre "Always add link" ce qui préservera les liens
- Do you alsa want to add system files (FIFO, sockets, device files, broken symlinks): OUI
Opérations pour réstaurer le système après la recopie
Nous avons vu comment copier/sauvegarder le système de fichiers constitutifs d'une installation Linux. A ce stade soit vous gardez au chaud votre copie soit vous décidez de la réactiver. Il est possible que vous ayez également cloné votre instal' sur un nouveau HD plus radide, il s'agit alors d'une "transplantation". Admettons que vous ayez copié votre instal' sur des partitions toutes fraiches, il vous reste quelques manipulations avant de pouvoir booter et retrouver votre environnement familier.Note: toutes les manips suivantes concernent bien la copie de la distribution Linux et non l'originale que vous utilisez actuellement, hein pas de blague
Note2: pour pouvoir faire ces manips il faut bien-sûr pouvoir "mounter" le système de fichiers, ce qui implique de disposer d'un Linux de secours fonctionnel, au besoin cela peut être un LiveCD.
Editer /etc/fstab
Ce fichier est essentiel car il dit sur quelles partitions physiques sont situées les répertoires.Editer xorg.conf
Ce fichier concerne la configuration de votre serveur X, il n'a pas besoin d'être édité si vous utilisez toujours la même machine, par contre si vous tentez de cloner votre distrib sur le PC d'un ami, il faudra bien sûr que ce fichier reflète les caractéristiques de la carte vidéo, de la souris et de l'écran de sa configuration.Le réseau
Si vous clonez un PC, il faut que la nouvelle machine ait sa propre adresse IP et un nom. Modifiez en fonction des distributions des fichiers tels que /etc/hosts, /etc/conf.d/hostname et /etc/conf.d/net sous Gentoo, /etc/network/interface (sous Debian).Editer le bootloader et le résincrire
A ce stade, le Linux cloné devrait être déjà utilisable mais il n'y a pas de boot loader, ou alors il est possible qu'il y en ait un (vous avez par exemple transvasé votre système d'une partition vers une autre au sein du même HD pour des raisons de réorganisation globale). Il faudra donc réinscrire le boot loader. Il a deux façon de procéder, soit vous effectuez cette manipulation depuis votre ancien système (si vous l'avez encore bien-sûr), soit vous utilisez un système de secours comme SystemRescueCD ou mieux l'ancien CD/DVD d'installation de votre distribution orignale.Il est alors en général possible de booter le Linux cloné comme suit:
linux root =/dev/hda1
hda1 ici doit être remplacé par le bonne emplacement de votre partition racine.
Si pour une raison ou pour une autre ca ne marche pas vous devez booter SystemRescueCD et vérifier les étapes précédentes.
LILO
Le fichier à modifier est /etc/lilo.conf pour refléter le système de destination. Rien à faire si c'est juste un backup.Les section importantes:
# MBR to install LILO to: boot = /dev/hda map = /boot/.map
La ligne "boot=/dev/*" doit bien-sûr donner le bon disque dur.
Plus bas vous trouverez plusieurs sections pour les différents noyaux d'installer:
#RT_kernel - 2.6.23 image=/boot/bzImage root = /dev/hda2 label= Gentoo_RT23 read-only
La ligne "root=/dev/*" doit donner la bonne partition. Ceci dit il est possible de donner cet argument au boot dans la ligne de commande lorsqu'on choisi le noyau comme je l'indiquais plus haut.
Grub
booter sur la nouvelle partition
... à suivre