linux: Jak mogę wyświetlić wszystkie UUID dla wszystkich dostępnych dysków w moim systemie?


153

Mój /etc/fstabzawiera to:

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

W tym systemie jest kilka innych dysków i nie wszystkie dyski są montowane w prawidłowej lokalizacji (na przykład czasami / dev / sda1 i / dev / sdb1 są odwrócone).

Jak mogę zobaczyć UUID dla wszystkich dysków w moim systemie? Czy mogę zobaczyć identyfikator UUID trzeciego dysku w tym systemie?


Odpowiedź @setzamora jest lepsza. Zmień zaakceptowaną odpowiedź.
nslntmnx

Odpowiedzi:


134

W /dev/disk/by-uuidistnieją dowiązania odwzorowujące UUID każdego dysku do jego wejścia w /dev(na przykład /dev/sda1)


3
Nie można go odczytać w przypadku partycji LVM.
Grzegorz Wierzowiecki

1
LVM używa już w swojej strukturze długich identyfikatorów podobnych do UUID (chociaż prezentowanych inaczej). Myślę, że jedynym powodem użycia identyfikatora UUID systemu plików z LVM byłby ujednolicony interfejs do pewnego rodzaju automatyzacji, ponieważ LVM już mapuje LV na nazwy przyjazne dla ludzi.
telcoM

2
ls -lha /dev/disk/by-uuid
deFreitas,

157

Istnieje narzędzie o nazwie blkid(użyj go jako root lub z sudo),

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

możesz sprawdzić ten link, aby uzyskać więcej informacji


12
Drobny komentarz: wygląda na to, że bycie członkiem grupy diskwystarcza do uruchomienia blkid; nie ma potrzeby posiadania pełnych uprawnień administratora.
arielf

10
Jeśli chcesz tylko identyfikator UUID (na przykład podczas analizowania w skrypcie), możesz to zrobić blkid /dev/sda1 -s UUID -o value.
Jack O'Connor,

3
Szybki komentarz tutaj: w mojej dystrybucji (Debian 8) daje to zarówno UUID, jak i „PARTUUID”, co jest dość mylące. Użyłem poleceń {lsblk}, które dają tylko jedną wartość.
takumar

2
Ten pozwala zaoszczędzić sporo czasu, chociaż wolę zrobić blkid /dev/sd*listę wszystkich dysków. Informacje, które wypluwają, są na ogół więcej niż wystarczające, aby znaleźć potrzebny dysk. :)
ZaLiTHkA

2
PARTUUID dla dysków z partycjami GPT to UUID GPT dla partycji, a nie dla systemu plików w niej zawartego. Może się przydać, gdy system plików nie został jeszcze utworzony. Na dysku z partycjami MBR PARTUUID nie jest prawdziwym UUID, ale po prostu sygnaturą dysku systemu Windows z MBR + myślnik + numer partycji.
telcoM

31

Najlepszym poleceniem do użycia jest lsblk -f. Spowoduje to wyświetlenie listy wszystkich urządzeń i partycji, sposobu ich montowania (jeśli w ogóle) oraz struktury drzewiastej urządzeń w przypadku korzystania z LVM, crypto_LUKS lub wielu grup woluminów na tym samym dysku.


10

To działa dla mnie:

ls -la /dev/disk/by-uuid

Jeśli chcesz sprawdzić, jaki jest typ partycji, użyj:

df -Th

i pokaże ci, czy masz ext3 lub ext2. Dzisiaj pomogło mi to, ponieważ istniała sformatowana partycja ext2 i pomyślałem, że to ext3, co spowodowało błąd montowania.


Zawsze możesz spróbować mount -t auto /dev/sda1 /media/sda1.
ott--

8

Aby uzyskać tylko UUIDokreślone urządzenie dyskowe (na przykład do użycia w skrypcie), możesz użyć:

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

gdzie /dev/sdXYjest nazwa urządzenia.


6
lsblk -o +uuid,name

Możesz zobaczyć wszystkie wyjścia, które można dodać do -o( --output) za pomocą

lsblk --help

Również to spełni zadanie

# blkid

Nie jest namedrukowane domyślnie?
don_crissti

to jest. Dodano go tylko do celów edukacyjnych (dodaj przecinek, aby oddzielić pola, które chcesz)
Nico Rodsevich

