Page 1 sur 1

[efi boot stub]Un point sur efi boot stub (résolu)

Publié : mer. 09 juil. 2014, 16:01
par alexandre
Bonjour,

je souhaite installer archlinux sur une nouvelle machine dotée d'un uefi (et que je n'arrive pas à contourner, il s'agit d'un shuttle xs35v4 dont l'uefi est en version 2. quelque chose). Pour cela je mixe un peu les pages wiki suivantes :
*https://wiki.archlinux.fr/EFI_Boot_Stub
*https://wiki.archlinux.fr/Installation

Première question : le disque utilisé pour la partition ESP DOIT-il être en GPT, au vu de la première page ça n'a pas l'air d'être le cas (apparemment, une partition en fat32 créée avec fdisk fait l'affaire, ce qui m'arrangerait car gdisk avait l'air de raler parce que le disque avait déjà une table MBR et qu'il ne voulait rien faire) ?

Deuxième question : on est bien d'accord que si tout se passe bien, il n'y a pas besoin de bootloader vu qu'efi est censé pouvoir lancer un noyau linux ?

Du coup voici ce que j'ai fait après avoir booté sur la clef d'installation arch (elle se situe sur /dev/sbc, un disque inutile pour le moment est référencé avec /dev/sda et le disque où je souaite mettre le système est en /dev/sdb) :

Création de quatre partitions primaires sur /dev/sdb avec cfdisk :
* 250 M sur une première partition en fat 32 (/dev/dsb1) (apparemment les 512 M ne sont pas une obligation...)
* 250 M sur une partiton en ext2 (/dev/sdb2)
* 30 G sur une partition en ext4 (/dev/sdb3)
* le reste sur une partition en ext4 (/dev/sdb4)

Je monte /dev/sdb3 dans /mnt, y crée /mnt/boot et /mnt/home dans lesquelles je monte respectivement /dev/sdb2 et /dev/sdb4 puis création de /mnt/boot/efi dans lequel je monte /dev/sdb1.

Ensuite je génère le fstab qui va bien et chroot dans /mnt après y avoir pacstrapé "base".

Là dedans je suis l'installe classique, et au lieu d'installer un bootloader je m'occupe de /boot/efi : j'y crée EFI/arch dans le quel je copie et renomme le noyau et les initramfs. Chargement du module efivars et installation de efibootmgr puis adaptation de la formule magique censée dire à uefi de booter sur mon noyau. Reboot.

...rien, j'atterrie à nouveau dans mon shell uefi :(

A noter qu'au moment de la formule magique, efibootmgr me disait que les labels n'étant pas unique ça pouvait déconner (enfin un truc dans le genre si je me souviens bien).

Si vous avez des rectifications, des précisions ou une solution de suis preneur...

Re: Un point sur efi boot stub

Publié : mer. 09 juil. 2014, 16:21
par Moviuro
alexandre a écrit :Là dedans je suis l'installe classique, et au lieu d'installer un bootloader je m'occupe de /boot/efi : j'y crée EFI/arch dans le quel je copie et renomme le noyau et les initramfs. Chargement du module efivars et installation de efibootmgr puis adaptation de la formule magique censée dire à uefi de booter sur mon noyau.
Plop,

J'ai UEFI sur une de mes machines mais j'utilise quand même un boot loader : https://wiki.archlinux.org/index.php/Gummiboot (ça permet entre autres d'avoir plusieurs entrées de boot: arch et fallback, par exemple). L'install de gummiboot est straight-forward et je ne me souviens pas avoir eu de soucis particuliers. La syntaxe des 'entries' est la même que syslinux, exemple pour moi (les lignes sont à customiser : moi j'ai secureboot en plus avec une / BTRFS dans un conteneur LUKS) :

Code : Tout sélectionner

moviuro@psychoticdelirium ~ % cat /boot/loader/entries/arch.conf 
title   ArchLinux - signed
linux   /vmlinuz-linux.signed
initrd  /initramfs-linux.img
options cryptdevice=UUID=c3c2fcfa-9265-4da7-a927-0a18d83d8d77:luks-c3c2fcfa-9265-4da7-a927-0a18d83d8d77 root=UUID=73b5d405-ed79-474c-bb6a-e6c137eb9dcd rw acpi_osi=Linux acpi_backlight=legacy quiet elevator=noop

Code : Tout sélectionner

moviuro@psychoticdelirium ~ % cat /boot/loader/loader.conf
default arch
Aussi, revois le titre de ton post, sinon quelqu'un d'autre va faire la remarque... (c'est écrit en rouge en plus quand tu entres le titre... :P )

Re: Un point sur efi boot stub

Publié : mer. 09 juil. 2014, 16:24
par benjarobin
Il est très très fortement recommandé d'avoir le disque formaté en GPT.
As tu déjà un autre OS d'installé ? Si ce n'est pas le cas, il suffit de faire un petit formatage pour que gdisk ne râle pas. Par exemple

Code : Tout sélectionner

dd if=/dev/zero of=/dev/sda bs=4M count=1
partprobe /dev/sda

Re: [efi boot stub]Un point sur efi boot stub

Publié : mer. 09 juil. 2014, 18:45
par alexandre
Ok (j'ai commencé par rectifier mon titre)

Dans l’immédiat je n'ai pas besoin de bootloader (un seul OS, un seul noyau, et je ne redémarre qu'une fois par mois en moyenne...) donc si je peux m'en passer... Je vais quand même jeter un coup d’œil, le coté "strait-forward" me tentant bien.

Par contre je retenterai le tout (vous n'y avez pas vu d'erreur a priori) en m'arrangeant pour avoir un disque GPT (non, le disque en question est vierge, enfin maintenant il faut que je vire ce que j'y ai installé). Au passage j'essaierai de respecter les 512 M pour la partition ESP.

