LABEL & PARTLABEL : comment les créer et les modifier ?

Je voudrais essayer les appellations des partitions par LABEL, dans fstab dans un premier temps et dans les scripts concernés dans un second temps.
Certaines de mes partitions ont déjà un LABEL, mais il y a des doublons entre les différents DD. Je voudrais donc modifier leur nom pour les rendre plus “causants” et uniques.
D’autres partitions n’ont PAS de LABEL, et il me faut donc leur en donner un.
Je sais que l’on doit pouvoir trouver mille tutos qui traitent de cela mais je préfère l’avis des spécialistes de notre forum.

1/ modifier un LABEL existant ?
2/ créer un LABEL sur une partition qui n’en possède pas ?
3/ éventuellement, que doit-on éviter de faire ?
4/ dans un script, de quelle façon remplace-t-on “/dev/sdxy” par le LABEL correspondant ? Par exemple : [mono]mount -t ext4 /dev/sda5 /mnt[/mono].

Merci.

salut,
1,2,3 (soleil :grin: ) je fais ça avec gparted depuis un live cd?

D’abord, il faut distinguer deux types de label (comme les UUID) :

  • Le label de partition. Il est attaché à la table de partition et non au contenu de la partition, et n’existe que dans une table de partition au format GPT. Il est affichable et modifiable avec des programmes de gestion des partitions compatibles GPT comme [mono]parted[/mono] ou [mono]gdisk[/mono]. Il n’est affiché par [mono]blkid[/mono] et utilisé par [mono]mount[/mono]… que depuis Jessie, sous la forme [mono]PARTLABEL=""[/mono]. Un lien symbolique pointant vers le nom de la partition est créé dans /dev/disk/by-partlabel/. Comme l’UUID de partition (PARTUUID), il n’est pas modifié par le reformatage de la partition et il n’est pas copié lors du clonage du contenu d’une partition.

  • Le label de contenu. Il est attaché au contenu (système de fichiers, swap…) et non à la partition elle-même. Il est affichable et modifiable avec la commande spécifique au type de contenu : [mono]e2label[/mono] ou [mono]tune2fs[/mono] pour un système de fichiers ext2, ext3 ou ext4, [mono]swaplabel[/mono] pour un swap… Il est afiché par [mono]blkid[/mono] et géré par [mono]mount[/mono], [mono]swapon[/mono]… sous la forme [mono]LABEL=""[/mono]. Un lien symbolique pointant vers le nom de la partition est créé dans /dev/disk/by-label/. Comme l’UUID de contenu (UUID) et contrairement au label de partition, il est modifié par le reformatage de la partition et il est copié lors du clonage du contenu d’une partition.

1/ Voir ci-dessus.

2/ Créer ou modifier un label revient au même.

3/ Evidemment le problème à éviter avec les labels est le risque de doublon. Je recommande par exemple de préfixer ou suffixer chaque label avec un identifiant spécifique au disque, au système qui l’utilise…

4/ Dans /etc/fstab, avec [mono]mount[/mono], [mono]swapon[/mono]… on peut remplacer le nom de périphérique /dev/sdxy par LABEL="" ou le lien symbolique /dev/disk/by-label/ pour un label de contenu, même chose avec PARTLABEL ou /dev/disk/by-partlabel pour un label de partition.

Merci GrandToubab, ça, je savais faire, mais ce que je voulais connaitre, ce sont les explications données par Pascal.
Je suis un éternel écolier qui, malheureusement, n’a plus les facultés de mémoire qui vont avec le statut.

@ Pascal :
D’après tes explications, il me semble que PARTLABEL correspond mieux à ce que je cherche : la pérennité des nom, même en cas de reformatage.
Je vais potasser tout ça.
Par contre, je ne suis pas sûr que mes DDext utilisent le format GPT. Je vais vérifier.

Note que [mono]mke2fs[/mono] ou [mono]mkswap[/mono] ont des options pour spécifier le LABEL et/ou UUID lors du reformatage afin qu’il ne change pas.

