[GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

[GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

Bonjour à tous,
J’essaie de configurer GRUB pour permettre de choisir au démarrage l'OS sur lequelle je veux être.
J'ai 3 disques dur dans ma tour:
  • SDA => Fedora
  • SDB => Windows
  • SDC => Archlinux
Je suis principalement sur Archlinux, Windows me sert seulement pour quelques jeux et application et Fedora est mon OS de travail.
Hélas j'ai des applications comme Salomé-méca, OpenFoam ou Blender qui fonctionne mal ou pas sous Archlinux.

OS-Prober m'a bien détecté mon disque avec Windows mais c'est tout. Du coup j'ai modifié mon fichier /etc/grub.d/40 Custom comme suivant:

Code : Tout sélectionner

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
 
menuentry "Fedora 40" {
  # assuming that UUID is 02e05f5c-453d-4881-8f95-7c3715f22aaf
  search --no-floppy --set=root --fs-uuid 02e05f5c-453d-4881-8f95-7c3715f22aaf
  #set root=02e05f5c-453d-4881-8f95-7c3715f22aaf
  linux /boot/vmlinuz (add other options here as required)
  initrd /boot/initrd.img (if the other kernel uses/needs one)
}
menuentry "System shutdown" {
        echo "System shutting down..."
        halt
}
menuentry "System restart" {
        echo "System rebooting..."
        reboot
}
J'ai essayé de suivre les éléments données dans ce sujet mais ça n'a pas fonctionné => viewtopic.php?p=132142&hilit=fedora+dualboot#p132142

Le message de retour que j'ai est le suivant:

Code : Tout sélectionner

error: file '/boot/vmlinux' not found.
error: you need to load the kernel first.

Press any key to continue...
Ou est ce que ça fonctionne pas? Comment savoir quel kernel démarré au départ?
J'ai mis l'uuid de la partition de boot de Fedora.

Bonne journée
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Bonjour,
Je suppose que tu n'as pas un boot UEFI, et que c'est un boot legacy/MBR.
Les fichiers kernel et initrd.img possède la version dans leur nom : https://docs.fedoraproject.org/en-US/qu ... l-booting/
Mais si tu spécifies ces chemins, à la prochaines mise à jour tu ne pourras plus lancer Fedora. Mais normalement à la racine de la partition de fedora, il y a des liens symboliques qui pointent vers les bons fichier kernel et initrd, mais tu ne peux les utiliser que si ti n'as pas utilisé de partition de boot séparé pour ta Fedora.
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

Et oui je suis sur un vieux dinosaure sans UEFI.

Ok j'ai essayé de mettre les nom de fichiers qui vont bien mais j'ai eu un kernel panic au démarrage.
Je ne peux pas dire à Grub de Archlinux de lancer le Grub de Fedora qui lui gère les numéro de version du kernel er initrf.img?
Boot CM => Grub Archlinux => Grub Fedora => Login Fedora
Pour le moment, je change de disque de démarrage au boot de ma carte mère et ça fonctionne comme ça mais je ne trouve pas ça très ergonomique.

Bonne journée
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Tu as eu un kernel panic, car tu n'as pas dû passer toutes les bonnes options.

Mais sinon bien sûr que tu peux chainload, voir wiki de arch pour cela :
- https://wiki.archlinux.org/title/GRUB#C ... disk's_VBR
- https://www.gnu.org/software/grub/manua ... 02dloading
L'exemple donné est souvent Windows, mais cela fonctionnera aussi avec ta fedora.

En gros cela te donne une entrée comme ceci :

Code : Tout sélectionner

menuentry "Fedora" {
	insmod ext2
	insmod search_fs_uuid
	insmod chain
        search --no-floppy --fs-uuid --set=root $hints_string $fs_uuid
	chainloader +1
}
Afin d'executer les commandes suivantes (et uniquement pour cela), tu montes quelques part la partition qui contient le dossier boot de fedora, par exemple dans /mnt

Tu dois remplacer $fs_uuid par la sortie de :

Code : Tout sélectionner

grub-probe --target=fs_uuid /mnt/boot/vmlinuz*
Tu dois remplacer $hints_string par la sortie de :

Code : Tout sélectionner

grub-probe --target=hints_string /mnt/boot/vmlinuz*
Dans les commandes précédentes, tu dois passer le chemin d'un fichier qui est dans la partition de boot de fedora, j'ai utilisé le kernel pour l'exemple (/mnt/boot/vmlinuz*)...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

Merci pour les astuces. J'ai fait les manip et je dois être proche du résultat final. Maintenant j'ai une erreur : Error: Invalid Signature.
Une idée pour corriger ça?
Merci
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Je pense au contraire que tu dois être assez loin du résultat...
Peux tu donner la sortie (en root) de :

Code : Tout sélectionner

blkid
fdisk -l
Le contenu de ton /etc/grub.d/40_custom
Une description du partitionnement de ta fedora, et une indication de quel disque, ...
Peux tu aussi monter la partition qui contient le dossier boot de fedora dans /mnt, et donne la sortie de :

Code : Tout sélectionner

ls -la /mnt /mnt/boot
mount | grep "/mnt"
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

benjarobin a écrit : ven. 01 nov. 2024, 13:47 Je pense au contraire que tu dois être assez loin du résultat...
Peux tu donner la sortie (en root) de :

Code : Tout sélectionner

blkid
fdisk -l
Le contenu de ton /etc/grub.d/40_custom
Une description du partitionnement de ta fedora, et une indication de quel disque, ...
Peux tu aussi monter la partition qui contient le dossier boot de fedora dans /mnt, et donne la sortie de :

Code : Tout sélectionner

ls -la /mnt /mnt/boot
mount | grep "/mnt"
Mince je pensais que j'avais bien fait ce que tu m'avais dit :oops:

Voici le résultat pour la commande blkid :

Code : Tout sélectionner

/dev/sdb2: BLOCK_SIZE="512" UUID="B652CDD552CD9A8F" TYPE="ntfs" PARTUUID="4d324d32-02"
/dev/sdb3: BLOCK_SIZE="512" UUID="9E7AD3C77AD39A7B" TYPE="ntfs" PARTUUID="4d324d32-03"
/dev/sdb1: LABEL="RM-CM-)servM-CM-) au systM-CM-(me" BLOCK_SIZE="512" UUID="B8DACA80DACA3A80" TYPE="ntfs" PARTUUID="4d324d32-01"
/dev/sdc2: UUID="0e340c7e-9312-4e33-b8f7-7d85d1ef5d30" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0976faa0-02"
/dev/sdc3: UUID="bc12c7e5-bb89-4a4d-b34b-f9e0fd0d5531" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0976faa0-03"
/dev/sdc1: UUID="e1ba6a12-854e-48f9-ae7a-7b5559d22661" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="0976faa0-01"
/dev/sdc4: UUID="d9ba4241-bee4-44b9-ac0b-18b4320a4141" TYPE="swap" PARTUUID="0976faa0-04"
/dev/sda4: UUID="274c7b45-7a00-40a8-99e6-f8435051da1d" TYPE="swap" PARTUUID="df03687a-f633-4edd-8e6d-350cb20f99cc"
/dev/sda2: UUID="02e05f5c-453d-4881-8f95-7c3715f22aaf" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="34537b4c-95e6-4582-a71f-9aa8942c3cc1"
/dev/sda3: LABEL="fedora_localhost-live" UUID="549b8c8c-0f44-4c8d-92c2-9871352e8a74" UUID_SUB="63792a94-d5cb-491d-88b4-bb678e72ba0a" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="d62713b6-8938-432b-8dd3-5dfcd4b117e7"
/dev/sda1: PARTUUID="f4d9b9b3-f9a6-477a-aa41-aadf0354fac2"
Pour la commande fdisk -l :

Code : Tout sélectionner

Disque /dev/sda : 465,76 GiB, 500107862016 octets, 976773168 secteurs
Modèle de disque : ST500DM002-1BD14
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 3CE3EA42-CCD0-475C-9A25-D666D5D8A894

Périphérique     Début       Fin  Secteurs Taille Type
/dev/sda1         2048      6143      4096     2M Amorçage BIOS
/dev/sda2         6144  10491903  10485760     5G Système de fichiers Linux
/dev/sda3     10491904 849352703 838860800   400G Système de fichiers Linux
/dev/sda4    849352704 882907135  33554432    16G Partition d'échange Linux


Disque /dev/sdb : 447,14 GiB, 480113590272 octets, 937721856 secteurs
Modèle de disque : SanDisk SSD PLUS
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x4d324d32

Périphérique Amorçage     Début       Fin  Secteurs Taille Id Type
/dev/sdb1    *             2048    206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sdb2                206848 936499629 936292782 446,5G  7 HPFS/NTFS/exFAT
/dev/sdb3             936501248 937715711   1214464   593M 27 TFS WinRE masquée


Disque /dev/sdc : 465,76 GiB, 500107862016 octets, 976773168 secteurs
Modèle de disque : CT500MX500SSD1  
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x0976faa0

Périphérique Amorçage     Début       Fin  Secteurs Taille Id Type
/dev/sdc1                  2048    616447    614400   300M 83 Linux
/dev/sdc2                616448 205416447 204800000  97,7G 83 Linux
/dev/sdc3             205416448 968280063 762863616 363,8G 83 Linux
/dev/sdc4             968282112 976670719   8388608     4G 82 partition d'échange Linux / Solaris
Pour le contenue mon fichier 40_custom :

Code : Tout sélectionner

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

if [ "${grub_platform}" == "pc" ]; then
menuentry "Fedora 40" {
    insmod ext2
    insmod search_fs_uuid
    insmod chain
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 02e05f5c-453d-4881-8f95-7c3715f22aaf
    chainloader +1
  }
fi

#menuentry "Fedora 40" {
  # assuming that UUID is 02e05f5c-453d-4881-8f95-7c3715f22aaf
  #search --no-floppy --set=root --fs-uuid 02e05f5c-453d-4881-8f95-7c3715f22aaf
  #linux /vmlinuz-6.11.4-201.fc40.x86_64 (add other options here as required)
  #initrd /initramfs-6.11.4-201.fc40.x86_64.img (if the other kernel uses/needs one)
#}
menuentry "System shutdown" {
        echo "System shutting down..."
        halt
}
menuentry "System restart" {
        echo "System rebooting..."
        reboot
}
Donc Fédora est installé sur le disque SDA
Pour le patitionnement, j'ai 4 partitions sur ce disque:
  • sda1 => grub2.core.img => 2mo
  • sda2 => ext4 => dossier boot => 5Go
  • sda3 => btfrs => dossier / => 400Go
  • sda4 => swap => 16Go
Le résultat pour la commande ls -la /mnt /mnt/boot :

Code : Tout sélectionner

ls: impossible d'accéder à '/mnt/boot': Aucun fichier ou dossier de ce nom
/mnt:
total 364044
dr-xr-xr-x  6 root root      4096 23 oct.  10:03 .
drwxr-xr-x 18 root root      4096  3 nov.  11:55 ..
-rw-r--r--  1 root root    277997 10 oct.  02:00 config-6.11.3-200.fc40.x86_64
-rw-r--r--  1 root root    277997 20 oct.  02:00 config-6.11.4-201.fc40.x86_64
-rw-r--r--  1 root root    272192  2 mai    2024 config-6.8.9-100.fc38.x86_64
drwx------  4 root root      4096 17 oct.  19:35 efi
drwx------  5 root root      4096 31 oct.  13:03 grub2
-rw-------  1 root root 111720552  9 nov.   2023 initramfs-0-rescue-13cb0a90d2ab45659b7980cae7eb992d.img
-rw-------  1 root root  55735938 17 oct.  19:46 initramfs-6.11.3-200.fc40.x86_64.img
-rw-------  1 root root  57089797 23 oct.  10:03 initramfs-6.11.4-201.fc40.x86_64.img
-rw-------  1 root root  55547336 17 oct.  08:03 initramfs-6.8.9-100.fc38.x86_64.img
drwxr-xr-x  3 root root      4096  9 nov.   2023 loader
drwx------  2 root root     16384  9 nov.   2023 lost+found
-rw-r--r--  1 root root    182572 17 oct.  19:46 symvers-6.11.3-200.fc40.x86_64.xz
-rw-r--r--  1 root root    182520 23 oct.  10:03 symvers-6.11.4-201.fc40.x86_64.xz
lrwxrwxrwx  1 root root        45 17 oct.  08:03 symvers-6.8.9-100.fc38.x86_64.xz -> /lib/modules/6.8.9-100.fc38.x86_64/symvers.xz
-rw-r--r--  1 root root   9967572 10 oct.  02:00 System.map-6.11.3-200.fc40.x86_64
-rw-r--r--  1 root root   9968458 20 oct.  02:00 System.map-6.11.4-201.fc40.x86_64
-rw-r--r--  1 root root   9021531  2 mai    2024 System.map-6.8.9-100.fc38.x86_64
-rwxr-xr-x  1 root root  14215976  9 nov.   2023 vmlinuz-0-rescue-13cb0a90d2ab45659b7980cae7eb992d
-rwxr-xr-x  1 root root  16300392 10 oct.  02:00 vmlinuz-6.11.3-200.fc40.x86_64
-rw-r--r--  1 root root       161 10 oct.  02:00 .vmlinuz-6.11.3-200.fc40.x86_64.hmac
-rwxr-xr-x  1 root root  16300392 20 oct.  02:00 vmlinuz-6.11.4-201.fc40.x86_64
-rw-r--r--  1 root root       161 20 oct.  02:00 .vmlinuz-6.11.4-201.fc40.x86_64.hmac
-rwxr-xr-x  1 root root  15646536  2 mai    2024 vmlinuz-6.8.9-100.fc38.x86_64
-rw-r--r--  1 root root       160  2 mai    2024 .vmlinuz-6.8.9-100.fc38.x86_64.hmac
Et pour la commande mount | grep "/mnt" :

Code : Tout sélectionner

/dev/sda2 on /mnt type ext4 (rw,relatime)
Merci pour le coup de main car là ça sort de mes compétence sous linux :merci:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Tu n'y est pour rien, ce que je t'ai donné ne peut pas fonctionner. Peux tu essayer ceci :

Supprime le ligne : search ...
Et remplace la suivante par :

Code : Tout sélectionner

chainloader (hd0)+1
---

Une autre solution est de garder la ligne search, puis de remplacer la suivante par :

Code : Tout sélectionner

configfile /grub2/grub.cfg
En supposant que le fichier grub.cfg se trouve bien dans le dossier boot de ta fedora sous ce chemin (a adapter sinon)

----

Si la première solution fonctionne, il faudra l'améliorer en gardant le search mais qui set une variable nommée fedoraboot au lieu de Root puis tu ajoutes juste après cette ligne :

Code : Tout sélectionner

regexp --set root "(hd[0-9]),.*" "$fedoraboot"
Et la commande suivante est simplement chainloader +1
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

J'ai essayé mais rien ne passe. J'ai même demandé à ChatGPT mais pareil.
Bon j'abandonne, je ferais une sélection du disque lors du boot sur ma carte mère.
Merci pour le coup de main en tout cas
clapas
yeomen
Messages : 286
Inscription : sam. 08 sept. 2012, 07:23
Localisation : Comtat Venaissin

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par clapas »

Bonjour,
Tripleboot Archlinux / Fedora 40 / Windows .... Et oui je suis sur un vieux dinosaure sans UEFI.
Ce sont juste les installations qui sont en legacy/MBR, ou le BIOS ne propose pas du tout le mode UEFI ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Normalement toutes les solutions que je propose devraient fonctionner (peut être il y a des détails à adapter), mais sans la moindre information il est en effet difficile d'aider / d'orienter...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

clapas a écrit : sam. 23 nov. 2024, 19:21 Bonjour,
Tripleboot Archlinux / Fedora 40 / Windows .... Et oui je suis sur un vieux dinosaure sans UEFI.
Ce sont juste les installations qui sont en legacy/MBR, ou le BIOS ne propose pas du tout le mode UEFI ?
C'est une carte mère avec un bios sans UEFI (carte mère de 2012)
rcoulon44
Hankyu
Messages : 23
Inscription : dim. 22 mars 2020, 12:29

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par rcoulon44 »

benjarobin a écrit : sam. 23 nov. 2024, 19:48 Normalement toutes les solutions que je propose devraient fonctionner (peut être il y a des détails à adapter), mais sans la moindre information il est en effet difficile d'aider / d'orienter...
J'avais les même erreur que pour les essais précédents => Error: Invalid Signature
Je comprends que ça devrait fonctionner. Ce n'est pas grave. Il doit y avoir un petit détail quelque part qui déconne. Merci en tout cas pour l'aide.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par benjarobin »

Avec la solution configfile tu ne peux PAS avoir l'erreur Invalid Signature, comme il n'y a pas utilisation de chainloader
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
papajoke
Elfe
Messages : 811
Inscription : sam. 30 août 2014, 19:54

Re: [GRUB] Tripleboot Archlinux / Fedora 40 / Windows

Message par papajoke »

bonjour

je ne connais pas fédora, mais de ce que je vois sur le wiki, comme manjaro, la version du kernel est entrée dans les entrées grub

Avec mon "ancienne" machine (non uefi, plusieurs disques), j'ai simplement installé un unique grub à la racine du disque mbr pour 36 linux et win. Le grub "le plus complexe" soit manjaro(fédora pour toi). Et il est simple de créer un fichier "custom" pour archlinux si il est mal reconnu/auto-configuré par l'unique grub (depuis 6 mois, nous pouvons intégrer microcode dans les hooks de mkinitcpio donc je suppose que le grub fedora gère bien en automatique arch maintenant).
En 10 ans, jamais le moindre problème
Arch stable - Kde 6 / fish - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Répondre