Ele analisa os dados na partição, semelhante ao que file -s /dev/partition
faz. Se você strace
você deve ver coisas como esta:
lseek(3, 1048576, SEEK_SET) = 1048576
read(3, "3<0mkfs.fatlseek(3, 1048576, SEEK_SET) = 1048576
read(3, "3<0mkfs.fat%pre%..., 512) = 512
..., 512) = 512
Uma busca para posicionar 1048576
(1 MiB ou 2048 setores) está fora da tabela de partições (é o começo da primeira partição), e lê a partir daí, então está olhando outras coisas além da própria tabela de partições .
Ele também analisa /proc/mounts
, para coletar informações de lá também. O que eu não vejo é o que o blkid
faz.
As informações do sistema de arquivos mostradas por parted
não são muito precisas, o exemplo acima mostra como sistema de arquivos FAT, mas na verdade está sendo usado como MD-RAID / LUKS / LVM. Os metadados do MD-RAID são 4k desde o início, então um cabeçalho FAT antigo no primeiro 4k pode sobreviver e confundir heurísticas como as de file
ou parted
...