Yang pertama melaporkan UUID sistem file ext4 pada md
perangkat blok. Ini membantu sistem mengidentifikasi sistem file secara unik di antara sistem file yang tersedia pada sistem. Itu disimpan dalam struktur sistem file, yaitu dalam data yang disimpan pada perangkat md.
Yang kedua adalah UUID perangkat RAID. Ini membantu subsistem md mengidentifikasi perangkat RAID tertentu secara unik. Secara khusus, ini membantu mengidentifikasi semua perangkat blok milik array RAID. Itu disimpan dalam metadata dari array (pada setiap anggota). Anggota array juga memiliki UUID mereka sendiri (dalam sistem md, mereka juga dapat memiliki UUID partisi jika mereka adalah partisi GPT (yang dengan sendirinya akan disimpan dalam tabel partisi GPT), atau volume LVM ...).
blkid
sedikit menyesatkan, karena yang dikembalikan adalah ID dari struktur yang disimpan pada perangkat (untuk jenis struktur yang diketahuinya seperti kebanyakan sistem file, anggota LVM dan perangkat swap). Juga perhatikan bahwa tidak jarang memiliki perangkat blok dengan struktur dengan UUID identik (misalnya snapshot LVM). Dan perangkat blok dapat berisi apa saja, termasuk hal-hal yang strukturnya tidak termasuk UUID.
Jadi, sebagai contoh, Anda dapat memiliki sistem dengan 3 drive, dengan partisi GPT. Drive-drive tersebut dapat memiliki World Wide Name yang mengidentifikasinya secara unik. Katakanlah 3 drive dipartisi dengan masing-masing satu partisi ( /dev/sd[abc]1
). Setiap partisi akan memiliki UUID GPT yang disimpan dalam tabel partisi GPT.
Jika partisi tersebut membentuk array RAID5 md. Masing-masing akan mendapatkan UUID md sebagai anggota RAID, dan array akan mendapatkan UUID sebagai perangkat RAID md.
Itu /dev/md0
bisa dipartisi lebih lanjut dengan MSDOS atau tipe partisi GPT. Sebagai contoh, kita dapat memiliki /dev/md0p1
partisi dengan GPT UUID (disimpan dalam tabel partisi GPT yang disimpan dalam data / dev / md0).
Itu pada gilirannya bisa menjadi volume fisik untuk LVM. Karena itu akan mendapatkan UUID PV. Grup volume juga akan memiliki UUID VG.
Dalam grup volume itu, Anda akan membuat volume logis, masing-masing mendapatkan UUID LV.
Di salah satu LV itu (seperti /dev/VG/LV
), Anda bisa membuat sistem file ext4. Sistem file itu akan mendapatkan UUID ext4.
blkid /dev/VG/LV
akan memberi Anda (ext4) UUID dari sistem file itu. Tetapi sebagai partisi di dalam volume VG, itu juga akan mendapatkan UUID partisi (beberapa skema partisi seperti MSDOS / MBR tidak memiliki UUID). Grup volume itu terbuat dari PV anggota yang merupakan perangkat blok lain. blkid /dev/md0p1
akan memberi Anda UUID PV. Ini juga memiliki UUID partisi di tabel GPT pada /dev/md0
. /dev/md0
sendiri dibuat dari perangkat blok lain. blkid /dev/sda1
akan mengembalikan UUID anggota raid. Ini juga memiliki UUID partisi di tabel GPT pada /dev/sda
.
mdadm
? Kami baru saja mencitrakan ulang server dan UUID berbeda, jadi kami ingin mengembalikan UUID sebelumnya sehingga kami tidak perlu mengubah semua file konfigurasi. Pada dasarnya,/dev/md0
memiliki UUID baru dan kami ingin mengembalikannya ke yang lama (diidentifikasi dari cadangan) sehingga sistem boot tanpa perlu perubahan lebih lanjut.man mdadm
) atau UUID ext4 (lihatman tune2fs
)? Apakah masalah boot tentang menemukan filesystem root atau tentang merakit array RAID berdasarkan mdadm.conf yang disimpan dalam initramfs. Either way, kedengarannya lebih mudah bagi saya untuk memperbarui mdadm.conf atau fstab / grub.cfg daripada bergaul dengan UUID.UUID yang berbeda sudah dijelaskan. Tidak hanya filesystem yang memilikinya. Hanya ada UUID untuk hal-hal yang berbeda: raid array, perangkat, partisi, wadah LUKS, LVM PV's ... dan akhirnya filesystems.
Yang mengganggu saya secara pribadi adalah bahwa cara penyusunan UUID itu pun berbeda.
blkid:
mdadm:
Seperti yang Anda lihat, mereka adalah UUID yang sama, tetapi
blkid
mencetaknya dengan tanda hubung-
sedangkanmdadm
menggunakan titik dua:
. Jadi Anda mendapatkand8b8b4e5-e47b-2e45-2093-cd36f654020d
vsd8b8b4e5:e47b2e45:2093cd36:f654020d
.Sangat menjengkelkan, terutama jika Anda ingin bekerja dengan UUID dalam skrip. Tidak jelas cara mengonversi dari satu format ke format lainnya.
sumber
:
atau kolon-
ada agar manusia dapat membaca UUID panjang dalam potongan dan tidak tersesat di suatu tempat di tengah. UUID benar-benar angka biner, dan tidak memiliki tanda hubung atau titik dua. Hal ini diimplementasikan dalam Linux sebagai array karakter unsigned:unsigned char uuid_out[16]
. Rupanya spec UUID juga memiliki ide varian dan versi , yang dapat kita lihat diimplementasikan dengan menetapkan byte paling signifikanuuid_out[6]
ke 4 .UUID blkid di atas "32cb0a6e-8148-44e9-909d-5b23df045bd1" adalah yang benar, itulah yang akan digunakan OS untuk menemukan array RAID.
mdadm memiliki UUID "internal" sendiri yang tidak digunakan langsung oleh OS dan adalah apa yang Anda gunakan dalam file mdadm.conf misalnya:
"Tingkat ARRAY / dev / md1 = raid1 num-devices = 2 uuid = f204c558: babf732d: 85bd7296: bbfebeea"
mdadm seharusnya tidak memanggil apa pun UUID bila terpisah dari yang diakui dan OS blkid. Mungkin itu harus disebut mduuid atau sesuatu yang lain untuk menghindari kebingungan.
sumber