Dispositivos não têm UUIDs. Partições do. Os UUIDs são criados quando um sistema de arquivos é formatado. É por isso que eles podem ser alterados e por que eles mudam quando você reformata.
Em outras palavras, um UUID não é uma característica do hardware e não há como "localizar" informações que não existem.
Pode haver uma ou mais partições no dispositivo que tenham UUIDs, portanto, se você já viu uma antes associada a ela, é o UUID de uma partição. Se houver mais de uma partição, pode haver um UUID para cada uma delas (também não é possível, pois nenhuma é necessária), mas nenhuma delas é característica do hardware (são apenas dados mutáveis armazenados nela) . As chaves USB geralmente vêm com uma grande partição FAT32 ou NTFS pré-formatada. Se você reformatar isso, o UUID mudará.
Para encontrar o UUID de uma partição, você precisa encontrar sua identidade como um dispositivo de bloco. cat /proc/partitions
deve listar tudo o que o kernel está ciente, montado ou não. Presumindo que não há dezenas de drives conectados ao seu sistema, ele deve ser simples o suficiente para descobrir qual deles é o USB. /proc/partitions
realmente lista a unidade também, você pode diferenciá-la de suas partições porque a unidade não terá um número no final (sda vs. sda1) e a saída file -s
será diferente:
> file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 134217728 sectors;
partition 2: ID=0x83, starthead 202, startsector 134219776, 58720256 sectors;
partition 3: ID=0x83, starthead 245, startsector 192940032, 46137344 sectors;
partition 4: ID=0x82, starthead 223, startsector 239077376, 10992304 sectors, code offset 0x63
> file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=cd8e11b5-07ac-7741-ae0c-36e63eacf8a1, volume name "_Fedora-17-x86_6/" (needs journal recovery) (extents) (large files) (huge files)
Às vezes, as unidades pré-formatadas são apenas um grande dispositivo, por exemplo:
> file -s /dev/sdb
/dev/sdb: x86 boot sector, Microsoft Windows XP Bootloader NTLDR, code offset 0x3c,
OEM-ID "MSDOS5.0", sectors/cluster 64, root entries 512,
Media descriptor 0xf8, sectors/FAT 246, heads 255, sectors 4026368 (volumes > 32 MB) , reserved 0x1, serial number 0xe06de56f,
unlabeled, FAT (16 bit)
Observe que este é, de fato, "não marcado" e parece não ter um UUID (eles não são obrigatórios).