linux: Como posso visualizar todos os UUIDs de todos os discos disponíveis no meu sistema?

154

My /etc/fstabcontém isso:

# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1

Existem vários outros discos neste sistema e nem todos os discos estão sendo montados no local correto (por exemplo, / dev / sda1 e / dev / sdb1 às vezes são revertidos).

Como posso ver os UUIDs para todos os discos no meu sistema? Posso ver o UUID para o terceiro disco neste sistema?

Stefan Lasiewski
fonte
@setzamora resposta é melhor. Altere a resposta aceita.
Nslntmnx 22/11/19

Respostas:

135

No /dev/disk/by-uuidexistem ligações simbólicas mapeando UUID de cada unidade para a sua entrada em /dev(por exemplo /dev/sda1)

Michael Mrozek
fonte
3
Não é legível quando o LVM particiona.
Grzegorz Wierzowiecki 18/09/11
1
O LVM já usa identificadores longos do tipo UUID (embora apresentados de forma diferente) em sua estrutura. Eu acho que a única razão para usar UUIDs de sistema de arquivos com LVM seria como uma interface unificada para algum tipo de automação, pois o LVM já faz o mapeamento de LVs para nomes amigáveis ​​para você.
Telcom
2
ls -lha /dev/disk/by-uuid
DeFreitas
159

Existe uma ferramenta chamada blkid(use-a como root ou com sudo),

# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"

você pode verificar este link para mais informações

setzamora
fonte
12
Apenas um pequeno comentário: parece que ser membro do grupo diské suficiente para ser executado blkid; não há necessidade de privilégios completos de superusuário.
Arielf
10
Se você quiser apenas o UUID (como para analisar em um script), poderá fazê-lo blkid /dev/sda1 -s UUID -o value.
Jack O'Connor
3
Comentário rápido aqui: na minha distribuição (Debian 8), isso gera UUID e também "PARTUUID", o que é bastante confuso. Eu usei {lsblk} comandos que fornecem apenas um valor.
takumar 12/09
2
Este economiza muito tempo, embora eu prefira fazer blkid /dev/sd*uma lista de todas as unidades. As informações exibidas geralmente são mais que suficientes para encontrar a unidade que você precisa. :)
ZaLiTHkA
2
O PARTUUID para discos particionados por GPT é o UUID da GPT para a partição, não para o sistema de arquivos nela. Pode ser útil quando um sistema de arquivos ainda não foi criado. Em um disco particionado por MBR, PARTUUID não é um UUID real, mas simplesmente uma assinatura de disco do Windows do MBR + um número de partição + traço +.
TelcoM 28/01
31

O melhor comando para usar é lsblk -f. Ele listará todos os dispositivos e partições, como eles são montados (se houver) e a estrutura em árvore dos dispositivos no caso de usar LVM, crypto_LUKS ou vários grupos de volumes na mesma unidade.

John Rea
fonte
10

Isso funciona para mim:

ls -la /dev/disk/by-uuid

Se você deseja verificar qual o tipo da partição, use:

df -Th

e mostrará se você possui ext3 ou ext2. Hoje, isso me ajudou porque havia uma partição ext2 formatada e eu pensei que era ext3, o que estava causando a falha da montagem.

MIrra
fonte
Você sempre pode tentar mount -t auto /dev/sda1 /media/sda1.
ott--
8

Para obter apenas o UUIDde um dispositivo de disco específico (por exemplo, para ser usado em um script), você pode usar:

sudo blkid -s UUID -o value /dev/sdXY

onde /dev/sdXYé o nome do dispositivo.

Strahinja Kustudic
fonte
6
lsblk -o +uuid,name

Você pode ver todas as saídas que podem ser adicionadas ao -o( --output) com

lsblk --help

Além disso, isso fará o trabalho

# blkid
Nico Rodsevich
fonte
Não é nameimpresso por padrão?
22417 Don_crissti
isto é. Adicionado lo apenas para fins educacionais (adicione a vírgula para separar os campos que deseja)
Nico Rodsevich
2

As respostas anteriores não funcionam para vários dispositivos ou para dispositivos com UUIDs idênticos.

Tente o seguinte:

sudo blkid /dev/sd*
Kevin
fonte
1
Realmente ? Você quer dizer que a resposta mais votada não funciona?
don_crissti
Um identificador universalmente exclusivo (UUID) deve sempre ser exclusivo. Todo o objetivo de um UUID é ser único, universalmente. Caso contrário, há um problema. Vi UUIDs duplicados em VMs clonadas, pelo menos para dispositivos de rede.
Stefan Lasiewski
5
Se você clonar uma partição com o ddcomando, a cópia terá o mesmo uuid e sim, isso é um problema. As outras respostas aqui não mostrariam isso.
Kevin
1

