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.
Ma solution finale à ceci a été une combinaison de plusieurs techniques:
Tout cela a bien fonctionné, mais je devais mettre à jour grub2 en suivant les instructions ici .
Après tout cela, les choses semblent fonctionner.
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.
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.
dd if=/dev/sdb1 of=/media/drive1/backuproot.img
- sdb1 étant votre partition racine (/
). Ceci sauvegardera toute la partition dans un fichier. /boot
dd if=/media/drive1/backuproot.img of=/dev/sdb1
- écrivez-le. /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):
/
et /boot
; dimensionner ce que vous voulez)mount /media/drive1/backuproot.img /media/backuproot/
/
vide: mount /dev/sdb1 /media/sdb1/
cp -R
ne le fera pas!) cp -R --preserve=all /media/backuproot/* /media/sdb1
/boot/
Cela devrait le faire.