UUID

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
Cet article est une ébauche concernant l'UUID des partitions. N'hésitez pas à contribuer ou à en discuter.

Fixer le renommage des partitions avec l'UUID

Il pourra vous arriver, au boot, de tomber sur ce message désagréable...

WARNING bootdevice may renamed.
Try root = /dev/hda1
Gave up waiting for root device.
Common problems:
   - Boot args (cat /proc/cmdline)
   - Check root delay = (did the system wait for the right device ? )
   - Missing modules (cat /proc/modules; Is /dev)
ALERT! /dev/sda1 does not exist. Dropping to a shell
BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands
/bin/sh can't access tty; job control turn off
(initramfs)

Une des causes possible de cette erreur, est le "renommage" par le système de vos partitions...

Le système cherche /dev/hda1 au lieu de /dev/sda1...

A ce niveau vous pouvez au moins faire une vérification simple en exécutant la commande suivante dans la "Busybox" :

ls /dev | grep [sh]d

C'est le meilleur moyen, et le plus rapide, pour vérifier que vous n'êtes pas face à un problème matériel, et que vos partitions sont bien présentes.

Evidemment vous serez avec un clavier qwerty...

!=/ |=Shift+µ [=AltGr+8 ]=AltGr+9

Vous pouvez tenter de redémarrez plusieurs fois jusqu'à ce que le système nomme convenablement vos partitions et que vous puissiez avoir la main dans votre système.

S'il refuse à tous les coups de démarrer, alors ça veut dire que le nommage ne change pas. Il est différent du contenu du menu.lst.

Dans ce cas, appuyez sur « e » à l'invite de grub, corrigez le nom de votre partition (root=<partition>) et appuyez sur «b » pour booter.

Cette modification est temporaire, au prochain démarrage vous vous retrouverez devant le même problème

Le problème peut être contourné définitivement en utilisant l'UUID! L'UUID, un peu comme l'adresse MAC pour vos périphériques réseau, est un identifiant unique attaché à une partition. C'est le N° moteur...

Déterminez l'UUID de vos partitions

Vous pouvez avoir l'UUID d'une partition avec :

$ /sbin/blkid

Ou bien listez vos partitions et leurs UUIDs avec :

$ ls -l /dev/disk/by-uuid/

Ou encore (ne fonctionne que sous Lenny):

# vol_id -u <nom_de_la_partition>

Modifier /etc/fstab

Une fois les UUID obtenus, il vous suffit de remplacer dans votre fstab, le nom des partitions, par exemple :

/dev/hda1

par « UUID= » suivi de l'UUID de la partition, par exemple :

UUID=7796b5a7-1a0f-45cf-bb7a-edca59e01f33

en laissant le reste (points de montages, options) identique.

Ce qui donnera par exemple

UUID=7796b5a7-1a0f-45cf-bb7a-edca59e01f33 / ext4 defaults,noatime,errors=remount-ro,barrier=0 0 1

Pour les lecteurs CDs, il n'y a pas d'UUID (normal, il n'y a pas de partitions). Mais vous pouvez copier simplement la ligne et indiquer l'autre nom de périphérique. Par exemple, si le lecteur se trouve nommé tantôt /dev/hdc, tantôt /dev/hdg :

/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto          0       0
/dev/hdg        /media/cdrom0   udf,iso9660 user,noauto          0       0

Avec l'option « noauto », ça ne devrait pas poser de problème.

EDIT : Ça pose problème avec certains gestionnaires de fichiers (pcmanfm en tout cas) et on ne peut plus faire mount /media/cdrom. La solution est en fait plus simple, utiliser les liens /dev/cdrom, /dev/cdrom1,... :

/dev/cdrom        /media/cdrom0   udf,iso9660 user,noauto          0       0
/dev/cdrom1        /media/cdrom1   udf,iso9660 user,noauto          0       0

Modifier /boot/grub/menu.lst

Repérez la section suivante :

## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/hda1 ro

Remplacez la ligne qui n'est pas doublement commentée, i.e. qui n'a qu'un seul dièze (#) et remplacez là de la sorte

# kopt=root=UUID=fba241ad-c3fa-470d-8758-ee2d3d867406 ro


Enregistrez, puis lancez dans une console :

# update-grub

Ainsi, vous pouvez voir que vos entrées de debian sont toutes modifiées de la sorte. L'avantage d'utiliser cette méthode, c'est que le changement sera aussi pris en compte lors d'un upgrade du kernel.

Ne rebootez pas tout de suite, il reste une dernière chose à faire :

Corriger la partition swap pour l'hibernation

Même si vous n'hibernez pas, une image sera recherchée au boot dans la swap. Bon, il suffit d'appuyer sur Entrée pour reprendre un boot normal, mais tant qu'à faire, autant s'en passer, et faire les choses proprement : Il faut éditer /etc/initramfs-tools/conf.d/resume Et remplacer, toujours de la même façon :

RESUME=/dev/hdXX

par :

RESUME=UUID=<l'uuid_de_la_partition_swap>

Edit : Sous Squeeze et Sid, inutile de préciser RESUME= :

UUID=e8a6eec7-372e-43b1-9b2b-3dd504c7bd9f

EDIT2 : Si vous avez uswsusp installé, modifiez aussi « resume device » dans /etc/uswsusp.conf.

Ensuite, pour que les changements soient pris en compte :

# update-initramfs -u -k $(uname -r)

Source et discussion

Lol 9 septembre 2010 à 10:48 (EAT)