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.