web-dev-qa-db-fra.com

Comment déplacer ma partition racine LVM 250 Go sur un nouveau disque dur de 120 Go?

J'ai la situation suivante:

Mon installation actuelle d'Ubuntu (12.04) fonctionne à partir d'un disque dur externe (250 Go) car j'étais trop paresseux pour acheter un nouveau disque dur interne. Maintenant, j'ai un nouvel interne (120 Go) et je veux tout déplacer vers l'intérieur. L'installation d'Ubuntu new est hors de propos parce qu'elle est peronalisée.

Heureusement (j'espère), la partition racine est partitionnée avec LVM. J'espère donc pouvoir déplacer la partition sur le plus petit disque dur interne.

Est-ce possible? Et où puis-je trouver de l'aide?

EDIT: Cette question est déjà assez ancienne et pourrait être obsolète. J'ai ajouté la version Ubuntu qui était utilisée à l'époque.

17
NotANormalNerd

Comme vous le suspectez, il est extrêmement élégant d'utiliser LVM.

Réduisez l’installation existante pour l’adapter au plus petit disque.

Installez physiquement le nouveau disque dur, le format et le pvcreate, utilisez vgextend pour l'ajouter à la même vg que votre partition racine.

Utilisez pvmove pour déplacer de manière transparente toutes les données hors de l'ancienne partition.

Utilisez vgreduce pour supprimer votre disque dur externe de votre vg. Débranchez l'ancien disque/dev/sdOLD.

Dans l'exemple ci-dessous:

  • /dev/sdOLD représente l'ancienne partition à remplacer
  • /dev/sdNEW signifie que la nouvelle partition prendra sa place.
  • vgX représente le groupe de volumes

Exemple: Bien sûr, vous devez être sûr à 100% que vous utilisez les bons appareils. Il est également essentiel de disposer de sauvegardes complètes et à jour, supprimées du système.

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

Utilisez update-grub et grub-install pour rendre votre nouveau disque racine amorçable.

Terminé.

36
Floyd

Premièrement, si vous avez utilisé le disque entier de 250 Go pour votre installation actuelle, vous devrez le réduire pour l’adapter au disque de 120 Go. Vous ne pouvez réduire qu'un système de fichiers ext4 lorsqu'il est démonté. Vous devez donc démarrer à partir d'un système Ubuntu Live (CD ou USB) ou d'un système de maintenance spécialisé tel que GParted live . Vous pouvez utiliser resize2fs ou GParted pour redimensionner le système de fichiers existant.

Une fois que vous avez réduit le ou les systèmes de fichiers de votre installation existante pour qu'ils tiennent sur le nouveau disque, vous pouvez effectuer le reste du déplacement avec le système de fichiers monté si vous le souhaitez. Si le système de fichiers existant tient sur le nouveau disque, vous pouvez effectuer le transfert sans rien démonter ni redémarrer.

Dans la description suivante, je montrerai comment passer du volume physique /dev/sdb1 au volume physique /dev/sda1, avec un groupe de volumes existant appelé oldvg. Veillez à ajuster les lettres du disque et les numéros de partition en fonction de votre système.

Pour faire un transfert en direct:

  1. Partitionnez le nouveau disque à l'aide de l'outil de partitionnement de votre choix (cfdisk, fdisk, parted,…). Voir par exemple Comment puis-je ajouter un disque dur supplémentaire?
  2. Créez un volume physique sur le nouveau disque: pvcreate /dev/sda1
  3. Ajoutez ce volume physique au groupe de volumes existant contenant le ou les volumes logiques que vous souhaitez déplacer: vgextend oldvg /dev/sda1
  4. Déplacez les volumes logiques d'un volume physique à un autre: pvmove /dev/sdb1 /dev/sda1
  5. Divisez le groupe de volumes existant en deux: vgsplit oldvg newvg /dev/sda1

Une autre méthode consiste à transformer les volumes logiques existants en un volume miroir avec lvconvert --mirror, à configurer un miroir sur le nouveau disque, puis à diviser les miroirs avec lvconvert --splitmirrors. De cette façon, vous vous retrouvez avec deux copies de vos données, et après la division, chaque copie mène sa propre vie.

Une fois la copie terminée, vous devez rendre le nouveau disque amorçable. Montez le système de fichiers pour cela. En supposant qu'il soit monté sur /mnt, exécutez ces commandes en tant que root:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

Vous pouvez également utiliser Clonezilla . C’est un puissant outil de manipulation et de clonage de disque, et je pense qu’il couvre votre situation, mais je n’ai aucune expérience en la matière.

20
Gilles