Estou estudando particionamento no Linux, começando pelo sfdisk. Se eu copiar uma tabela de partição de uma unidade para outra, ela copiará o dispositivo UUID e os PTUUIDs para cada partição, mas se eu estiver criando um novo dispositivo, posso especificar um UUID para unidades GPT, mas não para unidades MBR. Isso me leva a pensar que UUIDs e PTUUIDs não são necessários para unidades MBR. Qual é a situação com isso?
E se eu precisar de um UUID para a unidade, além de PTUUIDs para as partições, como faço isso manualmente? Vejo que o sfdisk me permite especificar um UUID para dispositivos GPT, mas apenas um rótulo para dispositivos MBR. Como posso criar um UUID para um MBR e o que posso fazer para garantir que os PTUUIDs da partição sejam criados com base no UUID desse dispositivo? Não consigo descobrir como criar o UUID primário para o dispositivo ou como criar PTUUIDs com base nele para as partições.
Isso é mais correto. Os PTUUIDs na própria tabela de partição não servem a nenhum propósito para o próprio MBR, mas são usados pelo sistema. Ele não possui PARTUUIDs nas partições, apenas sua posição na tabela.
Na verdade
sfdisk
, permite que você defina o "disk-id". Os UUIDs da partição MBR são apenas o ID do disco seguido pela posição na tabela. Portanto, se eu definir um disk-id para12345
o primeiro PARTUUID, será12345-1
. Consulte o manual do sfdisk :Fundo
A convenção de nomenclatura usada pelo Linux erroneamente usa o termo "UUID", que é muito enganoso. Universalmente Único Identificador é um formato padronizado muito específico de identificador único com regras estritamente padronizadas na geração que dependem da versão embutida em cada ID. Para evitar confusão, evitarei usar o acrônimo "UUID" para qualquer coisa que não seja o uso de particionamento do Linux:
A convenção de nomenclatura do Linux é:
ee7273d0
com partiçãoee7273d0-1
. Isso pode ser encontrado em/dev/disk/by-partuuid/ee7273d0-1
.Presumo que você queira dizer "um PTUUID para o disco e PARTUUIDs para as partições", pois não existe "PTUUIDs para partições".
Para responder ao título da sua pergunta: Não, PTUUIDs e PARTUUIDs não são importantes para o MBR, porque o MBR foi desenvolvido na década de 1980, quando o conceito de UUIDs de 128 bits ainda não era comum . Uma única entrada de partição primária na tabela de partição MBR tem apenas 16 bytes: a ideia de adicionar outros 16 bytes por partição para apenas um identificador longo teria sido considerada uma perda de espaço absurda na época. Como a tabela de partição MBR principal deve caber no mesmo bloco de disco único de 512 bytes com o código de registro de inicialização real, também não há espaço para adicioná-lo posteriormente.
Você deve ter notado que os UUIDs reais tendem a ter o formato 12345678-9abc-def0-1234-56789abcdef0, mas em discos particionados por MBR, PTUUID e PARTUUIDs, se forem relatados, são strings muito mais curtas: um PTUUID pode ser 12345678 e um PARTUUID 12345678-01, respectivamente?
Isso ocorre porque os identificadores exibidos no lugar de PTUUID e PARTUUIDs para discos particionados por MBR não são UUIDs reais. Eles são baseados em um identificador de disco de 32 bits, que foi adicionado ao MBR pela primeira vez pelo Windows NT 3.5. Foi originalmente chamado de "assinatura de disco do Windows", mas acho que "identificador de disco" é um termo mais neutro para o fornecedor. Como os sistemas operacionais anteriores ao Windows NT 3.5 não tinham esse identificador de disco, ele deve ser tratado como um identificador opcional, ao contrário de um disco particionado por GPT, onde um PTUUID e PARTUUIDs são partes obrigatórias do esquema de particionamento.
A "string PTUUID" de um disco particionado por MBR é apenas aquele identificador de disco de 32 bits por si só, e os "PARTUUIDs" são derivados simplesmente adicionando um traço e um número de partição de dois dígitos no final. Essas strings não atendem à especificação de UUIDs reais, pois não são longas o suficiente para garantir exclusividade e não foram criadas usando as mesmas regras. Eles são apenas o melhor substituto disponível para UUIDs reais.
Quando você começa a criar uma nova tabela de partição MBR em um disco completamente não utilizado, um Linux moderno
fdisk
inclui esta mensagem inicial:Portanto, ao criar uma nova tabela de partição MBR, ela cria automaticamente um identificador de disco para você. O "PTUUID" deste disco seria 1234abcd e o "PARTUUID" da primeira partição seria 1234abcd-01.
Para alterar um identificador de disco existente para um disco MBR, você pode usar
sfdisk --disk-id
conforme mencionado por Philip Couling, ou pode iniciar uma versão moderna do Linuxfdisk
para esse disco, digitex
para entrar no menu de comandos especializados e digitei
para alterar o disco ação do identificador .Alterar o identificador de disco/PTUUID em um disco particionado por MBR também alterará necessariamente todos os PARTUUIDs, pois todos são derivados do mesmo identificador de disco.
Se o sistema de arquivos dentro de uma partição também suportar um UUID, isso é exibido por ferramentas do Linux como
blkid
elsblk
apenas comoUUID
. Seu formato e existência dependem do tipo de sistema de arquivos: para sistemas de arquivos da família FAT, você pode ver um identificador curto, como emUUID=1A2B-3C4D
vez de um UUID real de 128 bits. Este é realmente um número de série de volume FAT (também conhecido como ID de volume ) que é atribuído no momento da criação do sistema de arquivos. Para alterar isso, use uma ferramenta específica do sistema de arquivos, comotune2fs -U
para sistemas de arquivos ext2/ext3/ext4,xfs_admin -U
para XFS oumlabel -N
para sistemas de arquivos da família FAT.