- Linux Use UUIDs para identificar partições de forma confiável, independentemente do nome do dispositivo /dev.
- Ferramentas como blkid, /dev/disk/by-uuid, lsblk ou GParted permitem que você procure UUIDs facilmente.
- Alterar UUIDs envolve o uso de utilitários como uuidgen e tune2fs, além da atualização do arquivo /etc/fstab e outros arquivos.
- Ao clonar sistemas, é aconselhável regenerar os UUIDs e revisar os arquivos fstab, crypttab e GRUB para evitar conflitos.
Quando problemas estranhos começam a aparecer no Linux, como problemas de inicialização, tempos de espera intermináveis ou discos que antes eram montados sem problemas agora não aparecem, o culpado geralmente é o mesmo: um UUID alterado ou configurado incorretamenteSaber como localizar, entender e modificar esses identificadores é quase um rito de passagem para qualquer pessoa que gerencie um sistema GNU/Linux com vários discos ou partições.
Neste artigo, vamos analisar isso em detalhes. Como verificar o UUID das suas unidades e como alterá-lo com segurança. E quais arquivos de sistema você deve verificar para garantir que tudo continue inicializando corretamente. Você verá. comandos como blkid, ls -l /dev/disk/by-uuid, uuidgen, tune2fscomo eles se relacionam com /etc/fstabO que acontece com a partição de swap e o que levar em consideração ao clonar um sistema completo com ferramentas como o Clonezilla?
O que é um UUID e por que ele é usado no Linux?
O termo UUID (identificador único universal) Refere-se a um identificador universalmente único de 128 bits (16 bytes). Em seu formato mais comum, é exibido como uma sequência de 32 dígitos hexadecimais dividido em cinco grupos separados por hífens, seguindo o padrão 8-4-4-4-12, o que resulta em um total de 36 caracteres, incluindo hífens. Um exemplo típico seria algo como: 123e4567-e89b-12d3-a456-426614174000.
Nos sistemas GNU/Linux, esse identificador está associado a cada dispositivo armazenamento ou partição (ext4, XFS, partições de swap, etc.) e serve para se referir a elas independentemente do nome clássico do dispositivo (/dev/sda1, /dev/nvme0n1p2etc.), que podem mudar se você conectar ou desconectar discos. Dessa forma, o sistema pode sempre montar as mesmas partições embora a ordem em que os discos são detectados possa variar.
Nem todas as partições têm exatamente o mesmo formato de UUID: por exemplo, em partições com formato NTFS é normal encontrar 16 dígitos hexadecimais sem hífens (64 bits), enquanto em partições FAT32 o identificador pode ter 8 dígitos hexadecimaisAinda assim, para fins práticos no Linux, eles ainda são tratados como identificadores únicos para cada volume.
Um dos usos mais importantes desses códigos é o arquivo /etc/fstab, onde eles são definidos pontos de montagem e opções de montagem de cada partição. Lá você geralmente verá uma coluna com entradas do tipo UUID=xxxx-xxxx... em vez de /dev/sdXprecisamente para obter estabilidade e evitar surpresas ao fazer alterações. Hardwares.
Métodos para visualizar o UUID dos seus discos no Linux
Antes de mexer em qualquer coisa, é aconselhável saber exatamente quais partições você tem e seus respectivos UUIDs. O Linux oferece diversas ferramentas, como... se separaramPara Verifique os UUIDs de todos os discos. conectados, tanto por linha de comando quanto por meio de utilitários gráficos.
Consultar UUID com o comando blkid
Uma das maneiras mais diretas de visualizar identificadores é usando blkidEste comando requer privilégios de administrador, portanto, você precisará executá-lo com sudo ou como usuário raizSe você executar o programa sem parâmetros, listas Você pode usar todos os dispositivos detectados:
sudo blkid
La saída Geralmente exibe linhas como esta:
/dev/sda1: UUID="8aa6c0d2-c18e-4606-b1da-f5f1f7617f00" TYPE="xfs" PARTUUID="..."
Cada linha associa um dispositivo /dev com a sua UUID, o tipo de sistema de arquivos (ext4, xfs, vfatetc.) e outros metadados, como PARTUUIDSe você estiver interessado em filtrar apenas por um dispositivo específico, poderá especificá-lo como um parâmetro:
sudo blkid /dev/sda1
Se você deseja localizar o UUID da partição de seu interesse sem precisar verificar todas as linhas, você pode usar... grepPor exemplo, para ver o identificador de /dev/sdd4:
sudo blkid | grep sdd4
Este mesmo UUID É aquele que você verá mais tarde em /etc/fstab se essa partição estiver configurada para ser montada automaticamente no BotaPortanto, é importante sermos muito claros quanto a isso. Qual linha corresponde a cada ponto de montagem?.
Use o diretório /dev/disk/by-uuid para visualizar links.
Outra opção muito prática para ver qual UUID cada partição possui é listar o conteúdo do diretório. /dev/disk/por-uuid/Nesse diretório, o sistema cria links simbólicos onde cada nome de arquivo é o UUID de um dispositivo e o link aponta para o dispositivo real em /dev/.
Ver a lista completa Basta executar:
sudo ls -l /dev/disk/by-uuid/
A saída lhe mostrará... algo parecido:
lrwxrwxrwx 1 root root 10 ... 8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 -> ../../sda1
Dessa forma, você pode ver num relance o que O UUID corresponde a cada dispositivo /dev e compare essa informação com o que aparece em /etc/fstab ou com o que outras ferramentas mostram, como por exemplo lsblk o gpartedÉ especialmente útil ao depurar problemas de montagem ou corrigir erros em arquivos de configuração.
Visualize UUIDs e pontos de montagem com lsblk
Comando lsblk É uma ferramenta muito prática para visualizar, em formato de árvore, a relação entre discos, partições, volumes lógicos e seus respectivos componentes. pontos de montagemEmbora sua finalidade principal não seja exibir UUIDs, você pode combiná-lo com algumas opções para obter uma visão bastante completa do sistema de armazenamento.
Uma invocação típica seria:
lsblk -o NAME,MOUNTPOINT,TYPE
Na coluna PONTO DE MONTAGEM Você verá rotas como /, /home, /boot, /mnt/datosetc. A partir daí você pode descobrir Qual dispositivo você deseja inspecionar? e então use blkid ou revisão /dev/disk/by-uuid para ver seu identificador. Isso é especialmente útil quando o sistema monta unidades em caminhos não amigáveis (por exemplo, alguns dispositivos NAS ou ferramentas como o OpenMediaVault que montam em /srv/ com nomes longos como dev-disk-by-uuid-XXXX).
Consultar UUID via /etc/fstab
Outra maneira rápida de ver quais UUIDs estão sendo usados em seu sistema é verificar o arquivo /etc/fstab, que define Quais partições estão montadas e onde? durante a inicialização. Você pode verificar com:
cat /etc/fstab
Nele você encontrará linhas semelhantes a:
UUID=8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 /backups xfs rw,noquota,nofail 0 1
A primeira coluna usa o UUID como identificador de partição, seguido por ponto de montagem, o tipo de sistema de arquivos (neste exemplo, xfs) e as opções de montagem (rw,noquota,nofailetc.). Verifique /etc/fstab É um bom hábito verificar ocasionalmente, especialmente após trocar discos, reparticionar ou reinstalar sistemas, para garantir que os UUIDs ainda correspondam aos reais.
Além disso, um simples:
cat /etc/fstab | grep UUID
permitirá que você localize Encontre rapidamente todas as entradas identificadas por UUID, o que é muito útil quando você suspeita que um identificador está desatualizado e causando problemas de inicialização.
Problemas típicos de UUID: inicialização lenta e swap compartilhado.
Um dos sintomas mais frequentes de um UUID mal configurado é que O sistema trava durante a inicialização. Durante um período considerável, geralmente cerca de um minuto e meio, são exibidas mensagens indicando que uma determinada partição não foi encontrada. Após esse período de espera, o processo de inicialização continua, mas a partição problemática não é montada.
Isso geralmente acontece quando em /etc/fstab Existe uma entrada com um UUID que não existe maisTalvez seja porque você trocou de disco, formatou uma partição ou reinstalou outra distribuição no mesmo disco, o que gerou um novo identificador. O sistema tenta montar essa partição com um UUID que ninguém possui e espera até que ele expire. o tempo.
Um caso bastante comum ocorre quando você tem um sistema duplo (por exemplo, Ubuntu e Debian) compartilhando a mesma partição linux-swapImagine um disco com três partições: sdc1 como trocar, e sdc2 y sdc3 como partições raiz em ext4 para Ubuntu e Debian, respectivamente. Se você instalar o Ubuntu pela primeira vez em sdc3 e depois Debian em sdc2É comum que o instalador do Debian Reformatar a partição de swap e alterar seu UUID..
O resultado é que o primeiro sistema instalado (Ubuntu, neste exemplo) tem em seu /etc/fstab un UUID antigo para trocaAo iniciar, o sistema procura a partição com um identificador que não existe mais, espera o tempo máximo permitido, considera-a perdida e continua a inicialização sem montar a partição de swap. Não é o fim do mundo, mas é uma fonte de lentidão e consumo desnecessário de RAM.
Para diagnosticar casos como este, você pode usar ferramentas gráficas como... GPartedSe você não o tiver instalado, em distribuições baseadas em Debian você pode fazer isso com:
sudo apt install gparted
Após iniciar o GParted, selecione o disco e clique com o botão direito do mouse na partição de swap para escolher a opção para informaçãoAli você verá informações como o nome do dispositivo (sdc1), o tipo ( )linux-swap) E o UUID atualEsse é o identificador que também deve aparecer no /etc/fstab de cada sistema que utiliza essa troca.
A solução envolve editar o /etc/fstab do sistema que possui um UUID desatualizado (por exemplo, Ubuntu) e Substitua o UUID antigo pelo novo. que você viu no GParted ou com blkidVocê pode fazer isso com seu editor favorito, por exemplo:
sudo nano /etc/fstab
Após salvar as alterações, na próxima inicialização o sistema encontrará a partição de swap correta e o processo de inicialização voltará a ocorrer sem problemas. O mesmo procedimento se aplica a qualquer outra partição cujo UUID foi alterado devido a uma reinstalação, formatação ou clonagem mal executada.
Gerar e alterar UUIDs no Linux
Chega um momento em que ler UUIDs não é suficiente: você precisa Gerar novos identificadores ou alterar os existentes.Isso pode ser necessário ao clonar discos, quando se deseja evitar conflitos entre sistemas ou simplesmente para fins de organização. O Linux oferece diversas ferramentas para essas tarefas, algumas gerais (uuidgen) e outros específicos para determinados sistemas de arquivos (tune2fs para ext2/3/4).
Gere novos UUIDs com uuidgen.
Utilitário uuitgen É responsável por criar e exibir novos UUIDs, utilizando a biblioteca. libuuidaOs identificadores gerados são, na prática, únicos tanto no sistema local quanto em qualquer outro sistema, passado, presente ou futuro, uma vez que seguem padrões projetados para evitar colisões de uma forma estatisticamente muito improvável.
Existem principalmente dois modos de geração que ele suporta. uuidgen: UUIDs baseados em tempo y UUIDs aleatóriosOs primeiros usam o relógio e o endereço do sistema. MAC da placa de rede (se disponível), enquanto estas últimas dependem de uma gerador de números aleatórios alta qualidade, geralmente /dev/random o /dev/urandom.
Em algumas distribuições, como Debian 9 Alongamento, ferramenta uuidgen Não vem instalado por padrão. Nesse caso, você pode adicioná-lo instalando o pacote. uuid-runtime:
sudo apt update
sudo apt install uuid-runtime
Uma vez instalado, sua sintaxe geral é muito simples:
uuidgen
As opções mais comuns são:
- -r, –aleatório: gera um UUID com base em aleatoriedadeutilizando o gerador de números aleatórios do sistema.
- -t, –tempo: gera um UUID com base no hora e endereço MAC da máquina.
- -h, -ajudaExibe a ajuda e sai.
- -V, –versãoExibe a versão e sai.
Se você correr uuidgen Sem parâmetros, você obterá diretamente um novo UUID em seu terminal que você pode copiar e usar onde precisar, por exemplo, em scripts ou arquivos de configuração personalizados.
Alterar o UUID de uma partição ext2/3/4 com o tune2fs
Se o que você deseja é que uma partição existente tenha um novo UUIDNos sistemas de arquivos ext2, ext3 ou ext4, a ferramenta de referência é tune2fsEste comando permite modificar parâmetros internos do sistema de arquivos, incluindo seu identificador.
Antes de alterar qualquer coisa, é essencial. desmontar a partição Para evitar corrupção de dados. Digamos que você queira modificar o UUID de /dev/sdd4O fluxo básico seria:
sudo umount /dev/sdd4
Uma vez desmontado, você pode perguntar tune2fs que gera um novo UUID aleatório diretamente:
sudo tune2fs /dev/sdd4 -U random
Se preferir controlar o identificador específico você mesmo (por exemplo, para usar um gerado anteriormente com uuidgen), você também pode passar o valor explicitamente:
sudo tune2fs /dev/sdd4 -U 123e4567-e89b-12d3-a456-426614174000
Após a alteração, é uma boa ideia verificar o resultado com blkid ou revisando /dev/disk/by-uuid Para confirmar que o identificador foi atualizado:
sudo blkid /dev/sdd4
Lembre-se de que se essa partição aparecer em /etc/fstab ou outros arquivos de configuração, você precisará de Atualize manualmente o novo UUID Para impedir que o sistema continue a procurar o identificador antigo na inicialização.
Edite o arquivo /etc/fstab para usar UUIDs nas montagens.
A maneira recomendada de definir montagens persistentes no Linux é usar UUID em /etc/fstabA sintaxe geral para uma entrada baseada em UUID é algo como isto:
UUID={TU-UUID} /ruta/de/montaje tipo_fs opciones 0 1
Por exemplo, para um disco XFS destinado a backups, você poderia ter uma linha como esta:
UUID=8aa6c0d2-c18e-4606-b1da-f5f1f7617f00 /backups xfs rw,noquota,nofail 0 1
Neste exemplo, a opção sem falhas Isso faz com que o sistema não considere crítico se o disco não estiver presente na inicialização, o que é muito útil para unidades externas ou discos de backup que nem sempre estão conectados. Outras opções incluem sem cota o erros = remount-ro Isso depende do tipo de sistema de arquivos e do uso que você pretende dar a ele.
Depois de modificar /etc/fstab Para adicionar ou atualizar qualquer entrada, recomenda-se testar a configuração sem reiniciar, usando:
sudo mount -a
Se não houver erros, você poderá ver o resultado com:
df -h | grep backups
ou similar, substituindo backups pelo ponto de montagem que corresponde ao seu caso. Se algo der errado, verifique se o UUID está correto e se o sistema de arquivos indicado corresponde ao real.
Clonagem de sistema e conflitos de UUID
Um cenário que levanta muitas questões é a clonagem de sistemas inteiros, por exemplo, com ferramentas como... ClonezillaAo clonar um disco para outro, os dados são copiados. assim como as partições, seus sistemas de arquivos e seus UUIDsIsso significa que, por um tempo, você terá dois discos diferentes com partições que compartilham o mesmo identificador.
Essa sobreposição pode não ser um problema se você inicializar apenas a partir do clone ou do original alternadamente, mas se conectar ambos ao mesmo tempo na mesma máquina, é provável que ocorram erros. conflitos de UUIDO sistema não saberá exatamente a qual partição cada identificador corresponde, e você poderá enfrentar erros de montagem, tempos de inicialização confusos ou até mesmo ter partições do clone montadas onde você esperava que fossem do disco original.
Para evitar esses conflitos, é prática comum proceder Alterar os UUIDs das partições clonadas Após a clonagem, certifique-se de que cada disco esteja claramente diferenciado. Para partições ext4, você pode contar, como vimos anteriormente, com uuidgen para gerar novos identificadores e em tune2fs para aplicá-los.
Se o seu sistema tiver uma estrutura um pouco mais complexa, por exemplo, uma raiz em ext4 > LVM > LUKS (dm-crypt), você deve estar ciente de que pode haver UUID em vários níveisIsso inclui: arquivos do sistema de arquivos, arquivos de volume físico LVM, arquivos de volume lógico, arquivos de contêiner LUKS, etc. Além disso, arquivos como /etc/crypttab Eles podem fazer referência a esses identificadores.
Num caso típico de criptografia, o esquema poderia ser algo como isto:
nvme0n1 (disco físico)
├─nvme0n1p1 /boot/efi
├─nvme0n1p2 /boot
└─nvme0n1p3 (partición cifrada LUKS)
└─nvme0n1p3_crypt
├─sys--vg-root /
└─sys--vg-swap_1
Se você alterar os UUIDs em qualquer ponto desta cadeia, certifique-se de atualizar todos os locais onde eles são referenciados: /etc/fstab para pontos de montagem, /etc/crypttab para volumes criptografados e, em alguns casos, parâmetros de inicialização que o GRUB usa para localizar a raiz.
Com relação ao GRUB, em muitas configurações modernas ele mesmo... A entrada de menu usa UUID Para descobrir onde a partição raiz está localizada. Ou seja, algo como isto aparece na linha do kernel: root=UUID=...Ao regenerar o arquivo grub.cfg corrida update-grub (ou o comando equivalente na sua distribuição), o sistema lê novamente os discos e atualiza esses identificadores. Portanto, após modificar os UUIDs em um clone inicializável, é altamente recomendável inicializar a partir desse clone e executar uma regeneração da configuração do GRUB para garantir que tudo esteja consistente.
Na prática, o fluxo de trabalho razoável ao clonar um sistema completo e querer usá-lo em paralelo com o original geralmente é o seguinte:
- Inicialize a partir do clone (para evitar confusão com os nomes dos dispositivos).
- Altere os UUIDs das partições que deseja diferenciar (com
tune2fsou as ferramentas correspondentes a cada sistema de arquivos). - Atualizar / etc / fstab e, se aplicável, / etc / crypttab com os novos identificadores.
- Regenerar a configuração do GRUB (por exemplo, com
sudo update-grubno Debian/Ubuntu).
Embora possa parecer um pouco trabalhoso, essa abordagem garante que o clone será totalmente inicializável e independente do original, e que ambos podem coexistir na mesma máquina sem interferir um no outro.
Dominar o gerenciamento de UUIDs no Linux permite diagnosticar lentidão na inicialização, solucionar problemas com partições alteradas e configurar montagens mais robustas. /etc/fstabCompartilhar espaço de swap entre distribuições sem problemas e clonar sistemas inteiros mantendo tudo sob controle. No final, é apenas uma questão de identificar corretamente a qual partição cada partição pertence e verificar seu código com ferramentas como... blkid o ls -l /dev/disk/by-uuidE crie o hábito de revisar e atualizar os principais arquivos de configuração sempre que fizer alterações significativas em seus discos.
Escritor apaixonado pelo mundo dos bytes e da tecnologia em geral. Adoro compartilhar meu conhecimento por meio da escrita, e é isso que farei neste blog, mostrar a vocês tudo o que há de mais interessante sobre gadgets, software, hardware, tendências tecnológicas e muito mais. Meu objetivo é ajudá-lo a navegar no mundo digital de uma forma simples e divertida.