Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transférer un système sur DD externe

32 réponses
Avatar
docanski
Bonjour,

Le DD d'un de mes PC comporte de plus en plus de secteurs défectueux,
vieillesse oblige : c'est un antique 60 Go qui tourne à 5400 tours.
Afin d'en récupérer la totalité, à savoir le système + home en ext3 + un
espace d'échange en NTFS et éviter de tout devoir réinstaller (il
comporte 3 bureaux, ça fait beaucoup), j'aimerais savoir quelle est la
méthode la plus sûre pour faire ce transfert sur un DD externe de 160
Go. Ce dernier est donc destiné à remplacer le premier une fois
l'opération effectuée.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/

10 réponses

1 2 3 4
Avatar
Doug713705
Le 10-12-2012, Francois Lafont nous expliquait dans
fr.comp.os.linux.configuration :

# mount /proc
# mount /sys



S'ils sont déclarés dans le fstab oui,



Alors, en effet ça semble marcher pour les deux. En revanche, /proc est
bien dans mon fstab mais pas /sys. Pourtant « mount /sys » a quand même
fonctionné.

sinon :
mount -t proc proc /proc



Ok.

mount -t sys sysfs /sys



Sur ma Debian (virtuelle), ça semble être :

mount -t sysfs sysfs /sys



Oui, j'ai pu faire une erreur, j'ai écrit ça de mémoire et cete dernière
commence à avouer ses limites ;-)


Tu lances ton gestionnaire
d'amorçage pour qu'il applique les nouveaux paramètres et tu rebootes.



Et là je ne vois pas du tout ?



C'est l'équivalent d'update-grub.



En fait, après un petit essai en machine virtuelle, il semble que pour
l'installation de grub2, après chrootage, ça soit :

update-grub
grub-install /dev/xxx

où /dev/xxx représente le « nouveau » disque.



Oui, ça a l'air d'être correct.

Merci encore pour ton aide Doug. Cette manip me servira sûrement un jour.



De rien.

--
Doug - Linux user #307925 - Slackware64 roulaize ;-)
Without freedom of choice there is no creativity.
-- Kirk, "The return of the Archons", stardate 3157.4
Avatar
Benoit Izac
Bonjour,

le 11/12/2012 à 00:48, Francois Lafont a écrit dans le message
<50c674c4$0$16502$ :

Après ceci fait (suite à un chroot), j'ai « l'ancien » disque qui
possède Grub2 et le « nouveau » aussi.

Comment faire pour désinstaller Grub2 de l'ancien disque sans pour
autant le repartitionner ?



Sans savoir dans quel but tu veux faire ça :

dd if=/dev/zero of=/dev/sd_ bsD6 count=1

--
Benoit Izac
Avatar
Benoit Izac
Bonjour,

le 11/12/2012 à 20:52, Francois Lafont a écrit dans le message
<50c78efc$0$16493$ :

Après ceci fait (suite à un chroot), j'ai « l'ancien » disque qui
possède Grub2 et le « nouveau » aussi.

Comment faire pour désinstaller Grub2 de l'ancien disque sans pour
autant le repartitionner ?



Sans savoir dans quel but tu veux faire ça :

dd if=/dev/zero of=/dev/sd_ bsD6 count=1



Merci pour la réponse, effectivement j'ai pu voir cette commande sur le
Web et ça semble marcher.

Sinon, le but était juste de désinstaller Grub2 sur un disque car il
n'est plus utile au démarrage, c'est tout.

Je rappelle le contexte du fil. Pour faire simple, on part d'une machine
avec juste un disque muni d'une seule partition racine /. Ce disque je
l'appelle « l'ancien ». Doug nous a indiqué dans un message précédent la
marche à suivre pour tout simplement copier sur un « nouveau » disque
tout ce qu'il y a sur l'ancien, afin que l'on l'on puisse démarrer sur
le nouveau disque comme si de rien n'était (ce qui inclut l'installation
de Grub2 sur le nouveau disque).

