linux: Bagaimana saya bisa melihat semua UUID untuk semua disk yang tersedia di sistem saya?


155

Saya /etc/fstabmengandung ini:

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

Ada beberapa disk lain di sistem ini, dan tidak semua disk sedang dipasang ke lokasi yang benar (Misalnya, / dev / sda1 dan / dev / sdb1 kadang-kadang terbalik).

Bagaimana saya bisa melihat UUID untuk semua disk di sistem saya? Bisakah saya melihat UUID untuk disk ketiga pada sistem ini?


@setzamora jawabannya lebih baik. Harap ubah jawaban yang diterima.
nslntmnx

Jawaban:


135

Di /dev/disk/by-uuidsana ada symlinks pemetaan masing-masing UUID drive untuk masuk di /dev(misalnya /dev/sda1)


3
Itu tidak dapat dibaca ketika LVM partisi.
Grzegorz Wierzowiecki

1
LVM sudah menggunakan pengidentifikasi seperti UUID yang panjang (meskipun disajikan secara berbeda) dalam strukturnya. Saya pikir satu-satunya alasan untuk menggunakan filesystem UUID dengan LVM adalah sebagai antarmuka terpadu untuk beberapa jenis otomatisasi, karena LVM sudah melakukan pemetaan LVs ke nama yang ramah manusia untuk Anda.
telcoM

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

160

Ada alat yang disebut blkid(gunakan sebagai root atau dengan sudo),

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

Anda dapat memeriksa tautan ini untuk info lebih lanjut


12
Hanya komentar kecil: sepertinya menjadi anggota grup disksudah cukup untuk dijalankan blkid; tidak perlu untuk hak superuser penuh.
arielf

10
Jika Anda hanya menginginkan UUID (seperti untuk parsing dalam skrip), Anda dapat melakukannya blkid /dev/sda1 -s UUID -o value.
Jack O'Connor

3
Komentar cepat di sini: di distro saya (Debian 8) ini menghasilkan UUID dan juga "PARTUUID", yang agak membingungkan. Saya menggunakan perintah {lsblk} yang hanya memberikan satu nilai.
takumar

2
Yang ini menghemat banyak waktu, meskipun saya lebih suka melakukan blkid /dev/sd*daftar semua drive .. Info yang meludah umumnya lebih dari cukup untuk menemukan drive yang Anda butuhkan. :)
ZaLiTHkA

2
PARTUUID untuk disk yang dipartisi GPT adalah UUPT GPT untuk partisi tersebut, bukan untuk sistem file di dalamnya. Mungkin bermanfaat ketika sistem file belum dibuat. Pada disk yang dipartisi MBR, PARTUUID bukanlah UUID yang asli, tetapi hanya Windows Disk Signature dari MBR + a dash + nomor partisi.
telcoM

32

Perintah terbaik untuk digunakan adalah lsblk -f. Ini akan mencantumkan semua perangkat dan partisi, bagaimana mereka dipasang (jika sama sekali) dan struktur pohon perangkat jika menggunakan LVM, crypto_LUKS, atau beberapa grup volume pada drive yang sama.


10

Ini bekerja untuk saya:

ls -la /dev/disk/by-uuid

Jika Anda ingin memeriksa jenis partisi itu, gunakan:

df -Th

dan itu akan menunjukkan kepada Anda jika Anda memiliki ext3 atau ext2. Hari ini membantu saya karena ada partisi ext2 yang diformat dan saya pikir itu adalah ext3, yang menyebabkan mount gagal.


Anda selalu bisa mencoba mount -t auto /dev/sda1 /media/sda1.
ott--

8

Untuk hanya memanfaatkan UUIDperangkat disk tertentu (misalnya untuk digunakan dalam skrip) Anda dapat menggunakan:

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

di mana /dev/sdXYnama perangkat.


6
lsblk -o +uuid,name

Anda dapat melihat semua output yang dapat ditambahkan ke -o( --output) dengan

lsblk --help

Ini juga akan melakukan pekerjaan

# blkid

Tidak namedicetak secara default?
don_crissti

ini. Menambahkannya hanya untuk tujuan pendidikan (tambahkan koma untuk memisahkan bidang yang Anda inginkan)
Nico Rodsevich