On peut convertir un disque du format MSDOS au format GPT avec [mono]gdisk[/mono], si tous les systèmes qui doivent utiliser le disque sont compatibles. Les numéros des partitions sont préservés. Il y a néanmoins des restrictions :

  • Ce n’est pas possible pour un disque de boot de Windows sans passer en mode UEFI et réinstaller Windows (à ma connaissance).
  • Pour un disque de boot Linux avec GRUB, il faudra réinstaller le chargeur avec [mono]grub-install[/mono].

[quote=“PascalHambourg”]…
On peut convertir un disque du format MSDOS au format GPT avec [mono]gdisk[/mono], si tous les systèmes qui doivent utiliser le disque sont compatibles. Les numéros des partitions sont préservés. [/quote]
SSD et 2dDD sont tous deux avec table de partition GPT.
Sur 2dDD, deux systèmes sont présents (une Jessie et une Kubuntu), mais tous deux sont gérés au boot par le grub du SSD. Par contre, niveau compatibilité, je ne sais pas si Kubuntu (14.04), l’est.

Le DDext, lui, est sous table de partition ‘msdos’.
Toutefois, il n’est occupé que par des sauvegardes, des anciens clones, que je vais supprimer car ils sont obsolètes ET une partition de vidéos -BW95 Fat32-. Si cette dernière seule pose problème, je peux la ripper sur un autre DD vide.

[quote=“PascalHambourg”]…

  • Ce n’est pas possible pour un disque de boot de Windows sans passer en mode UEFI et réinstaller Windows (à ma connaissance).
    [/quote]
    Aucun Windows chez moi depuis fort longtemps.

Je n’ai pas trouvé, dans le man de [mono]gdisk[/mono], de référence à la modification/création de PARTLABEL.
Quelle est la commande pour ce faire ?

Dans [mono]gdisk[/mono] le label de partition est appellé “name” (nom). A ne pas confondre avec “disklabel” qui désigne le type de table de partition (MSDOS, GPT, BSD…). PARTLABEL n’est pas une désignation officielle, c’est utilisé par blkid pour le distinguer de LABEL.

Ubuntu 14 supporte GPT sans aucun doute. De toute façon, si j’ai bien compris, le disque sur lequel il est installé est déjà en GPT.

Merci, vu le “name”.
Je ferai ça ce soir.

Pas eu le temps hier soir, alors je vais attaquer cet AM.
Renseignements complémentaires :
– Est-ce l’option ‘o’ que je dois employer pour modifier la table de partition en GPT :question:
– Ou est-ce qu’un simple “entrée” passe à la conversion directement :question:
– Alerte encadrée, précautions particulières à prendre :question:

[code]ricardo@jessie-msi:~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present


Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing ‘q’ if you don’t want to convert your MBR partitions
to GPT format!


Command (? for help): ?
b back up GPT data to a file
c change a partition’s name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition’s type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
[/code]

L’option “o” crée une nouvelle table de partition vierge (vide). Ce n’est pas ce que tu veux.
[mono]gdisk[/mono] a automatiquement converti la table MSDOS/MBR en GPT mais sans l’enregistrer sur le disque. Tu peux ensuite :

  • utiliser l’option “p” pour afficher la table de partition GPT convertie et la comparer avec la table de partition MSDOS affichée par [mono]fdisk[/mono], pour vérifier que toutes les partitions sont présentes (sauf évidemment l’éventuelle partition étendue qui n’a plus de raison d’être en GPT) avec les bons identifiants de type (Linux filesystem, swap, Microsoft data…) ;
  • utiliser l’option “t” pour changer le type d’une partition le cas échéant ; l’option “l” affiche les types de partition connus ;
  • utiliser l’option “c” pour changer le nom (qui correspond au PARTLABEL) d’une partition ;
  • utiliser l’option “w” pour enregistrer la nouvelle table au format GPT sur le disque ;
  • ou bien utiliser l’option “q” pour quitter sans écrire la table GPT si le résultat ne te satisfait pas.

