Suppression de partition et mauvaise compréhension de fdisk

Hello,

J’ai 2 soucis, premièrement, je n’arrive pas à supprimer ma partition /dev/sda7, pourquoi ? Voici l’état des lieux :

[quote] LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
partage data -wi-ao---- 400,00g /dev/sda9(0)
home system -wi-ao---- 4,66g /dev/sda5(61)
root system -wi-ao---- 10,31g /dev/sda5(2206)
swap system -wi-ao---- 3,72g /dev/sda5(1253)
nyarlathotep-system vm_nyarlathotep -wi-a----- 4,39g /dev/sda8(0)
yog-sothoth-swap vm_yog-sothoth -wi-ao---- 1,00g /dev/sda6(0)
yog-sothoth-system vm_yog-sothoth -wi-ao---- 8,00g /dev/sda6(256)[/quote]

[quote]Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu’à écriture.
Soyez prudent avant d’utiliser la commande d’écriture.

Commande (m pour l’aide) : p
Disque /dev/sda : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d’E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d’étiquette de disque : dos
Identifiant de disque : 0xe922f7b0

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 8e Linux LVM
/dev/sda2 501758 976771071 976269314 465,5G 5 Extended
/dev/sda5 501760 47605759 47104000 22,5G 8e Linux LVM
/dev/sda6 47607808 68579327 20971520 10G 83 Linux
/dev/sda7 68581376 79067135 10485760 5G 83 Linux
/dev/sda8 79069184 88285183 9216000 4,4G 83 Linux
/dev/sda9 89554944 928415743 838860800 400G 83 Linux

La partition 3 ne commence pas sur une frontière de cylindre physique.

Commande (m pour l’aide) : d
Numéro de partition (1,2,5-9, 9 par défaut) : 5

La partition 5 a été supprimée.

Commande (m pour l’aide) : p
Disque /dev/sda : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d’E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d’étiquette de disque : dos
Identifiant de disque : 0xe922f7b0

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 8e Linux LVM
/dev/sda2 501758 976771071 976269314 465,5G 5 Extended
/dev/sda5 47607808 68579327 20971520 10G 83 Linux
/dev/sda6 68581376 79067135 10485760 5G 83 Linux
/dev/sda7 79069184 88285183 9216000 4,4G 83 Linux
/dev/sda8 89554944 928415743 838860800 400G 83 Linux

La partition 3 ne commence pas sur une frontière de cylindre physique.[/quote]

comme vous le voyez, ce n’est pas sda7 qui est supprimé, mais sda9 ! Et pour arriver à supprimer /dev/sda7, je me rends compte que je dois supprimer avant sda8 et sda9… Pourquoi ?

Ce qui m’amène à mon deuxième problème : je ne sais visiblement pas lire une table de partitions correctement…
Je ne comprends pas bien exactement à quoi correspond les valeurs “start”, “end” et “sectors”.
Pour moi, “start” correspond au début de ma partition et “end”, à la fin de celle-ci. Donc, tout doit être contigüe, entre le “end” de la précédente et le “start” de la nouvelle, je dois avoir un minimum d’espace (ou alors créer une partition dedans…). Sur ma table actuelle, j’ai l’impression que ce n’est pas le cas.

Comment pourrais-je réorganiser tout ça sans risque de perdre de la donnée ? Et pourriez-vous, SVP, me donner des explications plus détaillées sur la valeur de “sector” (on parle de secteur logique ou physique dans mon cas ??) ou me corriger si j’ai faux sur le paragraphe précédent ?

Si vous avez des exemples concrets et simples en tête, je prends volontiers, il faut vraiment que je comprenne tout ça parfaitement pour avancer.

Merci !

Non, regarde les tailles et les types. C’est bien la partition LVM de 22,5G qui a disparu.

Quand on supprime une partition logique, les partitions logiques suivantes sont renumérotées. C’est un des nombreux inconvénients des partitions logiques.

Pour la deuxième question : les positions des partitions ne sont pas forcément dans l’ordre de leur numérotation, surtout quand si a supprimé et recréé des partitions. Mais là, globalement, les partitions sont dans l’ordre. Il y a juste un espace vide à l’emplacement de la partition logique supprimée, ce qui est normal. La partition étendue est un cas particulier car elle englobe toutes les partitions logiques.

Réponse de moi à moi et des fois que ça en aide d’autres :

On parle de secteurs logiques, donc “sector” fait référence à un bloc contiguë de 512 octets, ce qui se vérifie facilement par le calcul suivant, exemple :
start end sector size
2048 499711 497664 243M

499711 - 2048 - 1 = 497664 => mes sectors, ce qui correspond à (497664/1024)/1024, soit les 243M que je trouve en fin de ligne !

La ligne suivante, qui correspond à une partition étendue donne :

/dev/sda2 501758 976771071 976269314 465,5G 5 Extended

Et là je vois bien que ma partition étendue commence à 501758 jusqu’à 976269314 (plus ou moins la fin de la dernière partition logique sda9).

Ok, bon, je crois que cette partie est claire… pour résoudre un problème, il faut le poser par écrit et tout s’éclaircit !

Mais, comment puis-je optimiser mes partitions du coup ? On voit bien que l’espace libre n’est pas du tout contigüe, je perds de l’espace ! Comment puis-je déplacer mes partitions (si possible) sans risque de casser un truc ?

@Pascal, je me répondais pendant ta réponse :slightly_smiling: (et merci au passage !)

Donc fdisk renumérote les partitions… la vache, ça ne va pas m’aider du coup. Mais si il renumérote les partitions, comment se fait-il que la couche lvm ne perde pas les pédales (je map mes LV derrière des partitions bien définies !) ??

