Comment redimensionner une partition LVM? (ie: volume physique)


89

Je souhaite réduire ma deuxième partition (LVM) afin de créer une nouvelle partition dans le nouvel espace libéré. J'utilise le Live CD pour le faire, car je sais que je ne peux pas redimensionner / déplacer cette partition pendant son utilisation. Lorsque j'ai ouvert GParted dans le Live CD, j'ai compris que je ne pouvais pas redimensionner la partition, car lorsque je clique dessus avec le bouton droit de la souris, l'option "redimensionner / déplacer" est désactivée.

J'ai essayé de le démonter, de le "paresser" ( umount -l /dev/sda2) mais cela n'a pas fonctionné.

Une capture d'écran de GParted:

Capture d'écran GParted

Réponses:


49

Il semble y avoir beaucoup de résultats sur Google où les gens avaient des problèmes similaires. Un exemple:

Sauvegardez toutes vos données importantes avant de tenter ceci. Supposez toujours que vous pouvez perdre toutes vos données lors du redimensionnement des partitions.

Réduire LVM sans perte de données

Ce fil de discussion suggère la procédure suivante. Dans cet exemple, nous réduisons une partition de 10G à 9G:

Tout d'abord, nous démontons.

sudo umount /dev/vg_blah/lv_blah

Vérifiez le système de fichiers.

sudo e2fsck -f /dev/vg_blah/lv_blah

Redimensionnez le système de fichiers et le volume logique. Faire cela en une étape peut éviter les erreurs qui causent une perte de données. (Remarque Le paramètre lvreduce est -Linterprété Gcomme 2 ^ 30 octets et gcomme 10 ^ 9 octets.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah

(facultatif) Supprimez un lecteur physique du groupe de volumes si vous le souhaitez (si vous avez maintenant un lecteur inutilisé).

sudo vgreduce vg_blah /dev/sdxy

Tout le mérite revient à brianmcgee .

Note: vgreduceéchouera avec cannot resize to xxxxx extents as later ones are allocatedsi vous avez une autre lv à la fin du disque - j'avais un lv d'échange, que je supprimé. Voir Comment réduire les volumes logiques et physiques d'Ubuntu LVM? de l'aide sur cette situation.


1
e2fsck -f /dev/vg_blah/lv_blahrenvoie: "e2fsck: Le périphérique ou la ressource est occupé lors de la tentative d'ouverture de / dev / sda2 Système de fichiers monté ou ouvert exclusivement par un autre programme?", idem avec resize2fs ...
Idan Yadgar

12
Il manque la réponse pour redimensionner le volume physique. De plus, je recommande fortement de combiner les deux étapes de redimensionnement en une lvreduce -r.
Flimm

4
En outre, vous devez comprendre que 1Gto lvreducecorrespond à 1000000000 octets, alors resize2fsqu’il s’agit d’un gibibyte. Si vous souhaitez transmettre 1 gibioctet à lvreduce, utilisez 1gplutôt.
Flimm

1
Vous n'utilisez pas vgreduce; c'est pour supprimer un pv d'un groupe de volumes.
psusi

2
Je suspecte fortement d' lvreduceutiliser G = gibibyte en mode différentiel. C'est certainement le cas en mode absolu. Ses pages de manuel sont mal écrites et n'expliquent pas la signification de leurs unités, ce qui, à mon avis, est à la limite de la négligence criminelle.
Urhixidur

45

Vous pouvez réduire / étendre un volume logique très facilement avec un outil graphique: system-config-lvm. Parce system-config-lvmque ne vient pas pré-installé, une fois démarré à partir d'un live-cd, vous devez l'installer:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

Une fois installé, lancez le programme, sélectionnez le volume logique que vous souhaitez modifier dans le panneau de gauche, cliquez sur "Modifier les propriétés".

Interface graphique principale du programme de gestion des volumes logiques

Modifiez maintenant les paramètres à votre guise!

Fenêtre Edit Logical Volume

Une bonne chose à propos de system-config-lvmcela, c'est que cela ne vous permettra pas d'aller de l'avant si la nouvelle taille de la partition est plus petite que toutes vos données existantes combinées (je viens d'essayer cela et de le constater moi-même).

