Řešení 1:
Další příkaz, který může být k dispozici a také pro to funguje docela dobře, je 'blkid'. Je součástí balíčku e2fsprogs. Příklady použití:
Vyhledejte data na /dev/sda1:
[email protected]:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
Zobrazit data UUID pro všechny oddíly:
[email protected]:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"
Zobrazit data UUID pro všechny oddíly ve lépe čitelném formátu:(Poznámka:v novějších verzích blkid -L
má jiný význam a blkid -o list
by měl být použit místo toho)
[email protected]:~$ sudo blkid -L
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/sda1 ext3 / 727cac18-044b-4504-87f1-a5aefa774bda
/dev/sdc ext3 /home 467c4aa9-963d-4467-8cd0-d58caaacaff4
Zobrazit pouze UUID pro /dev/sda1 a nic jiného:
[email protected]:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda
Řešení 2:
Pouze pro disky s oddíly GPT
Na disku ve formátu GPT je každému oddílu přiřazeno GUID, což je forma UUID, i když pravděpodobně ne to, na co odkazoval původní plakát. Proto je tato odpověď pravděpodobně méně užitečná pro původního tazatele. Přesto se domnívám, že je třeba si všimnout jednoho důležitého rozdílu.
Chcete-li získat GUID oddílu 1 na disku ve formátu GPT /dev/sda, stejně jako jeho označení oddílu atd.:
sudo sgdisk -i 1 /dev/sda
nebo vše s:
ls -l /dev/disk/by-partuuid
Ke spuštění s kořenem souborového systému na určitém oddílu byste použili syntaxi parametru linuxového jádra:
root=PARTUUID=87654321-4321-4321-abcd-123456789012
V tomto případě můžete zadat pouze začátek UUID - stačí, aby byl jedinečný. Tento parametr je primitivnější a jádro jej může porozumět dříve v procesu zavádění.
Mezi těmito je rozdíl v sémantice:
Disk obsahuje oddíly, oddíl obsahuje systém souborů, systém souborů obsahuje adresáře a soubory. Pro některá nastavení a operační systémy existuje více vrstev.
GUID UUID a související štítek odkazují na oddíl, ale ne na obsah oddílu. Nový oddíl na stejném disku nebo oddíl na novém disku bude mít nové GUID UUID. Stejný oddíl může obsahovat jeden souborový systém jeden den a jiný jiný den. Existuje pouze pro disky ve formátu GPT, ale ne pro starší disky rozdělené na oddíly. Obvykle zde není žádná další užitečnost než zadání root=/dev/sda1
nebo root=8:1
.
Ostatní aktuální odpovědi odkazují na UUID systému souborů v nějakém obsahujícím oddílu. Pokud je systém souborů zkopírován jako celek na jiný diskový oddíl nebo pevný disk, tato hodnota zůstane stejná. Toto UUID je užitečné při hledání přesunutého systému souborů. Proto je to pravděpodobně více relevantní pro většinu lidí. Parametr linuxového jádra root=UUID=87654321-4321-4321-a567-123456789012
odkazuje na toto.
Věřím, že root=LABEL=
a root=UUID=
jsou implementovány raným uživatelským prostorem, init kód, který jsem viděl onehdy v mém systému, přeložil tyto parametry do /dev/disk/by-uuid a /dev/disk/by-label (odkazy, o kterých se domnívám, že je vytváří udev v uživatelském prostoru na mém systém).
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183
Řešení 3:
Skriptově čistý způsob, jak toho dosáhnout, který funguje na jakémkoli typu souborového systému, je:
lsblk -no UUID <device-containing-FS>
Nebo s ohledem na bod připojení (nebo jakýkoli soubor v něm):
lsblk -no UUID $(df -P <file> | awk 'END{print $1}')
Výstupem je UUID, celé UUID a nic jiného než UUID.
Řešení 4:
Nejjednodušší způsob, jak to udělat pro ext2/ext3/ext4, je:
/sbin/tune2fs -l /dev/sda1
Řešení 5:
Doporučený způsob, jak toho dosáhnout, je provést
sudo vol_id -u /dev/sda2
Další informace o používání UUID naleznete v tomto článku (z nápovědy ubuntu, ale mělo by fungovat pro všechny linuxové distribuce používající UUID).
Jak je uvedeno v komentářích k této otázce, vol_id nemusí být ve vaší cestě. Na ubuntu je v /sbin, takže výše uvedené bude fungovat. Zdá se, že pro fedoru potřebuje
sudo /lib/udev/vol_id -u /dev/sda2
Pokud mají jiné distribuce vol_id na jiných místech, přidejte komentář a já jej přidám k této odpovědi.