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