linux: Sistemimdeki mevcut tüm diskler için tüm UUID'leri nasıl görebilirim?


154

Benim şunu /etc/fstabiçeriyor:

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

Bu sistemde başka birçok disk vardır ve tüm diskler doğru yere monte edilmez (Örneğin, / dev / sda1 ve / dev / sdb1 bazen tersine çevrilir).

Sistemimdeki tüm disklerin UUID'lerini nasıl görebilirim? Bu sistemdeki üçüncü disk için UUID'yi görebilir miyim?


@ setzamora cevap daha iyi. Lütfen kabul edilen cevabı değiştirin.
nslntmnx

Yanıtlar:


135

İçinde /dev/disk/by-uuidher sürücünün UUID'sini /dev(örn. /dev/sda1) Girişiyle eşleyen sembolik bağlantılar vardır.


3
LVM bölümlendiğinde okunamaz.
Grzegorz Wierzowiecki

1
LVM zaten yapısında (farklı bir şekilde sunulmasına rağmen) uzun UUID benzeri tanımlayıcılar kullanıyor. LVM ile dosya sistemi UUID'lerini kullanmanın tek sebebi, LVM'nin sizin için insan dostu isimlerle eşleştirdiği haliyle, bir tür otomasyon için birleşik bir arayüz gibi olacağını düşünüyorum.
telcoM,

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

159

Adında bir araç var blkid(onu root ya da ile kullanın sudo),

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

daha fazla bilgi için bu bağlantıyı kontrol edebilirsiniz


12
Sadece küçük bir yorum: bir gruba üye olmak diskkoşmak için yeterli görünüyor blkid; Süper kullanıcı ayrıcalıklarına gerek yok.
arielf

10
İsterseniz sadece (bir komut dosyası ayrıştırma için benzeri) UUID, yapabileceğiniz blkid /dev/sda1 -s UUID -o value.
Jack O'Connor,

3
Burada hızlı yorum: benim dağıtımımda (Debian 8), bu oldukça kafa karıştırıcı olan "PARTUUID" yanı sıra UUID'yi de veriyor. Sadece bir değer veren {lsblk} komutlarını kullandım.
takumar

2
blkid /dev/sd*Tüm sürücülerin listelenmesini tercih etsem de, bu işlem çok fazla zaman kazandırıyor. Tüküren bilgi genellikle ihtiyacınız olan sürücüyü bulmak için fazlasıyla yeterli. :)
ZaLiTHkA

2
GPT bölümlenmiş diskler için PARTUUID, içindeki dosya sistemi için değil, bölüm için GPT UUID'dir. Bir dosya sistemi henüz oluşturulmadığında yararlı olabilir. MBR bölümlenmiş bir diskte, PARTUUID gerçek bir UUID değil, yalnızca MBR + bir çizgi + bölüm numarasından bir Windows Disk İmzasıdır.
telcoM,

31

Kullanılacak en iyi komut lsblk -f. Tüm aygıtları ve bölümleri, nasıl monte edildiklerini (eğer varsa) ve aynı sürücüde LVM, crypto_LUKS veya çoklu cilt gruplarının kullanılması durumunda cihazların ağaç yapısını listeler.


10

Bu benim için çalışıyor:

ls -la /dev/disk/by-uuid

Bölümün ne tür olduğunu kontrol etmek istiyorsanız, şunu kullanın:

df -Th

ext3 veya ext2'niz olup olmadığını gösterir. Bugün bana yardımcı oldu, çünkü biçimlendirilmiş bir ext2 bölümü vardı ve bu bağın başarısız olmasına neden olan ext3 olduğunu düşündüm.


Her zaman deneyebilirsin mount -t auto /dev/sda1 /media/sda1.
ott

8

Yalnızca UUIDbelirli bir disk cihazından (örneğin bir komut dosyasında kullanılmak üzere) yararlanmak için şunları kullanabilirsiniz:

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

/dev/sdXYcihazın adı nerede .


6
lsblk -o +uuid,name

Sen eklenebilir tüm çıkışları görebilirsiniz -o( --outputbirlikte)

lsblk --help

Ayrıca bu işi yapacak

# blkid

Is not namevarsayılan olarak basılmış?
don_crissti