2

Jawaban sebelumnya tidak berfungsi untuk beberapa perangkat atau untuk perangkat dengan UUID yang identik.

Coba ini:

sudo blkid /dev/sd*

1
Benarkah ? Maksud Anda, jawaban yang paling banyak dipilih tidak berfungsi?
don_crissti

Pengidentifikasi unik universal (UUID) harus selalu unik. Seluruh tujuan UUID adalah untuk menjadi unik, secara universal. Jika tidak, ada masalah. Saya telah melihat duplikasi UUIDs di VM kloning, setidaknya untuk perangkat jaringan.
Stefan Lasiewski

5
Jika Anda mengkloning partisi dengan ddperintah copy akan memiliki uuid yang sama dan ya, itu masalah. Jawaban lain di sini tidak akan menunjukkan itu.
Kevin

1

Dengan baris perintah berikut Anda dapat melihat UUID plus pemetaan ke partisi.

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

Mengapa kita bisa melihat uda dari sda
Honghe.Wu

Ada satu UUID untuk sistem file per partisi. Pada sda, saya punya 4 partisi jadi, saya punya 4 UUID. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

Saya memiliki masalah yang sama dengan Anda: mengganti nama dengan kernel /dev/sd**setelah reboot:

Tentu saja semua pemasangan otomatis saya /etc/fstabdireferensikan oleh LABEL atau oleh UUID, jadi pada dasarnya tidak ada masalah untuk itu. Dan semua perintah di atas, blkid atau lsblk, berikan informasi seperti ini.

Tetapi masalahnya dimulai seperti dalam kasus saya, ketika Anda menggunakan partisi dalam mode RAW, dalam sistem point-of-view saat ini boot: misalnya baik: partisi digunakan sebagai perangkat mentah, untuk membuat disk virtual untuk VirtualBox (jadi referensi ke partisi ini adalah sesuatu seperti /dev/sdf3:) atau partisi tersebut digunakan sebagai perangkat mentah, untuk membuat LUN untuk iSCSI (jadi referensi ke partisi ini adalah seperti /dev/sdc6:)

Jadi sekarang saat boot, misalnya di rc.local, Anda harus menemukan dengan cara yang dapat diandalkan, apa /dev/sdXXperangkat partisi RAW khusus Anda, dan mengadaptasi beberapa file:

CONTOH 1

Disk VirtualBox * .vmk deskripsi disk mentah ini, pada bagian seperti ini:

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

dan kemudian restart layanan VirtualBox

CONTOH 2

dalam konfigurasi tgtd, target: target0 dikaitkan pada /dev/sdd6saat membangun. Setelah reboot Anda mendapatkan partisi yang sama diganti namanya. /deb/sdc6 Ini terjadi dengan removable disk, USB atau eSATA! Jadi bagaimana cara menemukan perangkat baru secara otomatis? Lagi-lagi di /etc/rc.d/rc.local

Jadi dalam hal ini kita perlu cara yang dapat diandalkan untuk menemukan apa nama perangkat baru. Partisi GPT menawarkan GUID unik untuk setiap partisi GPT, ditulis dalam tabel GPT.

gdisk tidak memberikan info ini dengan mode daftar, tetapi hanya dalam mode interaktif dengan: perintah i. Untungnya, blkid melakukannya!

Jadi, Anda perlu menulis skrip shell, untuk melihat semua disk Anda, yang merupakan perangkat /dev/sdXX, yang terkait dengan GUID yang diperhatikan pada waktu pembuatan partisi.

Sesuatu seperti, 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

dan kemudian gunakan /dev/shm/blkdevice, dalam skrip rc.local Anda.


0

Untuk melihat penggunaan partisi hard disk, saya cukup mem-boot sistem dengan CD Linux dan memasang komputer saya, klik, partisi yang ingin saya lihat. Nomor uuid dari partisi Linux akan ditampilkan.

Anda juga dapat melihat disk uuid dengan menjalankan utilitas Disk Linux setelah CD Linux boot up.


Apa itu "komputer saya terpasang"? Dan apa itu "Linux Disk utility", terdengar seperti gnome-disk-utility alias Disk?
Xen2050
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.