Alterar UUID da partição vfat

5

Como altero o UUID de uma partição vfat ? Para ext2/ext3/ext4 isso é feito com um simples

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

Existe um comando semelhante para vfat partitions?

    
por friederbluemle 06.09.2017 / 18:44

2 respostas

5

Pode ser útil saber por que você deseja fazer isso. Eu não sei de uma ferramenta para fazer o que você quer, mas pode haver outras opções ....

Tecnicamente, as partições FAT não possuem UUIDs; eles têm números de série, que várias ferramentas e arquivos do Linux (como mount e /etc/fstab ) podem usar no lugar de UUIDs. Nos discos GPT, as partições que mantêm os sistemas de arquivos FAT possuem GUIDs, que (em distribuições Linux recentes) podem ser chamadas de PARTUIDs em mount e /etc/fstab . Ambos os sistemas de arquivos FAT e (em discos GPT) as partições que os contêm também podem ter nomes, que também podem ser usados por mount ou em /etc/fstab . Qualquer um desses recursos pode ser usado no lugar do número de série do FAT.

Embora eu não saiba de uma ferramenta para alterar os números de série das partições FAT, elas podem ser definidas quando o sistema de arquivos é criado através da opção -i para mkdosfs , como em:

mkdosfs -i ABCD1234 /dev/sdc1

Este exemplo define o número de série de /dev/sdc1 para ABCD-1234. Se o sistema de arquivos for pequeno o suficiente, você poderá fazer o backup, criar um novo sistema de arquivos com o número de série desejado e restaurá-lo. Se você estiver tentando definir o número de série como parte de um disco ou script de instalação, configurá-lo via mkdosfs pode ser tudo que você precisa.

Você pode alterar o GUID da partição com gdisk ou sgdisk . Usando o último, você faria o trabalho por meio da opção -u , como em:

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

Este exemplo define o GUID de /dev/sdc1 para BC87D91A-02F3-4C52-87CD-536A3DF2A074. (Observe que -u usa um conjunto de opções delimitado por dois-pontos, o primeiro é o número da partição e o segundo é o valor GUID. O nome do arquivo de dispositivo para o dispositivo de disco inteiro [ não a partição] é a opção final.)

Dependendo de suas necessidades, uma dessas abordagens pode funcionar. Movendo-se mais longe, você pode definir o rótulo do sistema de arquivos com a ferramenta dosfslabel ; ou você pode alterar o nome de uma partição GPT com a opção sgdisk -c , que funciona como -u , mas recebe um nome em vez de um GUID.

    
por 07.09.2017 / 20:11
7

O ID do volume de FAT32 é armazenado no primeiro setor no deslocamento 67 (0x43), para o FAT16 é 39 (0x27). Pode-se usar o comando dd para lê-lo (substitua /dev/sdc1 por sua partição real):

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

E, claro, também é possível armazenar um novo UUID (substitua 1234-ABCD pelo seu valor desejado):

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

Referência: Estrutura física do FAT (deslocamento do número de série do volume): link

    
por 14.02.2018 / 13:30