Et bien ensuite, dans le prolongement de cette manip, je me suis posé la
question de comment désinstaller Grub2 sur l'ancien disque. En effet,
sur une machine virtuelle de test, je me suis fais couillonner (leurrer)
car lorsque j'ai démarré la VM après avoir fait le transfert ancien -->
nouveau, la VM a bien redémarré nickel, sauf qu'en fait le redémarrage
s'est fait sur l'ancien disque qui contenait encore Grub2 et non sur le
nouveau (mais je ne m'en suis pas aperçu tout de suite étant donné que
les deux disques étaient quasi identiques). Sur la VM j'ai dû mettre le
nouveau disque sur le port SATA 0 et mettre l'ancien sur le port SATA 1
(j'utilise virtualbox). Ensuite, j'ai bien pu booter sur le nouveau
disque (et ça a bien marché ce qui prouve au passage que la manip
proposée par Doug fonctionne très bien). Mais du coup, je me suis dis
que si j'avais supprimé Grub2 de l'ancien disque avant de rebooter, au
moins je ne me serais pas fait leurrer. :-)



Donc dans ton cas dd est adapté car ça efface simplement le programme de
démarrage qui est contenu dans les 446 octets du disque (chercher mbr
sur wikipedia pour plus de détails). Sinon, tu aurais aussi pu effacer
le répertoire /boot/grub pour empêcher le démarrage sur ce disque sans
toucher au MBR ; c'est légèrement différent mais le résultat final est
le même : impossible de lancer le système présent sur le disque.

--
Benoit Izac
Avatar
Nicolas George
Doug713705 , dans le message
, a écrit :
Non, puisque /proc et /sys sont sur la même branche du système de
fichiers. Ils sont virtuels mais ils sont considérés sur la même
branche. Enfin, il me semble.



Tu te trompes, ce sont bien des filessytems séparés. Faire le contraire
serait même assez difficile.
Avatar
Doug713705
Le 11-12-2012, Francois Lafont nous expliquait dans
fr.comp.os.linux.configuration :

Il y a quelques années, j'avais remis à zéro ces deux octets à l'aide
d'un éditeur hexadécimal. Pour cela, avec dd j'avais importé les 512
octets dans un fichier, opéré la modif du fichier à la main, et enfin
recopié le fichier au début du disque.
On doit pouvoir faire plus direct avec les options skip et seek de dd,
je te laisse le plaisir de découvrir la bonne commande. ;-)



Ok, merci pour les infos. Ceci étant j'ai l'impression que la manip n'a
pas d'intérêt.

Si je voulais faire cela, c'était pour m'épargner (juste pour la beauté
du sport hein) le changement de port SATA.



