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

27

J'ai deux disques 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'y écrire me donne des erreurs, et vérifier les paramètres SMART montre une triste situation.

J'ai beaucoup d'espace sur le lecteur 1, donc ce que j'aimerais faire, c'est 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 je dois faire quelques mises à jour vers grub, et je dois déplacer certaines choses, mais je suis assez perplexe sur la façon de procéder exactement. Puisque c'est mon ordinateur principal, je veux faire attention à ne pas gâcher les choses afin que je ne puisse pas démarrer.

mlissner
la source
C'est exactement ce que je devais aussi faire. J'ai écrit un blog avec des instructions complètes sur la façon de déplacer la partition racine / vers / home.
Lucas

Réponses:

29

Vous devrez démarrer à partir d'un CD live. Ajoutez-leur des partitions sur le disque 1, copiez tout le contenu, puis utilisez sudo blkidpour obtenir l'UUID de chaque partition. Sur le nouveau / du disque 1, modifiez / etc / fstab pour utiliser les nouveaux UUID que vous venez de rechercher.

La mise à jour de GRUB varie selon qu'il s'agit 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 réelles que vous avez copiées, bien sûr)

Liez ensuite mount / proc et / dev dans / 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 disposition:

sudo chroot /media/root
sudo update-grub

La deuxième commande fera une plainte (j'oublie de quoi il s'agit ...), mais c'est correct d'ignorer.

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

maco
la source
3
Pour toute personne qui consulte ces informations ces jours-ci, cela ne s'applique pas aux configurations EFI. Vous devez monter /media/root/boot/efi, entre autres choses.
wjandrea
1
J'avais besoin d'un sudo grub-install /dev/sdaavant lesudo update-grub
William Mortada
5

Si vous remplacez le lecteur tout de suite, vous pouvez l'utiliser dd(essayé sur mon serveur il y a quelques mois, et cela a fonctionné comme un charme).

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

  1. Démarrer le CD de démarrage
  2. Montez uniquement le lecteur 1
  3. Exécutez dd if=/dev/sdb1 of=/media/drive1/backuproot.img- sdb1 étant votre /partition root ( ). Cela enregistrera la partition entière dans un fichier.
    • pareil pour /boot
  4. Éteignez, remplacez le disque, allumez
  5. Exécuter dd if=/media/drive1/backuproot.img of=/dev/sdb1- réécrire.
    • pareil pour /boot

Ce qui précède créera 2 partitions avec la même taille exacte qu'avant. Vous devrez peut-être ajuster grub (consultez la publication macos).

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

  1. Créez 2 partitions sur le nouveau disque (pour /et /boot; dimensionnez 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 conserver la propriété, cp -Rje ne le ferai pas!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • pareil pour /boot/

Cela devrait le faire.

sBlatt
la source
Il s'avère que le nouveau disque "40 Go" que j'essaie d'installer est plus petit que mon disque "40 Go" actuel. Je les ai tous les deux connectés et je suis démarré dans un liveCD. Existe-t-il un moyen facile de simplement passer de l'ancien au nouveau, et de l'appeler un fait accompli?
mlissner
En fait, j'ai réglé cette question. La partition qui était trop grande était une partition ext4, j'ai donc démarré un liveCD et utilisé gparted pour le rétrécir un peu.
mlissner
4

Ma solution finale à ceci était une combinaison d'un certain nombre de 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 les partitions sur l'ancien en utilisant 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, il s'agissait donc en fait d'un miroir de l'ancien lecteur.

Tout a bien fonctionné, mais j'avais besoin de mettre à jour grub2 conformément aux instructions ici .

Après tout cela, les choses semblent fonctionner.

mlissner
la source