Je vous tiens au courant demain, merci pour vos réponses.

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 12:37
par alexandre
Au rapport comme annoncé !

1/ j'ai pu créer un disque GPT avec les partitions qui vont bien et refaire la même chose sauf que ça ne bootait toujours pas sur le disque :(

2/ je me suis décidé à installer gummiboot et là, plusieurs bonnes nouvelles :
*je ne raterrie plus dans cet horrible shell (uefi 2.31 d'american megatrends revision 5.8, pour être précis)
*à la place je tombe sur la liste des entrés qu'on configure dans le dossiers ..../entries de gummiboot

Ceci me laisse penser que la partition ESP est correcte et accessible

3/ j'avais ds doutes sur la syntaxe des entrés pour gummiboot, j'en ai donc essayé deux mais les deux foirent :(

peut-être pouvez-vous m'aider encore :D ?

Voici les données :
la partition ESP est montée dans le dossier /boot/efi, gummiboot s'est vu affublé d'un --path=/boot/efi install, le noyaux et les initramfs de /boot ont été copiés dans /boot/efi/EFI/arch et répondent désormais aux doux noms suivants (différents de ceux de /boot, comme indiqué dans le wiki francophone d'EFISTUB) :
vmlinuz-arch.efi
initramfs-arch.img
initramfs-arch-fallback.img

Pour l'instant j'ai indiqué les deux entrés suivantes à gummiboot

*arch.conf contient

Code : Tout sélectionner

title   Arch Linux
linux   /vmlinuz-arch.efi
initrd  /initramfs-arch.img
option  root=PARTUUID=ma_mémoire_me_fait_defaut rw
*archbis.conf contient

Code : Tout sélectionner

title   Arch Linux
linux   /arch/vmlinuz-arch.efi
initrd  /arch/initramfs-arch.img
option  root=PARTUUID=ma_mémoire_me_fait_defaut rw

...et je me rends compte que j'aurais plutôt dû essayer /EFI/arch/trucs_bidules... et autre question, devrias-je plutôt laisser les noms usuels du noyau et des initramfs, en tout cas les mêmes que dans /boot ?


Autre nouveauté sympathique : dans le choix des media de boot dans le bios, il ne se contente plus d'un lacunaire "hard disk" mais m'indique carrément une partition (LA partition ESP j'imagine...)

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 12:39
par Moviuro
La balise [code] !!!

option root=PARTUUID=ma_mémoire_me_fait_defaut rw C'est ça le souci, c'est pas le PARTUUID qu'il faut mais l'UUID. Ça devrait tout résoudre (bon retour en live ;) )

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 13:08
par alexandre
Merci Moviuro, je suivais ça https://wiki.archlinux.org/index.php/Gu ... ot_entries, qu'il faudrait corriger si le PARTUUID ne peut pas marcher... Je vais essayer en m'inspirant de ton exemple d'entrée.

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 13:12
par Moviuro
alexandre a écrit :Merci Moviuro, je suivais ça https://wiki.archlinux.org/index.php/Gu ... ot_entries, qu'il faudrait corriger si le PARTUUID ne peut pas marcher... Je vais essayer en m'inspirant de ton exemple d'entrée.
Ah bah, si c'est dans le wiki, c'est étrange. T'es sûr que t'as pas fait un micmac au niveau des partitions ? Aussi, t'es sûr que les images s'appellent bien comme dans tes entrées ? moi dans /boot, j'ai vmlinuz-linux, pas de .efi ou *-arch*...

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 15:10
par alexandre
En fait les noms sont changés dans le wiki et j'ai suivi ça à la lettre...

Sinon avec

Code : Tout sélectionner

root=UUID=blablabla
ça marche effectivement, à condition de mettre les chemins /EFI/arch/trucs_bidules, les autres ne marchaient pas.

Finalement j'ai pu booter sur le noyau du disque dur, et poursuivre l'installation, preuve en est j'écris ce message depuis l'interface graphique. Il reste pas mal de choses à faire mais je devrais m'en sortit maintenant. Merci Movurio.

Une dernière remarque : dans un boot uefi uniquement, à quoi sert la double partition /boot et /boot/efi, ne serait-il pas aussi fonctionnel de monter la partition ESP dans /boot directement (j'ai l'impression que ça éviterait les problèmes de mise-à-jour du noyau...) ?

Re: [efi boot stub]Un point sur efi boot stub (résolu)

Publié : jeu. 10 juil. 2014, 15:41
par benjarobin
Il est bien sur possible de faire une telle chose (enfin tout dépend du bootloader), une fois que l'on a bien compris comment s’architecturait le tout.
Mais le problème c'est que cela créé des fichiers à la racine de la partition FAT32 EFI, ce qui n'est pas propre surtout si tu as un multiboot.

Re: [efi boot stub]Un point sur efi boot stub

Publié : jeu. 10 juil. 2014, 17:16
par Moviuro
alexandre a écrit :Une dernière remarque : dans un boot uefi uniquement, à quoi sert la double partition /boot et /boot/efi, ne serait-il pas aussi fonctionnel de monter la partition ESP dans /boot directement (j'ai l'impression que ça éviterait les problèmes de mise-à-jour du noyau...) ?
Super ! Perso, je n'ai qu'arch sur ma machine et je n'ai que /boot comme partition :)