[strike]Par ailleurs, tu dis bien que c’est celle de 22.5GB qui disparait, mais ce n’est pas ce que je veux; Je souhaite détruire cette partition là :

/dev/sda7 79069184 88285183 9216000 4,4G 83 Linux

Pour la recréer avec plus d’espace disque.[/strike]
Tu avais entièrement raison, c’est moi qui ne comprenait pas comment “compter” les partitions ! J’appelais “5” pour sda7 pensant qu’il fallait compter les partitions en partant de zéro ! Du coup, si je séléction “7”, j’ai bien ma partition de 5GB qui disparait, mais une autre s’appelle alors sda7 (ce qui m’induisais en erreur).

Du coup, l’interrogation par rapport à LVM reste entière ! comment LVM fait pour ne pas perdre les pédales ?? Si les partitions sont renommées, moi derrière, mes devices LVM pointent toujours vers des partitions dont les noms sont fixes ! Dois-je corriger ça manuellement (autrment dit, cette opération ne se fait pas à chaud sur des fs montés ?)

Peut-être qu’il travaille directement avec UUID : fr.wikipedia.org/wiki/Universal … Identifier

Ah oui, je n’y avais pas pensé… je vais tester ça sous peu ! merci !

Oui, LVM travaille en interne avec des UUID. De même pour le RAID logiciel.
Pour les partitions “classiques” qui contiennent un système de fichiers ou un swap, il est recommandé de les identifier explicitement par leur UUID ou LABEL dans /etc/fstab et ailleurs, pour se prémunir contre un changement de nom du périphérique ou de numéro de la partition.[quote=“coldroom”]On voit bien que l’espace libre n’est pas du tout contigüe, je perds de l’espace[/quote]
Si tu parles du petit espace libre d’environ 1 Mo entre les partitions logiques, c’est un espace qui est volontairement laissé pour optimiser l’alignement des partitions.

Quand on déplace une partition, il y a toujours un risque. C’est notamment pour cela que LVM a été développé. Avec LVM, on peut créer des volumes sans se soucier de l’allocation physique. Et on peut à peu près tout faire à chaud.

On parle de secteurs adressables. fdisk appelle cela secteurs logiques. Les secteurs physiques ne sont pas directement adressables, leur taille n’est annoncée par le disque que pour permettre d’optimiser l’alignement et la taille de bloc d’allocation et lors des opérations de lecture-écriture.

Ok, donc je vois où j’ai fait une erreur…

Je m’explique : pour chaque machine virtuelle, j’ai créé une partition dans laquelle je créais un VG (qui me servait de conteneur pour chaque), dans lequel je créais un LV pour le rootdisk de ma VM et un autre éventuellement pour la swap (si Linux).

Ce que j’aurais du faire, c’est une grosse partition avec un VG global, dans lequel j’aurais créé mes LVs de la même façon, à la différence près que n’étant que sur un seul disque, je pouvais redimensionner mes LV à volonté.

Du coup, vu que je n’ai pas vraiment de perte entre chaque partition, ce que je pourrais faire pour corriger cette situation, et ce serait un peu sale, mais je ne vois pas comment faire autrement, c’est ne pas supprimer ma sda7, mais créer un PV dessus et l’intégrer au VG de la VM que je voudrais agrandir…

C’est pas top comme solution, du moins je ne pars pas avec quelque-chose de propre, mais je ne vois pas comment faire autrement…

En y réfléchissant … il y a peut être une autre solution : J’ai 2 VM, une de 10GB et une autre de 5GB, plus 4.4 non utilisé sur la partoche que je voulais virer. Ce que je pourrais faire au pire, c’est mettre une clef usb, créer une partition dessus, y mettre un PV, créer un VG temporaire avec et faire un PV move de mon ancien VG sur ce VG temporaire. Supprimer l’ancien VG, supprimer la partition égalment. Faire la même chose avec l’autre VM, de façon à ce que temporairement toute la volumétrie de mes VM se trouve sur la clef USB. Après quoi, je créé une grosse partition, un gros VG et je rebascule tout sur la volumétrie interne.
Que pensez vous de ce scénario ? Comme ça je n’aurais qu’un seul VG pour toutes mes VM et je pourrais tailler à chaud sans trop me poser de question.

On peut avoir de bonne raisons de créer des VG distincts, par exemple pour bien séparer différentes VM ou installations. Par contre cela limite la flexibilité puisqu’un LV d’un VG ne peut pas utiliser l’espace d’un autre VG, et un PV ne peut pas être partagé entre plusieurs VG.

Si je devais agrandir un VG, je choisirais sans hésiter de créer un nouveau PV dans l’espace libre du disque pour l’ajouter au VG plutôt que d’essayer de déplacer et agrandir les partitions et PV existants. Certes cela fragmente le VG, mais l’agrandissement d’un LV a aussi des chances de créer de la fragmentation. La fragmentation n’est pas un drame en soit, du moment qu’elle n’a pas d’impact visible sur les performances, notamment si les fragments sont suffisamment gros (ce qui est le cas de PV de plusieurs Go).

Une remarque générale : LVM rend facile d’agrandir autant les LV que les VG. Il ne faut donc pas hésiter lors de l’allocation initiale à laisser de l’espace libre non seulement dans les VG mais aussi sur le disque, afin de permettre d’agrandir a posteriori n’importe quel LV au fur et à mesure des besoins qu’il n’est pas toujours facile d’identifier a priori.

PS : il ne s’agit quand même pas de créer un ribambelle de PV de 10 Go chacun sur un disque de 500 Go.

Ok, je vais suivre ton conseil dans ce cas et être vigilant par la suite !
Merci pour ces infos !