[gull] Les tribulations d'une installation :-)

Leopoldo Ghielmetti leopoldo.ghielmetti at a3.epfl.ch
Wed Mar 19 12:32:35 CET 2008


On Tue, 2008-03-18 at 20:42 +0100, Félix Hauri wrote:
> Si grub utilise les UUID pour repérer ``son'' ROOT disk, il faut comprendre
> que le ``root'' de grub est en fait /boot, lorsque le système est monté.
> (si /boot est sur une partition séparée;)

Exact.

> C'est le BIOS qui détermine l'unité de démarrage (pour grub, p. ex)

Exact aussi, il choisit parmi ses disques, généralement on peut
spécifier le disque de démarrage via une option du BIOS lui même, voir
spécifier plusieurs unités (dans le cas ou la première est
indisponible).

> Ensuite, grub cherche son ``root'' (évent en fonction de l'UUID), pour
> les ``stages'' suivants.

Oui, mais c'est la le problème, je ne crois pas du tout que GRUB soit
capable de chercher son root en fonction de l'UUID. Dans grub on
spécifie les disques avec leur numéro (p.e. (hd0) ) et non avec leur
UUID, cette option n'existe même pas!

Si tu essaye de faire:
# grub
> root /dev/disk/by-uuid/22a3b0d2-2bfc-49af-b363-a070972cbf4f
> setup /dev/disk/by-uuid/22a3b0d2-2bfc-49af-b363-a070972cbf4f

Je suis sur que tu va obtenir de beaux messages d'erreurs. La seule
façon que tu as de le faire c'est de faire:
# grub
> device (hd0) /dev/disk/by-uuid/22a3b0d2-2bfc-49af-b363-a070972cbf4f
> root (hd0,0)
> setup (hd0)

Et encore, je ne crois pas que tu puisse définir la device (hd0) sur un
UUID vu qu'il ne s'agit pas d'un UUID sur du disque mais d'une
partition.
Ou sinon tu définis tes partitions dans le fichier devices.map ou tu
spécifie tes devices avec les UUID, mais la aussi il s'agit de disques
et non de partitions et je ne suis pas sur que tu puisse avoir des UUID
d'un disque ou d'une MBR.
Sans compter que je pense que le fichier devices.map est utilisé
uniquement à l'installation et non au démarrage. La aussi, si je ne me
trompe pas, les seuls fichiers utilisés au démarrage sont stage1, un des
stage1.5, stage2 et le fichier menu.lst. Ensuite selon ce qui est
spécifié dans le menu.lst le kernel est chargé et c'est qu'a ce moment
la que les UUID deviennent disponibles, mais pas avant.

> N'ensuite, il y a le INITRAMDISK, qui contient un ``root'' au sens
> unix (``/''), qui lui contient TOUT ce qui est nécessaire (/bin, /sbin, 
> /lib/modules, etc. ) pour démarrer des couche évoluées comme raid et/ou LVM.

Mais la on ne parle déjà plus du grub mais du démarrage du kernel. Le
chargement di initrd est fait par le kernel et non pas par grub ou lilo.
C'est un paramètre du kernel qui définit le initrd.

> AU TERME de l'execution de l'INITRAMDISK, les périphériques BLOCK
> sont TOUS présents dans /proc/partition (point de vue du kernel)
> Les mount --uuid pourront donc marcher, tant sur du LVM que du 
> MD0 ou du HDA, SDA ou même sur du LVM lui-même sur du raid...

Ok, donc le "waiting for root to appear" qui apparaît parfois au boot
indique uniquement que les driveurs LVM sont en train de scanner les vg
pour effectuer le montage.
Ce qui me parait assez sensé vu que le fait de monter du LVM est
indépendant de la réelle présence de partitions LVM dans le système,
seule la configuration du initrd compte.

> Après montage du root réel (/) une pirouette (pivot-root) permet de
> désalouer le INITRAMDISK, le démonter et le libérer.
> 
> Pour un résumé grossier de ce qui se passe au boot...

Bon résumé.

> On Tue, Mar 18, 2008 at 04:50:16PM +0100, Leopoldo Ghielmetti wrote:
> > 
> > disques, sinon il cherche dans les logical volumes (mais ce n'est qu'une
> > supposition, il faudrait faire des tests (ou lire la doc :-) )).
> > 
> Donc, non, ce n'est pas tout-à-fait ça.

Effectivement je me suis trompé. Le LVM est chargé toujours et le scan
s'effectue de toute façon, c'est après le scan des devices et après que
les UUID ont été identifiées que le kernel effectue le montage de / et
des autres partitions. Donc il est tout à fait possible d'utiliser les
UUID même pour des volumes LVM.

Par contre je ne m'explique pas pour quelle raison la ubuntu utilise les
UUID pour les configuration sans LVM et les libellés LVM pour les
configurations LVM. Pour un souci de cohérence elle devrait toujours
utiliser les UUID.

Ceci dans tous les cas ne résout pas le problème du démarrage du Grub,
le BIOS, Grub et lilo utilisent toujours et uniquement les numéro de
disque physique. Le kernel n'a aucune influence sur le démarrage, grub
est aussi capable de booter du BSD, du Windows ou du DOS (qui ne connaît
pas les UUID du tout), c'est la preuve que le kernel Linux et les UUID
de ces fs n'ont rien a voir la dedans (DOS et Windows ne les utilisent
pas).

ciao, Leo





More information about the gull mailing list