On Friday 29 August 2003 13:44, Bernard Lambey wrote:
> Ton �tude est EXTREMEMENT INT�RESSANTE!
> Car qui de nous ne s'est pas trouv� un jour en face du
> transfert � r�aliser d'un disque sur un autre?...
> Donc tu ne feras que des heureux en publiant tes r�sultats
> s'ils sont positifs; bravo pour l'id�e: je suis client!...
>
> Bernard L.
> ���������������������������������������������������������������������������

Comme promis, je vous fait part de mes r�sultats.
Apr�s plusieurs essais (rsync, mirrordir, tar, cp), je pense que je tiens une 
solution toute simple au probl�me de "clonage" de disques.

Avec 2 disques identiques j'aurais tout simplement utilis� la commande dd pour 
obtenir une r�plique exacte du disque source avec la commande (sauf erreur de 
ma part) :
        # dd if=/dev/hda of=/dev/hdc
Mais comme mon but �tait de remplacer un petit disque par un plus gros, et de 
changer la taille et le nombre de partitions, dd ne convenait pas. 

Dans la solution que j'ai adopt�e pour copier le disque d'origine (hd0) sur le 
nouveau disque (hd1) il y a 3 �tapes :
1 - copie des partitions et r�pertoires de hd0 vers hd1 � l'aide de la 
commande :
        cp -a
2 - modification du fichier de configuration /etc/fstab
3 - modification du boot (grub ou lilo)

Ce qui donne avec un peu plus de d�tails :

