web-dev-qa-db-fra.com

Comment déplacer les partitions de démarrage et les partitions racine vers un autre lecteur

J'ai deux lecteurs sur mon ordinateur qui ont la configuration suivante:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

Malheureusement, le lecteur 2 semble mourir, car essayer d’écrire me donne des erreurs, et vérifier les paramètres SMART montre un triste état des lieux.

Il me reste beaucoup d’espace sur le lecteur 1; par conséquent, je voudrais y déplacer les partitions/et/boot, supprimer le lecteur 2 du système, remplacer le lecteur 2 par un nouveau lecteur, puis inverser le processus.

J'imagine que j'ai besoin de mettre à jour grub et de déplacer certaines choses, mais je suis assez perplexe sur la façon de s'y prendre. Puisqu'il s'agit de mon ordinateur principal, je veux faire attention à ne pas gâcher les choses pour que je ne puisse pas démarrer.

27
mlissner

Ma solution finale à ceci a été une combinaison de plusieurs techniques:

  1. J'ai connecté le lecteur mourant et son remplacement à l'ordinateur simultanément.
  2. Le nouveau disque était plus petit que l'ancien, j'ai donc réduit la taille des partitions à l'aide de GParted.
  3. Après cela, j'ai copié les partitions sur l'ancien disque et les ai collées sur le nouveau (en utilisant également GParted).
  4. Ensuite, j'ai ajouté l'indicateur de démarrage à la partition correcte sur le nouveau lecteur, de sorte qu'il s'agissait en réalité d'un miroir de l'ancien lecteur.

Tout cela a bien fonctionné, mais je devais mettre à jour grub2 en suivant les instructions ici .

Après tout cela, les choses semblent fonctionner.

4
mlissner

Vous aurez besoin de démarrer à partir d'un cd live. Ajoutez les partitions correspondantes sur le disque 1, copiez tout le contenu, puis utilisez Sudo blkid pour obtenir l'UUID de chaque partition. Sur le nouveau/du disque 1, éditez le/etc/fstab pour utiliser les nouveaux UUID que vous venez de rechercher.

La mise à jour de GRUB dépend de GRUB1 ou GRUB2. Si GRUB1, vous devez modifier /boot/grub/device.map

Si GRUB2, je pense que vous devez monter vos partitions comme elles le seraient dans une situation réelle. Par exemple:

Sudo mkdir /media/root
Sudo mount /dev/sda1 /media/root
Sudo mount /dev/sda2 /media/root/boot
Sudo mount /dev/sda3 /media/root/home

(Remplir, quelles que soient les partitions que vous avez copiées, bien sûr)

Ensuite, liez mount/proc et/dev dans le répertoire/media/root:

Sudo mount -B /proc /media/root/proc
Sudo mount -B /dev /media/root/dev
Sudo mount -B /sys /media/root/sys

Maintenant, chrootez dans le lecteur pour pouvoir forcer GRUB à se mettre à jour selon la nouvelle présentation:

Sudo chroot /media/root
Sudo update-grub

La deuxième commande formulera une plainte (j'oublie ce que c'est ...), mais vous pouvez l'ignorer.

Testez-le en supprimant le mauvais lecteur. Si cela ne fonctionne pas, le mauvais disque devrait toujours pouvoir démarrer le système, mais je crois que ce sont toutes les étapes nécessaires.

29
maco

Si vous remplacez immédiatement le lecteur, vous pouvez utiliser dd (essayé sur mon serveur il y a quelques mois et cela a fonctionné à merveille).

Vous aurez également besoin d’un CD de démarrage.

  1. Démarrer le CD de démarrage
  2. Ne monter que le lecteur 1
  3. Exécutez dd if=/dev/sdb1 of=/media/drive1/backuproot.img - sdb1 étant votre partition racine (/). Ceci sauvegardera toute la partition dans un fichier.
    • idem pour /boot
  4. Éteindre, remplacer le disque, allumer
  5. Exécutez dd if=/media/drive1/backuproot.img of=/dev/sdb1 - écrivez-le.
    • idem pour /boot

Ce qui précède créera 2 partitions avec exactement la même taille qu’avant. Vous aurez peut-être besoin d'ajuster la bouffée (consultez la publication macos).

Si vous voulez redimensionner vos partitions (comme je l'ai fait):

  1. Créez 2 partitions sur le nouveau disque (pour / et /boot; dimensionner ce que vous voulez)
  2. Montez l'image de sauvegarde: mount /media/drive1/backuproot.img /media/backuproot/
  3. Montez la partition / vide: mount /dev/sdb1 /media/sdb1/
  4. Copiez son contenu dans la nouvelle partition (je ne suis pas sûr de cette commande, il est vraiment important de préserver la propriété, cp -R ne le fera pas!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • idem pour /boot/

Cela devrait le faire.

5
sBlatt