/etc/fstab
Saya berisi 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?
Di /dev/disk/by-uuid
ada symlink yang memetakan setiap UUID drive ke entri di /dev
(mis. /dev/sda1
)
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
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.
Untuk hanya mendapatkan UUID
perangkat disk tertentu (misalnya untuk digunakan dalam skrip) Anda dapat menggunakan:
Sudo blkid -s UUID -o value /dev/sdXY
dimana /dev/sdXY
adalah nama perangkat.
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.
lsblk -o +uuid,name
Anda dapat melihat semua output yang dapat ditambahkan ke -o
(--output
) dengan
lsblk --help
Ini juga akan melakukan pekerjaan
# blkid
Jawaban sebelumnya tidak berfungsi untuk beberapa perangkat atau untuk perangkat dengan UUID yang identik.
Coba ini:
Sudo blkid /dev/sd*
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
Saya memiliki masalah yang sama dengan Anda: mengganti nama dengan kernel /dev/sd**
setelah reboot:
Tentu saja semua pemasangan otomatis saya di /etc/fstab
dirujuk 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 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/sdXX
perangkat dari partisi RAW khusus Anda, dan mengadaptasi beberapa file:
CONTOH 1
Disk VirtualBox * .vmk deskripsi disk mentah ini, pada bagian seperti:
\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0
dan kemudian restart layanan VirtualBox
CONTOH 2
dalam konfigurasi tgtd, target: target0 dikaitkan dengan /dev/sdd6
saat membangun. Setelah reboot, partisi yang sama diganti namanya /deb/sdc6
Ini terjadi dengan removable disk, USB atau eSATA! Jadi bagaimana cara menemukan perangkat baru secara otomatis? 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 unik GUID 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
, terkait dengan GUID terlihat 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.
Anda perlu memeriksa/dev/disk/by-partuuid dalam kasus ini. ada symlink yang memetakan PARTUUID setiap drive ke entri di/dev/sdb1 dll
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.