GNU/Linux >> Tutoriels Linux >  >> Linux

Comment réduire un volume physique ?

J'ai un volume physique sur une partition qui s'étend sur tout le disque, disons /dev/sda1 en utilisant 100% de /dev/sda. Maintenant, je dois le réduire pour créer /dev/sda2. Un volume logique utilise en fait ~ 50% du PV, donc théoriquement il y a beaucoup de place disponible, mais tout est alloué dans le PV unique. Existe-t-il un moyen sûr de réduire le volume physique (et la partition de disque sous-jacente) afin de créer de l'espace supplémentaire pour la deuxième partition ? Malheureusement, ma configuration exclut la possibilité de déplacer temporairement le volume physique vers un autre appareil.

Bien sûr, je sais que je peux le faire au niveau des fichiers (comme sauvegarder le contenu, repartitionner le lecteur de disque et recréer la configuration LVM), mais je préférerais faire le travail sans avoir à configurer LV à partir de zéro.

Merci d'avance.

Réponse acceptée :

Si vous avez juste besoin d'un autre système de fichiers séparé, vous n'avez pas besoin de créer une nouvelle partition :vous pouvez créer un autre volume logique LVM dans le groupe de volumes existant en utilisant l'espace non alloué dans le PV. Mais si vous avez spécifiquement besoin d'une nouvelle partition , alors vous devez faire comme vous l'aviez initialement prévu.

GParted est un outil graphique qui peut effectuer toute l'opération de redimensionnement de la partition PV + pour vous. Vous le trouverez très probablement dans la collection de packages de votre distribution.

Mais si vous ne pouvez pas ou ne voulez pas l'utiliser pour une raison quelconque, lisez la suite…

Réduire un volume physique LVM contenant de l'espace non alloué est assez simple. Par exemple, pour réduire la taille de /dev/sda1 à 40 Gio :

# pvresize --setphysicalvolumesize 40G /dev/sda1

Cette commande est sûre, car elle refusera de faire quoi que ce soit si la partie du PV qu'elle supprimerait contient des étendues allouées.

Mais ce n'est que la première étape. La deuxième étape consistera à réduire la taille de la partition elle-même.

Pour plus de sécurité, il est recommandé de réduire initialement la PV un peu plus que ce que vous prévoyez de réduire réellement la partition, de sorte qu'après avoir réduit la partition, vous puissiez explicitement étendre la PV pour couvrir toute la taille de la partition. Si l'opération d'extension échoue, vous saurez immédiatement que quelque chose s'est mal passé lors du redimensionnement de la partition et ne laissera pas d'erreurs cachées pour vous piéger ou quelqu'un d'autre à l'avenir.

Vous pouvez réduire une partition à l'aide d'un simple fdisk Linux commande, mais vous devez garder à l'esprit quelques points :

  • Lors de l'utilisation de fdisk pour redimensionner une partition, assurez-vous de la configurer pour afficher toutes les tailles de partition et les emplacements de départ dans les secteurs première. Au cours de l'histoire de Linux fdisk , son comportement a varié ici :les versions modernes le font par défaut, les versions plus anciennes peuvent avoir besoin d'un -u ou -u=sectors possibilité de le faire.
  • Lorsque vous redimensionnez une partition existante, vous ne pouvez pas déplacer le point de départ de la partition. (Si vous déplacez le point de départ, il ne s'agira plus d'une simple opération de redimensionnement, mais d'une opération de déplacement de partition plus complexe.)
Connexe :Macos – Comment monter automatiquement un volume TrueCrypt sur OSX après connexion avec mot de passe/fichier clé ?

Lors de l'utilisation de fdisk , toutes les modifications sont écrites sur le disque uniquement lorsque vous utilisez le w commande. Donc, je suggérerais de procéder comme ceci :

  • utilisez sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump pour sauvegarder la table de partition existante.
  • démarrez fdisk /dev/sda en mode interactif
  • utiliser le p pour afficher la table de partition actuelle et vérifier que les valeurs "début" et "fin" sont affichées sous forme de secteurs. Notez la valeur "début".
  • utiliser le d commande pour supprimer l'entrée de partition actuelle pour sda1 .
  • utiliser le n commande pour recréer l'entrée de partition primaire 1 pour sda1 dans la taille désirée, en prenant soin de spécifier l'emplacement du premier secteur exactement tel qu'il était (c'est-à-dire le même nombre que celui affiché dans la valeur "start" du p commande).
  • utiliser le t commande pour définir le type de la partition 1 sur "Linux LVM".
  • vérifiez votre travail
  • utiliser le w commande pour écrire la table de partition mise à jour et quitter fdisk .

Faites attention au message affiché par fdisk à la fin. S'il indique "Le noyau utilise toujours l'ancienne table", quelque chose bloque la mise à jour en ligne de la table de partition. Vous pouvez essayer partprobe /dev/sda pour dire au noyau de relire la table de partition (en utilisant une interface plus récente que certaines anciennes versions de fdisk utiliser, donc cela pourrait aider et ne fera certainement pas de mal), puis regardez cat /proc/partitions pour voir si la partition est maintenant reconnue par le noyau à la taille attendue.

Si le redimensionnement de la partition réussit, vous pouvez maintenant exécuter pvresize /dev/sda1 . Si vous avez suivi mes conseils et redimensionné le PV initialement un peu plus petit que la nouvelle taille souhaitée de la partition, il devrait maintenant étendre un peu le PV pour couvrir entièrement la partition redimensionnée automatiquement. Si cette commande signale une erreur, vous avez probablement fait une erreur en spécifiant la nouvelle taille et devez utiliser sfdisk /dev/sda < /safe/location/partition_table_backup.dump pour restaurer la table de partition telle qu'elle était initialement, puis réessayez.

(Sur les très anciens systèmes, vous devrez peut-être désactiver le VG avant d'exécuter partprobe ou même redémarrer pour permettre au système de relire la table de partition mise à jour.)

Une fois l'opération de redimensionnement terminée, vous pouvez maintenant utiliser fdisk à nouveau pour créer la deuxième partition dont vous avez besoin. Oui, vous pouvez également le faire ensemble tout en redimensionnant la partition, mais faire une seule chose à la fois est plus sûr et garantit que vous pouvez facilement annuler vos modifications si nécessaire.


Linux
  1. Comment créer un système de fichiers sur une partition ou un volume logique Linux

  2. CentOS / RHEL :Comment étendre le volume physique dans LVM en étendant la partition de disque utilisée

  3. Étendre le groupe de volumes après avoir étendu le volume physique

  4. Comment utiliser la ligne de commande pour changer le volume ?

  5. Comment changer un système de partition physique en LVM ?

Comment partitionner un disque sous Linux

Comment cloner des disques avec la commande Linux dd

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

Comment créer une partition à l'aide de la commande "parted"

Comment supprimer une partition de disque à l'aide de la commande Parted

Est-il possible de réduire en ligne un volume EXT4 avec LVM ?