Festplatten per UUID mounten

Worum geht's?

Festplatten werden unter Linux üblicherweise mit dem Blockdevice angesprochen, zum Beispiel /dev/sda1, /dev/hdb5 oder vergleichbares. Diese Blockdevice-Kennung wechselt jedoch regelmäßig, zum Beispiel mit der Reihenfolge mit der USB-Festplatten und -Sticks eingesteckt werden.

Somit wird es interessant, Geräte eindeutig zu erkennen. Hierfür verwendet man eine eindeutige Kennung, die man UUID (Universally Unique Identifier, auf Deutsch Universeller, eindeutiger Identifizierer) nennt. Die UUID ist eindeutig, eben auch dann, wenn die Geräte in unterschiedlicher Reihenfolge an den Computer eingesteckt werden.

Mountet man die Geräte nun mit Hilfe der UUID so ist sichergestellt, dass das richtige Gerät eingebunden wird.

Die UUID wird automatisch erzeugt nach dem Formatieren des Datenträgers.

Wie finde ich die UUID einer Festplatte heraus?

Hierfür gibt es das Tool 'blkid', das mit Administratorrechten ausgeführt werden muss:

root@cipher:~# blkid 
/dev/sda1: UUID="aaa3166c-e2c5-4cc7-b286-dc750ee4b685" TYPE="ext4" 
/dev/sda7: UUID="c4927b23-3f06-4a25-97b7-9869568edda7" TYPE="ext3" 
/dev/sda5: UUID="a1d7d167-b7a8-45c0-bb42-8e9c11c3d380" TYPE="swap" 

Eine weitere Möglichkeit ist im Dateisystem unter /dev/disk/by-uuid/ sich die Links auf das jeweilige Blockgerät anzuzeigen

root@cipher:~# ls -la /dev/disk/by-uuid/
insgesamt 0
drwxr-xr-x 2 root root 100 2011-07-26 18:08 .
drwxr-xr-x 5 root root 100 2011-07-26 17:32 ..
lrwxrwxrwx 1 root root  10 2011-07-26 18:08 a1d7d167-b7a8-45c0-bb42-8e9c11c3d380 -> ../../sda5
lrwxrwxrwx 1 root root  10 2011-07-26 17:32 aaa3166c-e2c5-4cc7-b286-dc750ee4b685 -> ../../sda1
lrwxrwxrwx 1 root root  10 2011-07-26 17:39 c4927b23-3f06-4a25-97b7-9869568edda7 -> ../../sda7

Mounten der Festplatte

Schauen wir uns die übliche fstab an, dort finden wir das Blockdevice, den Pfad an dem das Laufwerk ins System eingebunden wird, das Dateisystem und die zugehörigen Flags:

proc            /proc           proc    nodev,noexec,nosuid                      0       0
/dev/sda1       /                                 ext4    errors=remount-ro      0       1
# /home was on /dev/sda6 during installation
/dev/sda7       /home                             ext4    defaults               0       2
# swap was on /dev/sda5 during installation
/dev/sda5       none                              swap    sw                     0       0

Wir tauschen nun einfach das Blockdevice gegen die UUID aus und schreiben „UUID=“ vor die UUID.

proc            /proc           proc    nodev,noexec,nosuid                      0       0
/dev/sda1       /               ext4    errors=remount-ro                        0       1
# /home was on /dev/sda6 during installation
UUID=c4927b23-3f06-4a25-97b7-9869568edda7 /home   ext4    defaults               0       2
# swap was on /dev/sda5 during installation
UUID=a1d7d167-b7a8-45c0-bb42-8e9c11c3d380 none    swap    sw                     0       0

Das war's.