it-swarm-ru.tech

Linux: Как я могу просмотреть все UUID для всех доступных дисков в моей системе?

Мой /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 для третьего диска в этой системе?

177
Stefan Lasiewski

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

155
Michael Mrozek

Есть инструмент под названием blkid (используйте его как root или с Sudo),

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

вы можете проверить эта ссылка для получения дополнительной информации

186
setzamora

Лучшая команда для использования это lsblk -f. В нем будут перечислены все устройства и разделы, как они смонтированы (если есть), а также древовидная структура устройств в случае использования LVM, crypto_LUKS или нескольких групп томов на одном диске.

46
John Rea

Чтобы получить только UUID определенного дискового устройства (например, для использования в скрипте), вы можете использовать:

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

где /dev/sdXY это имя устройства.

14
Strahinja Kustudic

Это работает для меня:

ls -la /dev/disk/by-uuid

Если вы хотите проверить тип раздела, используйте:

df -Th

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

11
MIrra
lsblk -o +uuid,name

Вы можете увидеть все выходы, которые можно добавить к -o (--output) с

lsblk --help

Также это сделает работу

# blkid
7
Nico Rodsevich

Предыдущие ответы не работают для нескольких устройств или для устройств с одинаковыми UUID.

Попробуй это:

Sudo blkid /dev/sd*
2
Kevin

В следующей командной строке вы можете увидеть 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
1
Nicolas Guérinet

У меня та же проблема, что и у вас: переименование ядром /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.

1
эруан абгралов

В этих случаях вам нужно проверить/dev/disk/by-partuuid. есть символические ссылки, сопоставляющие PARTUUID каждого диска с его записью в/dev/sdb1 и т. д.

0
Sachin Mokashi

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

Вы также можете увидеть диск uuid, запустив утилиту Linux Disk после загрузки компакт-диска Linux.

0
man puk tam