Déplacer l'installation vers un nouveau disque

10

J'ai actuellement un hd avec ces partitions:

/dev/sdb1    /
/dev/sdb2    swap
/dev/sdb3    /home

Je pense acheter un SSD pour ma /partition.

Maintenant ma question est: Est-il possible de déplacer / convertir ma configuration actuelle vers la nouvelle (deux disques, / home reste)? De préférence depuis le système en cours d'exécution?

Chris
la source

Réponses:

11

Je déconseille l'utilisation dd. Il ne fait qu'une copie stupide secteur par secteur, ce qui signifie qu'il échouera si la partition de destination est plus petite et gaspille beaucoup de temps à copier de l'espace libre, et si la partition de destination est plus grande, l'espace supplémentaire ne sera pas disponible jusqu'à ce que vous exécutiez resize2fspour étendre le système de fichiers.

Il est préférable de le faire à partir d'un CD live car si vous copiez des fichiers pendant leur modification, vous obtiendrez des résultats corrompus.

Formatez le ssd et obtenez à la fois la nouvelle partition ssd et la partition racine d'origine montées, puis exécutez simplement sudo cp -ax /media/old-partition/* /media/new-partition, où ancienne-partition et nouvelle-partition sont remplacées par leurs points de montage réels. Cela copiera chaque fichier, préservant la propriété, les autorisations et les horodatages.

Exécutez ensuite sudo grub-install --root-directory=/media/new-partition /dev/SSD_DEVICE, après avoir substitué les valeurs correctes pour new-partition et SSD_DEVICE. Cela installera grub, rendant le disque amorçable.

Une fois que vous redémarrez (en vous assurant que votre bios est configuré pour démarrer à partir du SSD au lieu de l'ancien disque), assurez-vous que vous exécutez à partir du SSD et non à partir de l'ancien disque en vérifiant la sortie de dfet / ou mount, et vous devriez être bon de faire sauter l'ancienne partition.

Oh, et vous voudrez éditer le /etc/fstabfichier sur la nouvelle partition après avoir copié et mis à jour l'UUID de la partition racine pour correspondre à l'UUID de la nouvelle partition SSD au lieu de l'ancienne. Vous pouvez trouver cet UUID en exécutant sudo blkid.

Édition: ajouté / * dans la copie ci-dessus, mais il fallait éditer plus de 6 caractères. Maintenant, c'est 101 caractères!

psusi
la source
1
Je suppose que cela a fonctionné?
Martin Ueding
2
J'ai eu des problèmes pour installer grub en utilisant la méthode ci-dessus. Finalement, j'ai fait ce que ce fil suggère: askubuntu.com/a/3409/8152 afin de configurer et d'installer grub sur l'autre disque. Le reste de la réponse a très bien fonctionné.
Mladen Jablanović
1

Cette commande:

dd if=/dev/sdb1 of=DEVICE_PATH_OF_SSD_DRIVE

devrait fonctionner pour le clonage de la /partition sur le disque SSD.

EDIT: cela ne fonctionnera que si votre partition est de la même taille que le lecteur. S'ils ne sont pas de la même taille, vous pouvez utiliser partimage :

partimage -z0 -d save /dev/sdb1 clone.partimg
partimage restore DEVICE_PATH_OF_SSD_DRIVE clone.partimg
rm clone.partimg

Une mise en garde à cette méthode est que vous avez besoin de suffisamment d'espace sur votre lecteur pour une image contenant tout le contenu de /. Ça devrait aller si vous avez> 10 Go de libre. Sinon, vous pouvez utiliser -z1au lieu de -z0pour compresser l'image. Pour une compression encore plus grande, utilisez -z2. De plus, partimage ne prend pas en charge le système de fichiers ext4 .

Une fois que vous avez fait cela, vous devez ensuite monter le SSD et vérifier si vos données ont été correctement copiées:

$ mkdir /tmp/ssd
$ sudo mount -t ext4 DEVICE_PATH_OF_SSD_DRIVE /tmp/ssd
$ ls /tmp/ssd
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old

Remplacez-le ext4par le système de fichiers que vous avez utilisé /.

Vous devrez probablement installer le chargeur de démarrage GRUB sur ce lecteur:

sudo grub-install DEVICE_PATH_OF_SSD_DRIVE

Vous devrez ensuite modifier votre /etc/fstabfichier pour le remplacer /dev/sdb1par le chemin du périphérique de votre lecteur SSD dans l'entrée qui se monte sur /. ( sudo $EDITOR /etc/fstab)

Veuillez attendre que cette réponse comporte quelques votes positifs avant de suivre ces instructions. Je ne suis pas un expert dans ces domaines, donc j'ai peut-être manqué des informations vitales. Quiconque voit des défauts dans cela, veuillez ajouter un commentaire les expliquant. Vous devez prendre ces précautions, car si quelque chose ne va pas, cela pourrait laisser votre ordinateur non amorçable.

dv3500ea
la source
(-1) Cette solution est plus que dangereuse . Surtout si la taille des appareils ne correspond pas.
Raphael Bossek
Il copiera également l'UUID du lecteur source si vous utilisez dd.
Michael
0

Lisez d'abord comment migrer. Existe - t-il un moyen simple de transférer un système d'exploitation d'un disque dur à un autre? .

Démarrez à partir de votre SSD et ajoutez la ligne suivante à /etc/fstab(ce n'est qu'une liaison):

/media/slowhd/home /home none rw,bind 0 0

Commencez mount -aà rendre les modifications actives.

Astuce : ne le faites pas mount /dev/yourhd /homeparce que vous perdez la flexibilité de déplacer d'autres répertoires vers votre ancien disque dur.

Une solution plus technique serait d'utiliser LVM (gestionnaire de volumes logiques) .

Raphael Bossek
la source