Pierwszy raportuje UUID systemu plików ext4 na md
urządzeniu blokowym. Pomaga systemowi jednoznacznie zidentyfikować system plików wśród systemów plików dostępnych w systemie. To jest przechowywane w strukturze systemu plików, czyli w danych przechowywanych na urządzeniu MD.
Drugi to UUID urządzenia RAID. Pomaga podsystemowi md jednoznacznie zidentyfikować to konkretne urządzenie RAID. W szczególności pomaga zidentyfikować wszystkie urządzenia blokowe należące do macierzy RAID. Jest on przechowywany w metadanych tablicy (na każdym elemencie). Członkowie macierzy mają także swój własny UUID (w systemie md mogą mieć także UUID partycji, jeśli są partycjami GPT (które same byłyby przechowywane w tablicy partycji GPT) lub woluminami LVM ...).
blkid
jest nieco mylące, ponieważ zwraca identyfikator struktury przechowywanej na urządzeniu (dla tego rodzaju struktur, o których wie, jak większość systemów plików, członków LVM i urządzeń wymiany). Zauważ również, że nierzadko występują urządzenia blokowe o strukturach z identycznymi identyfikatorami UUID (na przykład migawki LVM). A urządzenie blokowe może zawierać wszystko, w tym rzeczy, których struktura nie zawiera UUID.
Na przykład możesz mieć system z 3 dyskami z partycjonowaniem GPT. Te dyski mogą mieć ogólnoświatową nazwę, która jednoznacznie je identyfikuje. Powiedzmy, że 3 dyski są podzielone na partycje po jednej partycji ( /dev/sd[abc]1
). Każda partycja będzie mieć identyfikator UUID GPT zapisany w tabeli partycji GPT.
Jeśli te partycje tworzą tablicę md RAID5. Każdy otrzyma identyfikator UUID md jako element RAID, a tablica otrzyma identyfikator UUID jako urządzenie RAID md.
Który /dev/md0
może być dalej podzielony MsDos lub typu GPT podziału. Na przykład, możemy mieć /dev/md0p1
partycję z GPU UUID (przechowywaną w tablicy partycji GPT, która jest przechowywana w danych / dev / md0).
To z kolei może być woluminem fizycznym dla LVM. Jako taki otrzyma identyfikator PV UUID. Grupa woluminów będzie również mieć identyfikator UUID VG.
W tej grupie woluminów utworzysz woluminy logiczne, z których każdy otrzyma identyfikator UUID LV.
Na jednym z tych LV (jak /dev/VG/LV
) możesz stworzyć system plików ext4. Ten system plików otrzymałby identyfikator UUID ext4.
blkid /dev/VG/LV
otrzyma (ext4) UUID tego systemu plików. Ale jako partycja wewnątrz woluminu VG otrzyma również identyfikator UUID partycji (niektóre schematy partycjonowania, takie jak MSDOS / MBR, nie mają identyfikatorów UUID). Ta grupa woluminów składa się z elementów PV, które same są innymi urządzeniami blokowymi. blkid /dev/md0p1
dałby ci PV UUID. Ma także identyfikator UUID partycji w tabeli GPT /dev/md0
. /dev/md0
sam jest wykonany z innych urządzeń blokowych. blkid /dev/sda1
zwróci identyfikator UUID członka rajdu. Ma także identyfikator UUID partycji w tabeli GPT /dev/sda
.
mdadm
? Właśnie ponownie zobrazowaliśmy serwer, a identyfikatory UUID są różne, dlatego chcemy przywrócić poprzednie identyfikatory UUID, abyśmy nie musieli zmieniać wszystkich plików konfiguracyjnych. Zasadniczo/dev/md0
ma nowy identyfikator UUID i chcemy przywrócić go do starego (zidentyfikowanego na podstawie kopii zapasowej), aby system uruchomił się bez potrzeby wprowadzania dalszych zmian.man mdadm
) czy ext4 UUID (patrzman tune2fs
)? Czy problem z uruchomieniem dotyczy znalezienia głównego systemu plików lub złożenia tablicy RAID na podstawie pliku mdadm.conf przechowywanego w pliku initramfs. Tak czy inaczej, łatwiej jest mi zaktualizować plik mdadm.conf lub fstab / grub.cfg niż mieszać się z identyfikatorami UUID.Inny UUID został już wyjaśniony. Mają je nie tylko systemy plików. Są tylko UUID dla różnych rzeczy: macierzy RAID, urządzenia, partycji, kontenerów LUKS, PV LVM ... i wreszcie systemów plików.
Denerwuje mnie osobiście to, że nawet sposób formatowania tych UUID jest inny.
blkid:
mdadm:
Jak widać, są to te same UUID, ale
blkid
drukuje je za pomocą myślników,-
podczas gdymdadm
używa dwukropków:
. Więc maszd8b8b4e5-e47b-2e45-2093-cd36f654020d
vs.d8b8b4e5:e47b2e45:2093cd36:f654020d
.Bardzo denerwujące, szczególnie jeśli chcesz pracować z UUID w skryptach. Nie jest oczywiste, jak przekonwertować z jednego formatowania na drugie.
źródło
:
lub kreska-
są po prostu po to, aby ludzie mogli odczytać długie UUID w kawałkach i nie zgubić się gdzieś pośrodku. UUID jest tak naprawdę liczbą binarną i nie ma myślników ani dwukropków. Jest on realizowany w systemie Linux jako unsigned tablicy znaków:unsigned char uuid_out[16]
. Najwyraźniej specyfikacja UUID ma również pojęcie wariantów i wersji , które możemy zobaczyć zaimplementowane poprzez ustawienie najbardziej znaczącego bajtuuuid_out[6]
na 4 .Identyfikator UUID blkid powyżej „32cb0a6e-8148-44e9-909d-5b23df045bd1” jest poprawny, to jest to, czego system operacyjny użyje do znalezienia macierzy RAID.
mdadm ma własny „wewnętrzny” identyfikator UUID, który nie jest używany bezpośrednio przez system operacyjny i jest używany w pliku mdadm.conf, np .:
„ARRAY / dev / md1 level = raid1 num-devices = 2 uuid = f204c558: babf732d: 85bd7296: bbfebeea”
mdadm nie powinien wywoływać żadnych UUID, gdy jest on oddzielny od tego, który rozpoznają blkid i system operacyjny. Może powinno się to nazywać mduuid lub coś innego, aby uniknąć zamieszania.
źródło