2

Poprzednie odpowiedzi nie działają dla wielu urządzeń lub dla urządzeń z identycznymi identyfikatorami UUID.

Spróbuj tego:

sudo blkid /dev/sd*

1
Naprawdę Masz na myśli, że najczęściej głosowana odpowiedź nie działa?
don_crissti

Uniwersalny unikalny identyfikator (UUID) powinien zawsze być unikalny. Ogólnym celem UUID jest bycie unikalnym, uniwersalnym. Jeśli nie, to jest problem. Widziałem zduplikowane UUID w sklonowanych maszynach wirtualnych, przynajmniej dla urządzeń sieciowych.
Stefan Lasiewski

5
Jeśli sklonujesz partycję za pomocą ddpolecenia, kopia będzie miała ten sam identyfikator użytkownika i tak, to jest problem. Inne odpowiedzi tutaj tego nie pokazują.
Kevin

1

W poniższym wierszu poleceń możesz zobaczyć UUID oraz mapowanie na partycje.

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

Dlaczego możemy zobaczyć identyfikator
UDA

Istnieje jeden identyfikator UUID dla systemu plików na partycję. Na sda mam 4 partycje, więc miałem 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

Mam taki sam problem jak Ty: zmiana nazwy przez jądro /dev/sd**po ponownym uruchomieniu:

Oczywiście wszystkie moje automatyczne instalacje /etc/fstabsą przywoływane przez LABEL lub UUID, więc w zasadzie nie ma z tym problemu. Wszystkie powyższe polecenia, blkid lub lsblk, podają tego rodzaju informacje.

Ale problem zaczyna się, jak w moim przypadku, gdy używasz partycji w trybie RAW, w aktualnie uruchomionym systemie z punktu widzenia: na przykład: partycja jest używana jako surowe urządzenie, aby utworzyć wirtualny dysk dla VirtualBox (więc odniesienie do tej przegrody jest podobnie jak: /dev/sdf3) lub partycji może być używany jako urządzenie surowca, aby uczynić LUN iSCSI (tak, odniesienie do tej partycji jest czymś: /dev/sdc6)

Tak więc teraz podczas uruchamiania, na przykład w rc.local, musisz w wiarygodny sposób znaleźć /dev/sdXXurządzenie dedykowanej partycji RAW i dostosować niektóre pliki:

PRZYKŁAD 1

Dysk VirtualBox * .vmk opis tego surowego dysku, w części coś takiego:

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

a następnie uruchom ponownie usługę VirtualBox

PRZYKŁAD 2

w konfiguracji tgtd cel: cel0 był powiązany /dev/sdd6w czasie kompilacji. Po ponownym uruchomieniu otrzymujesz nazwę /deb/sdc6 tej samej partycji. Dzieje się tak w przypadku dysku wymiennego, USB lub eSATA! Jak więc automatycznie znaleźć nowe urządzenie? Znów w /etc/rc.d/rc.local

Dlatego w tym przypadku potrzebujemy niezawodnego sposobu na znalezienie nowej nazwy urządzenia. Partycja GPT oferuje unikalny identyfikator GUID dla dowolnej partycji GPT zapisany w tabeli GPT.

gdisk nie udostępnia tych informacji w trybie listowania, ale tylko w trybie interaktywnym z poleceniem: i. Na szczęście blkid to robi!

Musisz więc napisać skrypt powłoki, aby przeglądać wszystkie dyski, którymi jest urządzenie /dev/sdXX, powiązane z identyfikatorem GUID zauważonym podczas tworzenia partycji.

Coś w stylu, 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

a następnie użyj /dev/shm/blkdevicew swoim skrypcie rc.local.


0

Aby zobaczyć identyfikator partycji dysku twardego, po prostu uruchamiam system z płyty CD z systemem Linux i instaluję komputer, kliknij partycję, którą chcę zobaczyć. Wyświetlony zostanie numer UUID partycji Linux.

Możesz także zobaczyć identyfikator dysku, uruchamiając narzędzie Linux Disk po uruchomieniu systemu Linux CD.


Co to jest „mój komputer”? A co to jest „Linux Disk Utility”, brzmi jak gnome-disk-utility aka Disks?
Xen2050,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.