Utiliser l’UUID des partitions dans le fstab

Après ma toute fraîche première installation d’Archlinux, j’ai été confronté à un problème d’apparence sérieux, mais vite résolu. A chaque redémarrage, mes disques étaient chamboulés, par ceci j’entends que par exemple sda1 devenait sdc1, sda2 pointait lui vers sdc2, puis cela revenait, plus ou moins aléatoirement. Problème d’uDev, de contrôleurs SATA/IDE un peu vieillots, je ne sais pas exactement, mais la résolution de ce problème est de simplement nommer les disques et partitions par un label ou en utilisant leur UUID. Cette technique permet de s’affranchir de l’emplacement physique des partitions et ainsi supprime toute ambigüité pour que le système retrouve ses marques.

Trouver les UUID des partitions présentes

Les UUID des disques se trouvent sous /dev/disk/by-uuid, dans mon cas :

# ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 13 mars  11:59 87240ea5-380b-4eb6-88fc-fc2a9a8c0c2e -> ../../sda4
lrwxrwxrwx 1 root root 10 13 mars  11:59 ab41ff2e-0715-4679-a00c-0a4b7e60e300 -> ../../sda1
lrwxrwxrwx 1 root root 10 13 mars  11:59 cfd9a33a-e3a7-4f2a-badf-7e492506f54c -> ../../sda2
lrwxrwxrwx 1 root root 10 13 mars  11:59 f1f8a263-209b-4320-9531-6444d3dfa5be -> ../../sda3

Ajouter un label aux partitions

Les UUID sont donnés par le système, alors que les labels sont ajoutés manuellement. Voici comment faire avec des partitions existantes avec tune2fs(2,3,4) :

# tune2fs -L monboot /dev/sda1

Pour ajouter le label lors du formatage, on utilisera l’option -L de mkfs.ext(2,3).

fstab

Il suffit donc de les désigner dans /etc/fstab en lieu et place du chemin physique. Mon fstab (partiel) avant :

/dev/sda1 /boot ext2 defaults 0 1

Après désignation par UUID ou labels :

/dev/disk/by-uuid/ab41ff2e-0715-4679-a00c-0a4b7e60e300 /boot ext2 defaults 0 1
ou :
UUID=ab41ff2e-0715-4679-a00c-0a4b7e60e300 /boot ext2 defaults 0 1
ou avec un label :
LABEL=monboot /boot ext2 defaults 0 1

C’est plus long avec les UUID, il faut jouer du copier-coller pour éviter toute erreur, mais c’est du solide :) UUID ou labels, c’est au choix.