Références:

  1. How-To Geek tutorial (c'est l'origine des images).
  2. Guide complet de Red Hat pour le programme.

2
L’interface graphique est définitivement la solution, mais vous devrez probablement le lancer à partir d’un CD live.
Mike

10
pourquoi est system-config-lvmplus risqué que lvresizeou lvresize -r?
Thufir

1
Vous pouvez également essayer blivet-gui ( github , Ubuntu PPA ), le gestionnaire de partitions de nouvelle génération qui gère les lecteurs LVM.
bain

5
Attention, system-config-lvm utilise une puissance de 1024 unités, malgré l'utilisation du libellé (incorrect) «gigaoctet». Il devrait vraiment faire comme palimpsest(aka Utilitaire de disque) et spécifier sa signification dans des octets non ambigus.
Urhixidur

4
@Suncatcher les 17.10 et 18.04, vous devez ajouter le référentiel Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a

24

Remarque : vous devez exécuter presque toutes les commandes suivantes à l'aide d'un Live CD. Parfois, il vous demande de démonter la partition qui a déjà été montée sur / (dans ce cas, vous ne pouvez pas la démonter).

Voici toutes les étapes nécessaires pour redimensionner une partition LVM ou LVM2:

sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Si la deuxième commande produit quelque chose comme ceci:

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Ensuite, vous devez réorganiser l'espace non alloué à la fin du LVM. Cela signifie après la partition root et swap_1. Ainsi, dans un premier temps, vous devez vérifier les informations des volumes physiques à l'aide de la commande ci-dessous:

sudo pvs -v --segments /dev/sda5

Cela montrera la sortie comme:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Notez le aaa-www . Utilisez la commande suivante pour supprimer la fragmentation externe:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Voyons maintenant comment ça se passe:

sudo pvs -v --segments /dev/sda5

Cela montrera le résultat comme (notez les changements):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

Après cela, utilisez GParted et redimensionnez le LVM en fonction de la superficie maximale utilisée et restez dans un espace non alloué. Prendre plaisir...


16

Je recommanderais un autre outil graphique - KVPM . Il combine les fonctionnalités de GParted et de system-config-lvm. De plus, il autorise certaines opérations sur des partitions actives (montées) non autorisées par system-config-lvm. Toutefois, le volume doit être démonté pour pouvoir être réduit.

entrez la description de l'image ici entrez la description de l'image ici

Il est dans le référentiel des univers depuis Ubuntu 12.04, alors faites juste sudo apt-get install kvpm

Remarque: démarrez-le avec les droits root. sudo kvpm


ce n'est pas dans le référentiel de l'univers:E: Unable to locate package kvpm
Jeff Puckett


Cela a fonctionné pour moi, où "system-config-lvm" ne charge aucun périphérique / lecteur / système de fichiers connecté. Avec le bonus supplémentaire de ne pas avoir à télécharger et un référentiel supplémentaire et d'être préconfiguré sur ma machine Ubuntu. De plus, cela fonctionnait avec Gparted, car cela créait des erreurs concernant la réduction excessive du système de fichiers. (Je redimensionne une carte SD RetroOrangepi de 32 Go à 8 Go à des fins de sauvegarde)
BiTinerary


12

Seule la dernière version de Gparted (0.14) prend en charge le redimensionnement des volumes physiques LVM. La version livrée avec Ubuntu 12.10 ou 13.04 ne la prend pas en charge.

