Jak identifikovat disk a oddíly?
Je lepší použít přímou adresu zařízení, UUID anebo label? A proč? Na to se pokusím odpovědět...
25.01.2009
v 10:48
Existují v zásadě tři jednoduché způsoby, jak rozpoznat ten který oddíl disku.
Přímá identifikace
Nejdříve bylo rozpoznání pomocí přímého adresování (budu tomu zde tak říkat). Jedná se o cestu k zařízení ve tvaru například /dev/sda1, /dev/hda3, apod.
Obrovskou výhodou tohoto způsobu je jeho jednoduchost. Adresy jsou snadno zapamatovatelné (dříve linux disky identifikovaly pouze tímto způsobem). Bohužel, tím však výhody končí. Podle mého názoru tuto jedinou výhodu znevažuje obrovská nevýhoda. Pokud totiž disky zpřeházíte na kšandě PATA anebo SATA anebo dáte do jiného konektoru, nebo přidáte do systému nový disk, adresování se na 99% změní. Z sda2 se vám tak rázem může stát sdb2, z hdb se vám stane hda. Zkrátka nastane chaos a asi už ani nenabootujete svůj systém. Bude nutné změnit menu.lst pro grub, bude nutné změnit fstab (a to navíc ještě třeba z live CD, protože z harddisku už bootovat nebude možné). Tento způsob rozhodně nedoporučuji kvůli těmto problémům.
Identifikace pomocí UUID
Jedná se o velmi dobrý způsob identifikace dnes používaný drtivou většinou distribucí. UUID (Universal Unique Identifier) je 32-bytový identifikátor uspořádaný do 5ti skupin. Systém jej při formátování oddílu přiděluje náhodně (možná ještě kontroluje, zda dané UUID už v systému náhodou není). Oddíl je potom možné identifikovat například pomocí cesty /dev/disk/by-uuid/b6bd55bb-fa3f-4afb-b6d6-56ade17a15e3 (používáno hlavně v menu.lst pro grub) anebo pomocí UUID=08b75d60-657f-47c2-8a4a-aa06ab148847 (hlavně ve fstab).
Protože každý oddíl má svůj vlastní UUID, v případě prohození disků bude adresován vždy správný oddíl. Odpadá tak hlavní nevýhoda přímé identifikace. Bohužel zapamatovatelnost těchto identifikátorů je prakticky nulová a proto je tedy nutné vždy UUID kopírovat z výpisu adresáře /dev/disk/by-uuid (pokud to náhodou potřebujete).
UUID je možné dodatečně změnit pomocí utility tune2fs (například tune2fs -U 5832e795-149a-49a8-8fea-a6e70c265048 /dev/sda2). Pravděpodobně je tedy možné nastavit takové exotické UUID jako 00000000-0000-0000-0000-000000000000.
Další zřejmou nevýhodou je, že v případě znovuformátování oddílu je nutné UUID změnit tam, kde se na něj odkazuje (obvykle to bývá jen fstab), což může být pro nezkušené uživatele smrtící, protože při dalším bootu narazí buď na kernel panic anebo na nemožnost připojení oddílu podle údajů z fstab.
Identifikace pomocí labelů
Podle mého názoru se jedná o identifikaci oddílů, která kombinuje výhody dvou předchozích způsobů, aniž by přebírala jejich nevýhody.
Label je maximálně 16-ti znakový textový identifikátor, který si uživatel může sám zvolit buď při formátování oddílu (v gparted se nazývá jmenovka) anebo dodatečně nastavit pomocí tune2fs (např. tune2fs -L dokumenty /dev/sda7). Odkazování na oddíly se děje například pomocí /dev/disk/by-label/dokumenty anebo LABEL=dokumenty. Zjevnou výhodou je snadná zapamatovatelnost (label si tvoří sám uživatel) a dále nezávislost na fyzickém připojení disku.
Nevýhodou může být opět ztráta labelu při formátování oddílu, pokud jej uživatel zapomene znovu vytvořit.
Závěrem přiznávám, že můžu být zaujatý ve prospěch labelů, protože je sám v systému používám, ale zatím nevidím žádnou skrytou nevýhodu.
Nevýhody a výhody zde zmíněné vycházejí z vlastní zkušenosti. Je možné, že budu v diskuzi doplněn o nějaké další.

Komentáře
Zobrazit vše Počet příspěvků: 0