bu. Sadece eğitim amaçlı
ekledi (

2

Önceki cevaplar birden fazla cihaz için veya aynı UUID'ye sahip cihazlar için geçerli değildir.

Bunu dene:

sudo blkid /dev/sd*

1
Gerçekten mi ? En çok oylanan cevap işe yaramıyor mu demek istiyorsun?
don_crissti

Evrensel olarak benzersiz bir tanımlayıcı (UUID) her zaman benzersiz olmalıdır. Bir UUID'nin tüm amacı evrensel olarak benzersiz olmaktır. Olmazsa, bir sorun var. En azından ağ cihazları için kopyalanmış UUID'leri klonlanmış sanal makinelerde gördüm.
Stefan Lasiewski

5
Komutla bir bölümü ddklonlarsanız, kopya aynı kullanıcı birimine sahip olacak ve evet, bu bir sorun. Buradaki diğer cevaplar bunu göstermez.
Kevin

1

Aşağıdaki komut satırı ile UUID'in yanı sıra bölümlere eşlemeyi görebilirsiniz.

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


Bölüm başına bir dosya sistemi için bir UUID var. Sda'da 4 bölmem var, 4 UUID'im vardı. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

Seninle aynı sorunu yaşıyorum: yeniden /dev/sd**başlatmanın ardından çekirdeği tarafından yeniden adlandırma :

Tabii ki tüm otomatik /etc/fstabmontajım LABEL veya UUID tarafından gösteriliyor, dolayısıyla temelde bunun için bir sorun yok. Ve yukarıdaki tüm komutlar blkid veya lsblk, bu tür bilgileri verir.

Ancak sorun benim durumumda olduğu gibi, bölümü RAW modunda kullanırken, şu anda önyüklemeli sistem bakış açısında kullanıyorsanız: örneğin ya: bölüm, VirtualBox için sanal bir disk oluşturmak için ham aygıt olarak kullanılır (yani bu bölüme yapılan referans şuna benzer /dev/sdf3:) veya bölüm ham aygıt olarak kullanılır, iSCSI için bir LUN yapmak için kullanılır (bu bölüme yapılan referans şuna benzer /dev/sdc6)

Öyleyse şimdi açılışta, örneğin rc.local'da, güvenilir bir şekilde, /dev/sdXXtahsis edilmiş RAW bölümünüzün aygıtı nedir ve bazı dosyaları uyarlamanız gerekir:

ÖRNEK 1

Bu sanal diskin VirtualBox diski * .vmk açıklaması, şöyle bir bölümde:

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

ve sonra VirtualBox hizmetini yeniden başlatın

ÖRNEK 2

tgtd konfigürasyonunda, bir hedef: target0 /dev/sdd6derleme zamanında ilişkilendirildi . Yeniden başlattıktan sonra yeniden adlandırılan aynı bölümü alırsınız. /deb/sdc6 Bu çıkarılabilir disk, USB veya eSATA! Peki yeni cihaz otomatik olarak nasıl bulunur? Yine /etc/rc.d/rc.local içinde

Dolayısıyla bu durumda, yeni cihaz adının ne olduğunu bulmak için güvenilir bir yönteme ihtiyacımız var. GPT bölümü, GPT tablosunda yazılı olan herhangi bir GPT bölümü için benzersiz bir GUID sunar.

gdisk bu bilgiyi listeleme modunda sağlamaz, fakat sadece interaktif modda: i command. Neyse ki, blkid yapar!

Bu nedenle /dev/sdXX, bölüm oluşturma sırasında fark edilen GUID ile ilişkili olan tüm disklerinize bakmak için bir kabuk betiği yazmanız gerekir .

Search_device_by_partUUID.sh gibi bir şey:

\#!/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

ve sonra /dev/shm/blkdevice, rc.local komut dosyanızda kullanın.


0

Bir sabit disk bölümünün uuid'sini görmek için sadece bir Linux CD'sini kullanarak sistemi açtım ve bilgisayar montajımı yapmak için tıklayın, görmek istediğim bölümü tıklayın. Linux bölümünün uuid numarası görüntülenecektir.

Ayrıca, Linux CD önyüklemesinden sonra Linux Disk yardımcı programını çalıştırarak diski uuid görebilirsiniz.


"Bilgisayarımın montajı" nedir? Ve "Linux Disk yardımcı programı" nedir, gnome-disk-utility ve Diskler gibi.
Xen2050,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.