Voici comment redimensionner un volume physique LVM:

  1. Si le groupe de volumes associé au volume physique LVM ne dispose pas de suffisamment d'espace non alloué, vous devez en créer un en réduisant le volume logique. Regardez la réponse de bigbadonk420 pour savoir comment procéder. Vous pouvez également utiliser les disques GNOME (inclus avec Ubuntu) pour certaines étapes si vous préférez une interface graphique.

  2. Gravez la dernière image .iso du site Web de GParted et gravez-la sur un CD ou sur une clé USB. Démarrez à partir du CD ou de la clé USB. Alternativement, vous pouvez compiler la dernière version de GParted à partir du source.

  3. Utilisez GParted pour redimensionner le volume physique LVM. GParted ne vous permet pas de réduire le volume physique LVM à une taille inférieure à celle autorisée par l'espace non alloué.


Merci Flimm. Je m'attendais à 12.10 pour avoir une version assez récente de gparted. Votre réponse m'a orienté dans la bonne direction.
Martijn Heemels

1
J'ai la dernière version de gparted, mais cela ne me permet pas de changer la taille des partitions ... J'ai / dev / sda2 de type ext2 et, sous celle-ci, / dev / sda5 de type lvm2. Mais gparted dit à la fois que les tailles min et max sont les mêmes, et ne me permet donc pas de le changer ... :-(
Paul

Ou utiliser pvresizela suite LVM2, non?
203967

@ Paul l'avez-vous résolu? J'ai exactement le même problème: S
Castiblanco

@ Castiblanco Je ne l'ai pas résolu, j'ai fini par tout effacer et réinstaller sans LVM. Pour moi, une leçon apprise: n'utilisez pas LVM pour les installations de bureau standard.
Paul

9

J'ai trouvé cette réponse par accident, mais cela a fonctionné pour moi au moins. Dans mon cas, j'avais déjà un espace disque non alloué réservé après la racine, aussi je passe à côté de la partie qui explique comment vous obtenez plus d'espace et explique simplement comment je l'ai utilisé sous root sans démarrer.

REMARQUE: au lieu d'utiliser gparted, il vaut probablement mieux utiliser system-config-lvm. La prochaine fois, j'utiliserais celui-là à la place ... Ma version gparted était la 0.18.

  1. D'abord, j'avais l'habitude gpartedd'étendre la partition racine autant que possible. À ma grande surprise, il ne couvrait que les tailles physiques et ne faisait rien à la partie logique. Donc, la df -kcommande a dit que le disque était encore plein.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootétend la partition logique aussi loin que possible. Nul besoin de vérifier et de calculer des Go ou des blocs selon différentes méthodes.
  3. resize2fs /dev/ubuntu-vg/root C’est la troisième étape que j’ai suivie: elle étend le système de fichiers à la taille de la partition logique.

La dernière étape peut être fusionnée dans la seconde:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root


Cela vous permet de réduire un volume logique, mais la question du PO concerne la réduction d'un volume physique.
Stefan

tu m'as sauvé la vie
Quang Hà

1

En plus des @ bigbadonk420 s » réponse , au lieu de faire ce qui suit:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Faire:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Notez le -rqui réduit le système de fichiers simultanément et est sûr.


Mais cela ne réduit pas le volume physique .
Stefan

0

Avertissement concernant la réponse actuellement la plus votée : Pour NE PAS détruire votre nouvelle installation par défaut avec l’option LVM (14.04 Trusty Tahr), 1) lisez la page entière, 2) supprimez le swap 3) et modifiez probablement la commande pour "Réduire la taille de la logique". volume "comme ceci:

lvreduce -L -1g /dev/vg_blah/lv_blah

Je recommande vivement system-config-lvm.


Encore une fois, le PO veut réduire un volume physique .
Stefan

0

Pour le faire en utilisant GParted, cliquez avec le bouton droit de la souris sur dev / sda2 (que vous souhaitez réduire). Sélectionnez 'Désactiver'. Vous pourrez maintenant redimensionner votre partition LVM.

Mise à jour: la solution @Cao Min Tu est bien meilleure. J'ai eu peu de problèmes avec GParted après le redimensionnement

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.