web-dev-qa-db-fra.com

Changer l'UUID de la partition vfat

Comment changer l'UUID d'une partition vfat? Pour ext2/ext3/ext4 cela se fait avec un simple

tune2fs -U <new-uuid> /dev/<partition>

Existe-t-il une commande similaire pour les partitions vfat?

8
friederbluemle

Il pourrait être utile de savoir pourquoi vous voulez faire cela. Je ne connais pas d'outil pour faire ce que vous voulez, mais il y a peut-être d'autres options ...

Techniquement, les partitions FAT ne possèdent pas d'UUID. ils ont des numéros de série que plusieurs outils et fichiers Linux (tels que mount et /etc/fstab) peuvent utiliser à la place des UUID. Sur les disques GPT, les partitions qui contiennent des systèmes de fichiers FAT ont des GUID qui (sur les distributions Linux récentes suffisantes) peuvent être appelés PARTUUID dans mount et /etc/fstab. Les systèmes de fichiers FAT et (sur les disques GPT) les partitions qui les contiennent peuvent également avoir des noms, qui peuvent également être utilisés par mount ou dans /etc/fstab. Chacune de ces fonctionnalités peut être utilisable à la place du numéro de série FAT.

Bien que je ne connaisse pas d'outil pour modifier les numéros de série des partitions FAT, ils peuvent être définis lorsque le système de fichiers est créé via l'option -i sur mkdosfs, comme dans:

mkdosfs -i ABCD1234 /dev/sdc1

Cet exemple définit le numéro de série de /dev/sdc1 sur ABCD-1234. Si le système de fichiers est suffisamment petit, vous pouvez le sauvegarder, créer un nouveau système de fichiers avec le numéro de série souhaité et le restaurer. Si vous essayez de définir le numéro de série dans le cadre d’un script de configuration d’installation ou d’installation, il peut suffire de le définir via mkdosfs.

Vous pouvez modifier GUID de la partition avec gdisk ou sgdisk. En utilisant ce dernier, vous feriez le travail via l'option -u, comme dans:

sgdisk -u 1:BC87D91A-02F3-4C52-87CD-536A3DF2A074 /dev/sdc

Cet exemple définit le GUID de /dev/sdc1 sur BC87D91A-02F3-4C52-87CD-536A3DF2A074. (Notez que -u prend un ensemble d’options délimitées par deux points, le premier étant le numéro de la partition et le second la valeur GUID. Le nom de fichier du périphérique correspondant à l’ensemble du disque [ pas la partition] est la dernière option.)

Selon vos besoins, l’une de ces approches peut fonctionner. En vous déplaçant plus loin, vous pouvez définir l'étiquette du système de fichiers avec l'outil dosfslabel; ou vous pouvez modifier le nom d'une partition GPT à l'aide de l'option -c de sgdisk, qui fonctionne de la même manière que -u, mais prend un nom plutôt qu'un GUID.

9
Rod Smith

L'ID de volume de FAT32 est stocké dans le premier secteur à l'offset 67 (0x43), pour FAT16 à 39 (0x27). On peut utiliser la commande dd pour le lire (remplacez /dev/sdc1 par votre partition réelle):

dd bs=1 skip=67 count=4 if=/dev/sdc1 2>/dev/null \
| xxd -plain -u \
| sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'

Et, bien sûr, vous pouvez également stocker un nouvel UUID (remplacez 1234-ABCD par la valeur souhaitée):

UUID="1234-ABCD"
printf "\x${UUID:7:2}\x${UUID:5:2}\x${UUID:2:2}\x${UUID:0:2}" \
| dd bs=1 seek=67 count=4 conv=notrunc of=/dev/sdc1

Référence: Structure physique FAT (décalage du numéro de série du volume): https://technet.Microsoft.com/en-us/library/cc776720 (v = ws.10) .aspx # w2k3tr_fat_how_gkxz

11
Tommy