Hogyan használjuk az UUID egyedi azonosítókat a partíciók konzisztens felcsatolására

botond küldte be 2019. 12. 23., h – 17:25 időpontban

Tartalom

 

Bevezető

A Universally Unique Identifier (UUID) egy egyedi azonosító, amit a Linux rendszerek a különböző kötetek/partíciók azonosítására is használnak, hogy a különböző blokk eszközök csatolásai ne változhassanak meg akkor sem, ha a számítógépben lévő merevlemezek csatlakozási sorrendje – például egy karbantartás során – megváltozik. Ebben a leírásban megnézzük hogyan használhatjuk az UUID-ket az fstab fájlunkban az eszköznevek helyett, hogy konzisztens módon csatolhassuk fel partícióinkat.

 

 

Partíciók csatolása az eszközneveik alapján

Eszköznevek automatikus kiosztása

A számítógépbe szerelt merevlemezek és azok partícióinak blokk eszközeit a /dev könyvtárban érhetjük el. Például egy mai számítógépes konfigurációban lévő merevlemez, amit a legelső (0-ás) SATA portra helyezünk a sda eszköznevet kapja, amit a /dev/sda útvonalon érhetünk el. Ha a merevlemezen létrehozzuk az első partíciót, akkor az pedig az sda1 nevet fogja kapni. A második partíció pedig az sda2 nevet, és így tovább. Amikor beszereljük a második merevlemezt a következő SATA portra, az az sdb nevet kapja, és a rajta lévő partíciók értelemszerűen az sdb1, sdb2, sdb3, stb neveket viselik.

Eszköznevek kiolvasása

A partíciók használatához ismernünk kell ezeknek az eszközöknek a neveit, hogy kezelni tudjuk őket. Ezeket a neveket például az lsblk paranccsal olvashatjuk ki:

lsblk

A parancs az alábbihoz hasonló kimenetet ad:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111,8G  0 disk 
├─sda1   8:1    0  95,9G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0  15,9G  0 part [SWAP]
sdb      8:16   0 894,3G  0 disk 
├─sdb1   8:17   0   512M  0 part 
├─sdb2   8:18   0  55,9G  0 part 
└─sdb3   8:19   0  18,6G  0 part 
sdc      8:32   0 931,5G  0 disk 
├─sdc1   8:33   0 404,9G  0 part /mnt/drive-d
└─sdc2   8:34   0 526,7G  0 part /mnt/websites
sdd      8:48   0 465,8G  0 disk 
└─sdd1   8:49   0 465,8G  0 part 

Itt szépen látszanak a merevlemezek és a rajtuk lévő particiók. De ha több információt szeretnénk kapni az eszközeinkről, akkor az fdisk parancs listázó kapcsolójával kérdezhetjük le root-ként:

fdisk -l

Ez egy részletesebb kimenetet ad, amiből példának kiemelem csak az sdd eszközt, amit most be fogok mountolni:

[...]

Disk /dev/sdd: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x5cd681f4

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdd1        2048 976773119 976771072 465,8G  7 HPFS/NTFS/exFAT

Partíciók automatikus csatolása az fstab fájlban

Ha egy új partíciót automatikusan szeretnénk felcsatolni a gép indulásával, akkor nem kell mást tennünk, mint betenni a megfelelő sort az fstab fájlunkba. Ehhez nyissuk meg a fájlt:

sudo nano /etc/fstab

Majd az eszközünknek megfelelő névvel ellátott sort tegyük bele:

/dev/sdd1      /mnt/hdd_500    ntfs    defaults 0  2

Itt tehát a /dev/sdd1 helyén adjuk meg a saját eszközünk nevét, utána a csatolási pontot, majd ezt követi a fájlrendszer. Az utána lévő részek maradhatnak alapértelmezésen.

Ezután futtassuk a mount parancsot, ami végrehajtja az fstab fájlban beállított csatolásokat, így nem kell újraindítani a számítógépet:

sudo mount -a

Ha jól állítottuk be a sorunkat, akkor ez a parancs nem ad kimenetet. Ezután ha ránézünk újra az lsblk paranccsal az eszközeinkre:

lsblk

akkor láthatjuk a különbséget: az eszköznél már megjelenik a csatolási pont is:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111,8G  0 disk 
├─sda1   8:1    0  95,9G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0  15,9G  0 part [SWAP]
sdb      8:16   0 894,3G  0 disk 
├─sdb1   8:17   0   512M  0 part 
├─sdb2   8:18   0  55,9G  0 part 
└─sdb3   8:19   0  18,6G  0 part 
sdc      8:32   0 931,5G  0 disk 
├─sdc1   8:33   0 404,9G  0 part /mnt/drive-d
└─sdc2   8:34   0 526,7G  0 part /mnt/websites
sdd      8:48   0 465,8G  0 disk 
└─sdd1   8:49   0 465,8G  0 part /mnt/hdd_500

Így már használatba is vehetjük az új merevlemezünk partícióját, ami a gép újraindítása után is egyből rendelkezésünkre fog állni.

Mindez szépen működik mindaddig, amíg nem jön egy számítógép szerviz, felújítás, bővítés, stb, és átvariáljuk a merevlemezeket a gépben. Ilyenkor az sdX elnevezések is változnak. Így amikor újraindítanánk a gépet, akkor az ilyen módon felcsatolt eszközök jobb esetben nem kerülnek felcsatolásra, pl. egy megváltozott fájlrendszer végett, vagy rosszabb esetben rossz helyre kerülnek felcsatolásra, ami akár adatvesztéssel is járhat, attól függően, hogy mi volt a korábbi szerepe az adott csatolási pontnak.