Une autre solution est de tout simplement configurer grub (celui
installé sur l'ancien disque) pour qu'il trouve sa racine sur le
nouveau disque. Ainsi tu bootes (la phase d'amorçage) toujours sur le
disque 1 alors que le système qui sera chargé sera bien celui du
deuxième disque.

Simple, efficace, ne demande aucun démontage.

Par contre, le jour où tu décides de virer le disque, il faudra penser à
installer grub sur le deuxième disque.

--
Doug - Linux user #307925 - Slackware64 roulaize ;-)
Without freedom of choice there is no creativity.
-- Kirk, "The return of the Archons", stardate 3157.4
Avatar
Doug713705
Le 12-12-2012, Nicolas George nous expliquait dans
fr.comp.os.linux.configuration :

, a écrit :
Non, puisque /proc et /sys sont sur la même branche du système de
fichiers. Ils sont virtuels mais ils sont considérés sur la même
branche. Enfin, il me semble.



Tu te trompes, ce sont bien des filessytems séparés. Faire le contraire
serait même assez difficile.



Pourtant, sauf erreur (ce qui est grandement possible), sans l'option
--exclude, /proc et /sys sont bien archivés.

Va falloir que je vérifie ça.

--
Doug - Linux user #307925 - Slackware64 roulaize ;-)
Without freedom of choice there is no creativity.
-- Kirk, "The return of the Archons", stardate 3157.4
Avatar
Benoit Izac
Bonjour,

le 11/12/2012 à 22:52, Francois Lafont a écrit dans le message
<50c7ab33$0$1837$ :

Mais le souci, c'est que il ne faut pas toucher non plus à la table des
partitions primaires du coup les octets à remettre à 0 ne forment pas
une zone contiguë et la commande dd ne convient pas.

Est-ce que vous pensez que la manip ci-dessous a une chance de marcher ?
(Je suppose que le disque est /dev/sda.)

# On remet à 0 tout ce qui se trouve avant la table des partitions.
dd if=/dev/zero of=/dev/sda bsD6 count=1

# On crée un fichier qui contient l'équivalent du MBR
# avec un nombre magique remis à 0.
dd if=/dev/sda of=boot-sans-nombre-magique bsQ0 count=1
dd f=/dev/zero of=nombre-magique bs=2 count=1
cat boot-sans-nombre-magique nombre-magique > boot.mbr

# Et enfin.
dd if=boot.mbr of=/dev/sda bsQ2 count=1

Peut-être qu'il a plus simple aussi ?



Oui, cherche « seek » dans la page de manuel de dd(1).

--
Benoit Izac
Avatar
Francois Lafont
Le 12/12/2012 20:28, Doug713705 a écrit :

Il y a quelques années, j'avais remis à zéro ces deux octets à l'aide
d'un éditeur hexadécimal. Pour cela, avec dd j'avais importé les 512
octets dans un fichier, opéré la modif du fichier à la main, et enfin
recopié le fichier au début du disque.
On doit pouvoir faire plus direct avec les options skip et seek de dd,
je te laisse le plaisir de découvrir la bonne commande. ;-)



Ok, merci pour les infos. Ceci étant j'ai l'impression que la manip n'a
pas d'intérêt.

Si je voulais faire cela, c'était pour m'épargner (juste pour la beauté
du sport hein) le changement de port SATA.



Une autre solution est de tout simplement configurer grub (celui
installé sur l'ancien disque) pour qu'il trouve sa racine sur le
nouveau disque. Ainsi tu bootes (la phase d'amorçage) toujours sur le
disque 1 alors que le système qui sera chargé sera bien celui du
deuxième disque.

Simple, efficace, ne demande aucun démontage.



Ah oui, effectivement. Donc si je reprends ta manip, juste après le
chroot sur le nouveau disque, il suffit de faire :

update-grub
grub-install /dev/xxx

où cette fois-ci /dev/xxx correspond à l'ancien disque et non au nouveau.

Par contre, le jour où tu décides de virer le disque, il faudra penser à
installer grub sur le deuxième disque.



Voilà, mais au moment du chroot, je ne m'embête et je fais aussi dans la
foulée :

grub-install /dev/yyy

avec /dev/yyy = le nouveau disque.

Comme ça j'ai Grub2 sur les deux disques (enfin sur le MBR des deux
disques j'ai une route qui ira charger le Grub2 qui se trouve sur le
nouveau disque) et le jour où l'ancien finit à à la poubelle, ça
démarrera quand même sur le nouveau.

Merci.

--
François Lafont
Avatar
Benoit Izac
Bonjour,

le 13/12/2012 à 13:38, geo cherchetout a écrit dans le message
<50c9cc57$0$9024$ :

Le 13/12/2012 00:08, *Francois Lafont* a écrit fort à propos :

Ok, merci bien. Effectivement seek semble être la solution ad hoc, même
si la solution de "geo cherchetout" me semble très bien aussi.



Non, « ma » solution est encore plus lourde que la tienne avec cat et
j'en ai honte. Comment faire avec seek ? Je n'ai pas réussi...



# met à zéro les 446 premiers octets
dd if=/dev/zero of=/dev/sd_ bsD6 count=1
# met à zéro les 511ème et 512ème octets
dd if=/dev/zero of=/dev/sd_ bs=1 seekQ0 count=2


--
Benoit Izac
Avatar
geo cherchetout
Le 13/12/2012 19:21, *Benoit Izac* a écrit fort à propos :

# met à zéro les 446 premiers octets
dd if=/dev/zero of=/dev/sd_ bsD6 count=1
# met à zéro les 511ème et 512ème octets
dd if=/dev/zero of=/dev/sd_ bs=1 seekQ0 count=2



Quand c'est fait, ça paraît simple. Merci, ton exemple est plus didactique
que la page de man. :-)
1 2 3 4