OK, j’ai bien fait d’attendre tes explications, car j’aurais eu tendance à taper “entrée”, sans vérification préalable.
Pour l’option ‘o’, je m’en doutais un peu.
Super la suppression de la partie étendue, ça fait une erreur possible en moins.
Je fais.

Les données sont bien les mêmes.
Je modifie les PARTLABEL et je poste le résultat final pour ce DDext.

Je ne connaissais pas gdisk mais il vaut le détour.
Simple, clair et rapide, pour ce que j’en ai testé.

[code]Command (? for help): c
Partition number (1-6): 1
Enter name: RsauveDDext

Command (? for help): c
Partition number (1-6): 2
Enter name: HsauveDDext

Command (? for help): c
Partition number (1-6): 5
Enter name: photosDDext

Command (? for help): c
Partition number (1-6): 6
Enter name: videosDDext

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): yes
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
[/code]

Résultat final :

[code]Model: Generic External (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 21,0GB 21,0GB ext4 RsauveDDext
2 21,0GB 105GB 83,9GB ext4 HsauveDDext
5 105GB 126GB 21,0GB ext4 photosDDext
6 126GB 315GB 189GB fat32 videosDDext msftdata
[/code]

J’ai voulu modifier le DD d’une autre machine mais reboot impossible.
Ce DD est simplissime, avec 1 partition / ; 1 partition /home ; 1 Swap.
Malheureusement, j’ai oublié de faire un [mono]grub-install /dev/sda[/mono] avant de fermer.
Booté avec SuperGrub2Disk, mais rien vu qui permette de faire ça.
Booté avec Knoppix, contrôlé que les partitions sont bien présentes, tenté un [mono]grub-install /dev/sda[/mono] mais :
[mono]Could not find device for /boot : Not found or not a blosk device[/mono]

Je ne pense pas qu’on puisse faire un grub-install à partir du disque en question, si :question:

EDIT :
Le passage de msdos à GPT s’était clos avec succès.

Supergrubdisk n’a pas permis de démarrer le système installé sur ce disque ?

Depuis Knoppix tu as bien fait un [mono]chroot[/mono] sur la partition racine du système installé sur le disque avant d’exécuter [mono]grub-install[/mono] ? Si tu es resté sur la racine du système live ce message me paraît normal.

Pour faire cela j’utiliserais plutôt l’installateur Debian en mode “rescue” qui monte ce qu’il faut pour exécuter un shell sur la racine.

Note : Si tu n’as pas créé une petite partition “BIOS boot” (40 ko suffit, dans l’espace entre la table de partition et la première partition ou à la place de l’ancienne partition étendue) après la conversion en GPT, il faudra forcer l’utilisation de listes de blocs avec l’option [mono]–force[/mono].

Si, SuperGrub2Disk me permet bien de booter sur ce disque.
Mais puis-je “grub-install” à partir de là ?

Bien sûr. Pourquoi en doutes-tu ?

Je dois confondre avec autre chose, ptet update-grub :017
J’essaie.

Erreur :005

Boot à partir de SuperGrub2Disk sur sda1
[mono]# grub-install /dev/sda[/mono]

Installing for i386-pc platform. grub-install : attention : cette étiquette de partition GPT ne contient pas de partition d'amorçage BIOS ; l'embarquage ne sera pas possible. grub-install : attention : L'embarquage est impossible. GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée.. grub-install : erreur : refus de continuer avec les listes de blocs.

[mono]Normal ce i386-pc platform ?[/mono]

Tu évoques cette possibilité plus haut.
Concrètement, que dois-je faire ?

[quote]Note : Si tu n’as pas créé une petite partition “BIOS boot” (40 ko suffit, dans l’espace entre la table de partition et la première partition ou à la place de l’ancienne partition étendue) après la conversion en GPT, il faudra forcer l’utilisation de listes de blocs avec l’option --force.

[/quote]

Oui, normal.
Pour l’erreur, il me semblait avoir glissé un couplet concernant les listes de blocs en l’absence de partition BIOS boot. Soit tu en crées une (mieux), soit tu ajoutes [mono]–force[/mono] (moins bien).