linux: Як я можу переглянути всі UUID на всіх доступних дисках в моїй системі?


153

Моє /etc/fstabмістить це:

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

У цій системі є декілька інших дисків, і не всі диски монтуються у потрібне місце (наприклад, / dev / sda1 та / dev / sdb1 іноді перевертаються).

Як я бачу UUID на всіх дисках в моїй системі? Чи можу я бачити UUID на третьому диску в цій системі?


@setzamora відповідь краще. Будь ласка, змініть прийняту відповідь.
nslntmnx

Відповіді:


134

В /dev/disk/by-uuidє символічні посилання , що відображають UUID кожного диска до його вступу в /dev(наприклад /dev/sda1)


3
Це не читається, коли розділи LVM.
Grzegorz Wierzowiecki

1
LVM вже використовує довгі UUID-подібні ідентифікатори (хоча представлені інакше) у своїй структурі. Я думаю, що єдиною причиною використання UUID файлової системи з LVM було б уніфікований інтерфейс для якоїсь автоматизації, оскільки LVM вже робить відображення LV для зручних для людини імен.
telcoM

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

157

Є інструмент під назвою blkid(використовуйте його як root або with sudo),

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

ви можете перевірити це посилання для отримання додаткової інформації


12
Лише незначний коментар: схоже, що член групи diskдостатньо для участі blkid; немає необхідності в повному обсязі привілеїв суперпользователя.
аріельф

10
Якщо ви хочете лише UUID (наприклад, для розбору сценарію), ви можете це зробити blkid /dev/sda1 -s UUID -o value.
Джек О'Коннор

3
Швидкий коментар тут: в моєму дистрибутиві (Debian 8) це дає UUID, а також "PARTUUID", що досить заплутано. Я використовував команди {lsblk}, що дає лише одне значення.
takumar

2
Це заощаджує багато часу, хоча я вважаю за краще blkid /dev/sd*перелічити всі диски. Інформація, яка виплескується, як правило, більше ніж достатня, щоб знайти потрібний диск. :)
ZaLiTHkA

2
PARTUUID для розділених на GPT дисків - це GPU UUID для розділу, а не для файлової системи в ньому. Може бути корисним, коли файлова система ще не створена. На диску з розділом MBR, PARTUUID - це не справжній UUID, а просто підпис диска Windows з MBR + номер тире + розділу.
telcoM

31

Найкраща команда для використання - це lsblk -f. У ньому будуть перераховані всі пристрої та розділи, спосіб їх встановлення (якщо він взагалі є) та структура дерева пристроїв у разі використання LVM, crypto_LUKS або декількох груп томів на одному диску.


10

Це працює для мене:

ls -la /dev/disk/by-uuid

Якщо ви хочете перевірити тип розділу, використовуйте:

df -Th

і він покаже вам, якщо у вас є ext3 або ext2. Сьогодні це допомогло мені, тому що там був відформатований розділ ext2, і я подумав, що це ext3, що спричинило збій програми.


Ви завжди можете спробувати mount -t auto /dev/sda1 /media/sda1.
ott--

8

Для отримання UUIDлише конкретного дискового пристрою (наприклад, для використання у сценарії) ви можете використовувати:

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

де /dev/sdXYназва пристрою.


6
lsblk -o +uuid,name

Ви можете бачити всі результати, які можна додати до -o( --output) за допомогою

lsblk --help

Також це зробить роботу

# blkid

Не nameдрукується за замовчуванням?
don_crissti

Це є. Додано це лише для освітніх цілей (додайте кому, щоб розділити потрібні поля)
Ніко Родзевич

2

Попередні відповіді не працюють для декількох пристроїв або для пристроїв з однаковими UUID.

Спробуйте це:

sudo blkid /dev/sd*

1
Дійсно? Ти маєш на увазі, відповідь, яка найбільше голосує, не працює?
don_crissti

Універсальний унікальний ідентифікатор (UUID) завжди повинен бути унікальним. Вся мета UUID - бути унікальним, універсальним. Якщо ні, то є проблема. Я бачив дублювання UUID в клонованих VM, принаймні, для мережевих пристроїв.
Стефан Ласевський

5
Якщо ви клонуєте розділ за допомогою ddкоманди, копія матиме однаковий uuid і так, це проблема. Інші відповіді тут не показують цього.
Кевін

1

За допомогою наступного командного рядка ви можете побачити UUID плюс відображення на розділи.

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

Чому ми можемо побачити uuid sda
Honghe.Wu

Існує один UUID для файлової системи на розділ. На sda у мене є 4 розділи, тому у мене було 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

У мене така ж проблема, як і у вас: перейменування ядра /dev/sd**після перезавантаження:

Звичайно, на всі мої автоматичні кріплення /etc/fstabпосилаються LABEL або UUID, так що в основному для цього немає жодної проблеми. І всі команди вище, blkid або lsblk, дають подібну інформацію.

Але проблема починається так, як у моєму випадку, коли ви використовуєте розділ у режимі RAW, у поточно завантаженій системній точці перегляду: наприклад або: розділ використовується як необроблений пристрій, щоб зробити віртуальний диск для VirtualBox (так посилання на цей розділ є чимось на зразок /dev/sdf3:) або розділ використовується як необроблений пристрій, щоб зробити LUN для iSCSI (тому посилання на цей розділ є чимось на зразок /dev/sdc6:)

Тому під час завантаження, наприклад, у rc.local, ви повинні надійно знайти, яким є /dev/sdXXпристрій вашого виділеного розділу RAW, та адаптувати якийсь файл:

ПРИКЛАД 1

Диск VirtualBox * .vmk опис цього неочищеного диска, в частині щось подібне:

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

а потім перезапустіть службу VirtualBox

ПРИКЛАД 2

у конфігурації tgtd, ціль: target0 була пов’язана з /dev/sdd6часом нарощування. Після перезавантаження ви перейменований той самий розділ. /deb/sdc6 Це відбувається зі змінним диском, USB або eSATA! Тож як знайти новий пристрій автоматично? Знову в /etc/rc.d/rc.local

Тож у цьому випадку нам потрібен надійний спосіб знайти те, що нове ім’я пристрою. Розділ GPT пропонує унікальний GUID для будь-якого розділу GPT, записаний у таблиці GPT.

gdisk не забезпечує цю інформацію в режимі лістингу, а лише в інтерактивному режимі з командою: i. На щастя, blkid це робить!

Тому потрібно написати скрипт оболонки, щоб подивитися на всіх своїх дисках, що є пристроєм /dev/sdXX, пов’язаним із GUID, поміченим під час створення розділу.

Щось на зразок, 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

а потім використовуйте /dev/shm/blkdeviceу своєму сценарії rc.local.


0

Щоб побачити uuid розділу жорсткого диска, я просто завантажую систему з компакт-диска Linux і перейдіть на кріплення комп'ютера, натисніть на розділ, який я хочу бачити. Буде показано uuid номер розділу Linux.

Ви також можете побачити диск uuid, запустивши утиліту Linux Disk після завантаження компакт-диска Linux.


Що таке "кріплення мого комп'ютера"? А що таке "утиліта Linux Disk", схожа на утиліту gnome-disk aka aka Disks?
Xen2050
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.