Hogy ezt elkerüljük, és konzisztens módon csatoljuk fel a meghajtóinkat, erre használjuk az UUID-ket.

 

 

Partíciók csatolása az UUID-k segítségével

Az UUID-k használatával tehát elkerülhetjük a fentebb említett problémát, így bármikor átvariálhatjuk a számítógépünkben lévő HDD-k csatlakozási sorrendjét. A különböző Linux disztribúciók telepítői már gondoskodtak erről így például a Debian és az Ubuntu rendszerekben is a telepítés során létrehozott és felhasznált partíciókat már UUID alapján állítja be a telepítő az fstab fájlban. Példa egy Ubuntu fstab fájljáról:

Ubuntu 18.04 LTS (Bionic Beaver) - Fstab fájl UUID használattal

És egy Debian 10 Buster fstab fájlja:

Debian 10 (Buster) - Fstab fájl UUID használattal

Itt egy kicsit bőbeszédűbb a fájl, itt még azok az információk is belekerültek, hogy a telepítés során milyen eszközneveket viseltek a felcsatolt partíciók.

Ahhoz, hogy a saját magunk által hozzáadott partíciókat is ilyen módon kapcsolhassuk a rendszerhez, először ki kell olvasnunk az adott eszköz UUID azonosítóját.

UUID-k kiolvasása

Az UUID azonosítókhoz többféleképpen is hozzájuthatunk, a legegyszerűbben a blkid parancs segítségével. Elöször futtassuk az lsblk parancsot, hogy láthassuk az eszközök listáját a méreteikkel, majd a blkid parancsot, amivel megtudhatjuk az eszközök UUID azonosítóit:

lsblk
sudo blkid

Nálam ez a kimenet:

Az lsblk és blkid parancsok kimenete

Most hogy már megvannak az UUID azonosítók, már csak egy apró módosítást kell végezni az fstab fájlban.

UUID alkalmazása az fstab fájlban

A korábban beálított fstab bejegyzésünket kell módosítanunk:

/dev/sdd1      /mnt/hdd_500    ntfs    defaults 0  2

A blkid parancs kimenetében keressük meg az eszközünkhöz tartozó UUID részt, majd ennek megfelelően módosítsuk az fstab fájlt:

UUID=06FFD55A2EDBE8B2      /mnt/hdd_500    ntfs    defaults 0  2

Mentsük le, és ezzel készen is vagyunk.

 

 

Partíciók csatolása a címkék segítségével

Ha már itt járunk, érdemes megemlíteni, hogy van egy ilyen lehetőség is, hogy a partícióknak adott címkék (label) alapján is csatolhatunk eszközöket. Ezek a címkék beszédesebbek ugyan, mint egy UUID, azonban ezeknél megvan az esély, hogy az ember esetleg ugyanazt a címkét adja két különböző eszköznek is. Így tehát inkább az UUID használatát javaslom, de azért gyorsan átfutjuk a címkék használatát is, ha már van ilyen lehetőségünk is.

Címkék kiolvasása, beállítása

Az első két módszerrel ellentétben itt most nem csak kiolvashatjuk a címkéket, hanem magunk is elnevezhetjük eszközeinket. Erre a célra több parancs is létezik, mindegyik csak meghatározott fájlrendszer(eke)t tud kezelni. Például:

Ezeknél a parancsoknál ügyeljünk arra, hogy sose használjuk őket felcsatolt fájlrendszereken!

A saját példámnál maradva kiválasztom a korábban beállított partícióm NTFS fájlrendszeréhez illő parancsot, ami ez esetben az ntfslabel. Először lecsatolom a fájlrendszert, próbaképpen kiolvasom az eszköz címkéjét, ami ekkor még üres, ezután beállítok egy számomra egyedi címkét, és újra kiolvasom. Mindez a képernyőn egyben:

NTFS partíció címke beállítása az ntfslabel paranccsal

Címke beállítása az fstab fájlban

Ezután a következőképpen módosítom a /etc/fstab fájlom legutóbbi beállítását:

#UUID=06FFD55A2EDBE8B2      /mnt/hdd_500    ntfs    defaults 0  2
LABEL=toshiba_hdd_500_gb    /mnt/hdd_500    ntfs    defaults 0  2

Kommentezem a korábbi UUID beállítást, és egy új sorban a LABEL=<címke> részre módosítom a sor elejét.

Itt természetesen mindenki olyan címkét használjon, ami lehetőleg biztosan egyedi a saját számítógépén belül. Tehát célszerű beletenni a HDD gyártóját, méretét, egyéb infókat. Én még ezenkívül kisbetűkkel is írok mindent, így csökken a tévesztés esélye. Így ha ránézünk az fstab fájlunkra, akkor egyből látjuk, hogy melyik meghajtónk hol kapcsolódik a rendszerünkbe.

Ha ezzel megvagyunk, futtassuk a mountolást:

mount -a

És innentől már a címke alapján kerül felcsatolásra az eszköz.

 

 

Konklúzió

Ezek lennének tehát a partíciók különböző felcsatolási módszerei az fstab fájlban. A két utolsó segítségével biztosak lehetünk benne, hogy ha átvariáljuk/bővítjük a számítógépünk HDD egységeit, nem fog fájni a fejünk a csatolási pontok változásai miatt, mert mindig ugyanazok az egységek ugyanabba a csatolási pontba kerülnek bekapcsolásra.

 

Kapcsolódó tartalom, hasznos linkek: