Como o “parted” conhece o tipo de sistema de arquivos para partições GPT?

2
O utilitário

parted de alguma forma detecta o sistema de arquivos em partições no meu disco GPT:

Eu acho que isso não é feito com base nos códigos de tipo de partição (vistos em gdisk output) porque seriam 27 (Hidden NTFS Win) para as partições 1, 5, 6, 7 e por exemplo ef (EFI) para / dev / sda2, mas em parted output existem sistemas de arquivos claramente diferentes listados.

    
por Martin 01.09.2015 / 00:46

1 resposta

3

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.fat
lseek(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 ...

    
por 01.09.2015 / 01:30

Tags