Bonjour,
Je cherche à booter mon nouveau système (install archlinux) avec EFISTUB.
Cela permet de booter sans gestionnaire de boot (grub, syslinux …)
J'ai désactivé le « secure boot ».
J'ai suivi: https://wiki.archlinux.org/title/EFISTUB et https://wiki.archlinux.org/title/EFI_system_partition
Ma partition ESP est sur /dev/nvme0n1p1
Mon système ( / ) est sur /dev/nvme0n1p3
J'ai procédé ainsi:
Commencé par monter le contenu de {esp}/EFI/arch/ dans /boot.
Il faut procéder avec un « bind mount » qui se fait en deux temps.
Il faut déjà mounter la partition ESP sur un répertoire qui n'est PAS « /boot » :
# mount /dev/nvme0n1p1 /EFI # créer /EFI si il n'existe pas
Puis remounter ce répertoire vers « /boot » , avec le chemin qui deviendra la racine:
# mount --bind /EFI/EFI/arch /boot
« /boot » fait maintenant référence à mes noyaux et initrd , sans avoir besoin de préfixer avec « arch/ » dans la partie « root=… » des paramètres de boot.
Cela donne dans mon cas, pendant l'installation:
root@archiso / # mount /dev/nvme0n1p1 /mnt/EFI
root@archiso / # mount --bind /mnt/EFI/EFI/arch /mnt/boot
root@archiso / # ls /mnt/boot
initramfs-linux.img initramfs-linux-fallback.img initramfs-linux-lts.img initramfs-linux-lts-fallback.img intel-ucode.img vmlinuz-linux.efi vmlinuz-linux-lts
Et les entrées /etc/fstab correspondantes pour les boots en situation réelle:
UUID=F856-5F4A /EFI vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
/EFI/EFI/arch /boot none defaults,bind 0 0
Ensuite il faut créer l'entrée EFI en suivant cette syntaxe:
# efibootmgr --create --disk /dev/sdX --part Y --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=block_device_identifier rw initrd=\initramfs-linux.img'
pour utiliser le « ESP » (partition windows) qui est sur /dev/nvme0n1p1 :
--disk /dev/nvme0n1 --part 1
Dans mon cas:
# efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Arch_LTS" --loader \\EFI\\arch\\vmlinuz-linux-lts --unicode 'root=/dev/nvme0n1p3 rw initrd=intel-ucode.img,initramfs-linux-lts.img'
Cet ordre donne ceci:
Boot0005* Arch_LTS HD(1,GPT,a7756a66-a10b-49b1-8ef8-1cf9d0c30967,0x800,0x1bd000)/File(\EFI\arch\vmlinuz-linux-lts)root=/dev/nvme0n1p3 rw initrd=intel-ucode.img,initramfs-linux-lts.img
Quand je reboote et sélectionne cette entrée, l'UEFI me répond avec l'erreur « no bootable
devices found ».
Mystère…
Merci de votre aide.
# résolu
Posté par jseb . Évalué à 2.
Résolu : je me suis débrouillé avec systemd-boot qui fonctionne beaucoup mieux.
Discussions en français sur la création de jeux videos : IRC libera / #gamedev-fr
[^] # Re: résolu
Posté par cg . Évalué à 3.
Ah, je suis un peu déçu par cette solution ;).
J'utilise systemd-boot depuis de longs mois sur Arch, et je te confirme que ça fonctionne très bien ! Il faut simplement penser à recopier le blob de microcode Intel dans la partition de boot de temps en temps (ou installer le hook correspondant).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.