1 - copie des partitions et r�pertoires de hd0 vers hd1 � l'aide de la 
commande cp -a
----------------------------------------------------------------------------------------------------
- Connecter le nouveau disque (hd1)
- Lancer Linux (MDK)
- Avec diskdrake ou au moyen des outils en ligne de commande (fdisk ou cfdisk, 
mkfs) cr�er sur hd1 les partitions d�sir�es et les formater 
- Red�marrer l'ordinateur avec un Linux sur disquette ou CD : j'ai utilis� 
tomsrtbt (http://www.toms.net/rb/), mais tout autre Linux sur disquette ou CD 
doit convenir, par exemple Knoppix (http://knoppixfr.tuxfamily.org/), ou 
encore le CD n�1 d'installation de MDK : il suffit qu'il contienne la 
commande cp
- Avec la commande cp -a, copier les partitions et r�pertoires de hd0 vers 
leur emplacement pr�vu sur hd1

Quelques questions que vous vous posez peut-�tre:
* Pourquoi utiliser un Linux sur disquette ou CD ?
C'est pour obtenir une copie de ce qui est r�ellement sur disque et non pas de 
ce que Linux y met ou veut bien laisser copier lorsqu'il fonctionne. Par 
exemple /proc contient une s�rie de fichiers qui n'existent qu'en RAM ; il 
n'y a rien sur le disque : /proc n'est qu'un point de montage pour l'acc�s � 
une partie de la RAM. 
* Pourquoi utiliser cp plut�t que mirrordir ou rsync plus pratiques ?
C'est parce que cp se trouve dans toutes distributions Linux ce qui n'est pas 
le cas des autres commandes (pas de rsync, mirrordir ... dans tomsrtbt).

2 - modification du fichier de configuration /etc/fstab
---------------------------------------------------------------------------
- Rebooter sous MDK (ce n'est pas indispensable, mais l'interface est plus 
conviviale que celle d'un Linux sur disquette)
- Mettre � jour le fichier /etc/fstab sur hd1

3 - modification du boot (grub ou lilo)
-----------------------------------------------------
- Mettre � jour le fichier de configuration du programme de boot sur hd0 
(et/ou sur hd1 si par la suite on veut d�marrer directement � partir de hd1)
Dans le cas de GRUB, le fichier � modifier est /boot/grub/menu.lst.
Dans le cas de  LILO (de m�moire, je n'ai pas test�, �a fait des lustres que 
je n'utilise plus lilo !) modifier /etc/lilo.conf et ex�cuter la commande 
"/sbin/lilo" avec les options -b bootdev et -C config-file pour indiquer 
d'une part le disque sur lequel installer le boot et d'autre part le fichier 
de configuration que l'on vient de modifier.

C'est tout. Au red�marrage le menu de grub ou de lilo appara�t et permet de 
booter le syst�me copi� sur hd1.

Et voici ce que j'ai r�alis� concr�tement, les vrais d�butants comprendront 
peut-�tre mieux ce qu'il faut faire :

J'ai un PC qui tourne sur MDK9.1. J'utilise l'environnement graphique KDE. Le 
disque dur d'origine (hd0) a 3 partitions :
- hda1          /
- hda2          swap
- hda3          home
Il devient trop petit (3 Go). J'ai r�cup�r� un disque de 20 Go. Apr�s montage 
dans le PC, ce 2� disque est vu comme hdc.
Je d�sire partitionner le 2� disque dur (hd1) en :
- hdc1          /
- hdc2          swap
- hdc3          usr
- hdc5          var
- hdc6          home

1 - Avec diskdrake, partitionner le nouveau disque (hd1) et formater les 
partitions
2 - Red�marrer Linux � partir d'une disquette tomsrtbt. Se "loger" en "root" 
avec le mot de passe par d�faut "xxxx"
3 - Cr�er les points de montage pour le disque source et le disque destination
        # cd /mnt
        # mkdir source
        # mkdir dest
        # cd /

4 - Monter les disques source  (hda) et destination  (hdc) et copier le 
r�pertoire racine
        # mount /dev/hda1 /mnt/source
        # mount /dev/hdc1 /mnt/dest
        # cp -a /mnt/source/* /mnt/dest
        # umount /mnt/dest

5 - La m�me chose pour /usr
        # mount /dev/hdc3 /mnt/dest
        # cp -a /mnt/source/usr/* /mnt/dest
        # umount /mnt/dest

6 - La m�me chose pour /var
        # mount /dev/hdc5 /mnt/dest
        # cp -a /mnt/source/var/* /mnt/dest
        # umount /mnt/dest

7 - La m�me chose pour /home
        # umount /mnt/source
        # mount /dev/hda3 /mnt/source
        # mount /dev/hdc6 /mnt/dest
        # cp -a /mnt/source/* /mnt/dest
        # umount /mnt/dest
        # umount /mnt/source
        # reboot
Sortir la disquette tomsrtbt

7 - Red�marrer sous MDK

8 - Supprimer de hdc1 non pas les r�pertoires /usr, /var et /home mais leur 
CONTENU qui est maintenant sur les partitions respectivement hdc3, hdc5 et 
hdc6
        # mount /dev/hdc1 /mnt/dest
puis sous konqueror supprimer le CONTENU de /usr, /var et /home
(NB : la commande
# rm -rf nom_repertoire/*
efface bien le contenu du r�pertoire nom_repertoire, mais pas les fichiers 
cach�s ! Si quelqu'un sait comment faire en ligne de commande, �a 
m'int�resse)

9 - Mettre � jour le fichier /etc/fstab du nouveau disque
Remplacer :
        /dev/hda1 / ext3 defaults 1 1
        /dev/hda2 swap swap defaults 0 0
        /dev/hda3 /home ext3 defaults 1 2
par :
        /dev/hdc1 / ext3 defaults 1 1
        /dev/hdc2 swap swap defaults 0 0
        /dev/hdc3 /usr ext3 defaults 1 2
        /dev/hdc5 /var ext3 defaults 1 2
        /dev/hdc6 /home ext3 defaults 1 2

10 - Mettre � jour le menu de boot de grub (/boot/grub/menu.lst)
pour faire appara�tre l'option de boot du syst�me Linux install� maintenant  
hd1

NB : pour le moment hd0 est toujours en place. On peut donc utiliser son "boot 
device" ; il suffit d'ouvrir le fichier menu.lst qui se trouve sur hda1 :
        # mount /dev/hda1 /mnt/source
        # kwrite /mnt/source/boot/grub/menu.lst

et de le modifier : j'ai rajout�, juste en dessous de "default 0" (pour que le 
PC d�marre par d�faut sur MDK qui est sur hd1) :

        title linux dd 20 Go
        kernel (hd1,0)/boot/vmlinuz root=/dev/hdc1 quiet devfs=mount acpi=off vga=791
        initrd (hd1,0)/boot/initrd.img

Notez vga=791 : ce n'est pas indispensable, mais �a permet de bien mieux voir 
les messages (d'erreurs �ventuelles) au d�marrage du syst�me.

11 - Rebooter, c'est fini et la copie de MDK fonctionne apparemment 
correctement : c'est � partir de ce PC r�install� (myrte.u-strasbg.fr) que je 
vous �crit :-)

Un petit probl�me est que la commande cp, au contraire des commandes rsync et 
mirrordir n'a pas d'option exclude-from. Si quelqu'un sait comment �viter de 
copier les r�pertoires inutiles avec la commande cp (�a prend du temps et il 
faut ensuite les effacer, voir points 4 et 8 ci-dessus), �a pourrait �tre 
int�ressant.

Bon "clonage"

Jean-Claude



Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";.

Foire Aux Questions de la liste : http://mdk.mondelinux.org

Répondre à