Com a seguinte linha de comando, você pode ver UUID mais o mapeamento para partições.

ls /dev/disk/by-uuid -lt

lrwxrwxrwx 1 root root 10 Sep  1 18:51 57eacf4e-1940-436e-b945-85f8d4833aa5 -> ../../sda2
lrwxrwxrwx 1 root root 10 Sep  1 18:51 656f4cae-8527-43a0-a80f-00ac82818744 -> ../../sda1
lrwxrwxrwx 1 root root  9 Sep  1 18:51 d627595d-4060-440e-8380-a1fe9f3f2a81 -> ../../md0
lrwxrwxrwx 1 root root 10 Sep  1 18:51 0dfd6dfe-1852-460d-852c-676a5b9035ed -> ../../sda4
lrwxrwxrwx 1 root root 10 Sep  1 18:51 b1ddf850-8f81-429f-a653-38ae4a4ebb6f -> ../../sda3
lrwxrwxrwx 1 root root  9 Sep  1 18:51 b4b729f7-5699-411c-8f5a-424bbc7c89fc -> ../../sdb
Nicolas Guérinet
fonte
Por que podemos ver o uuid de sda
Honghe.Wu
Há um UUID para um sistema de arquivos por partição. No sda, eu tenho 4 partições, então eu tinha 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet
1

Eu tenho o mesmo problema que você: renomear pelo kernel /dev/sd**após uma reinicialização:

É claro que toda a minha montagem automática /etc/fstabé referenciada por LABEL ou por UUID, portanto, basicamente, não há problema para isso. E todos os comandos acima, blkid ou lsblk, fornecem esse tipo de informação.

Mas o problema começa como no meu caso, quando você está usando uma partição no modo RAW, no ponto de vista do sistema atualmente inicializado: por exemplo: a partição é usada como dispositivo bruto, para criar um disco virtual para o VirtualBox (então a referência a esta partição é algo como /dev/sdf3:) ou a partição é usada como dispositivo bruto, para criar um LUN para iSCSI (portanto, a referência a essa partição é algo como /dev/sdc6:)

Portanto, agora na inicialização, por exemplo, no rc.local, você precisa encontrar de maneira confiável qual é o /dev/sdXXdispositivo da sua partição RAW dedicada e adaptar alguns arquivos:

EXEMPLO 1

A descrição do disco VirtualBox * .vmk deste disco bruto, na parte algo como:

\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0

e, em seguida, reinicie o serviço VirtualBox

EXEMPLO 2

na configuração tgtd, um target: target0 foi associado /dev/sdd6no momento da construção. Após a reinicialização, a mesma partição é renomeada. /deb/sdc6 Isso acontece com um disco removível, USB ou eSATA! Então, como encontrar o novo dispositivo automaticamente? Novamente em /etc/rc.d/rc.local

Portanto, neste caso, precisamos de uma maneira confiável para encontrar qual é o novo nome do dispositivo. A partição GPT oferece GUID exclusivo para qualquer partição GPT, escrita na tabela GPT.

O gdisk não fornece essas informações com o modo de listagem, mas apenas no modo interativo com o comando: i. Felizmente, o blkid faz isso!

Portanto, você precisa escrever um script de shell para procurar em todos os seus discos, que são o dispositivo /dev/sdXX, associado ao GUID observado no momento da criação da partição.

Algo como, search_device_by_partUUID.sh:

\#!/bin/bash

PART_UUID=$1
if [ "$PART_UUID" = "" ]
then
    echo "Syntax: $0 <a valid partition UUID>"
    exit 3
fi
lsblk | grep '^sd' | awk '{print $1}' | while read DISK_DEVICE
do 
    INFO=`blkid /dev/${DISK_DEVICE}* | grep "PARTUUID=\"$PART_UUID\"" `
    if [ "$INFO" != "" ]
    then
        echo INFO : "$INFO"
        BLK_DEVICE=`echo "$INFO" | awk '{print $1}'`
        echo $BLK_DEVICE > /dev/shm/blkdevice
        echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
    fi
done

e então use /dev/shm/blkdevice, no seu script rc.local.

эруан абгралов
fonte
0

Para ver o uuid de uma partição do disco rígido, basta inicializar o sistema com um CD do Linux e ir para a montagem do meu computador, clique em, na partição que quero ver. O número de uuid da partição Linux será exibido.

Você também pode ver o disco uuid executando o utilitário Linux Disk após a inicialização do CD do Linux.

man puk tam
fonte
O que é "montagem no meu computador"? E o que é o "Linux Disk Utility", soa como o gnome-disk-utility, também conhecido como Discos?
Xen2050 30/11/2018