Grub : détecter autres disques internes et USB

Un /boot/efi sur l’autre disque dur vous voulez-dire ? Les 2 disques doivent avoir ça ?

bonsoir

résumons : tu as bien su chaque disque sda ou nmve0 une partition /boot/efi dédié , il faut donc utuliser os-prober pour voir les autres disques partitions linux

il faut donc ,
modifier /etc/default/grub
GRUB_DISABLE_OS_PROBER=true

puis lancer

sudo os-prober 

et le faire sur chaque systeme linux

Pour monter un disque USB au démarrage. Vérifie le numéro de SDA.

sudo nano /etc/fstab

et ajoute

/dev/sda1             /mnt            ext4    defaults          0       0

OK si je résume tout :sweat_smile: :stuck_out_tongue_closed_eyes:j’ai ça :

sudo parted -l
Modèle : ATA Samsung SSD 870 (scsi)
Disque /dev/sda : 2000GB
Taille des secteurs (logiques/physiques) : 512B/512B
Table de partitions : gpt
Drapeaux de disque :

Numéro Début Fin Taille Système de fichiers Nom Drapeaux
1 1049kB 6443MB 6442MB fat32 vfat démarrage, esp
2 6443MB 1980GB 1974GB ext4 userdata

Modèle : Samsung SSD 970 EVO Plus 1TB (nvme)
Disque /dev/nvme0n1 : 1000GB
Taille des secteurs (logiques/physiques) : 512B/512B
Table de partitions : gpt
Drapeaux de disque :

Numéro Début Fin Taille Système de fichiers Nom Drapeaux
1 2097kB 317MB 315MB fat32 démarrage, esp
2 317MB 1000GB 1000GB ext4 root

=> Donc j’ai bien les flags “démarrage, esp”

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1,8T 0 disk
├─sda1 8:1 0 6G 0 part
└─sda2 8:2 0 1,8T 0 part /run/media/richard/SHARE
nvme0n1 259:0 0 931,5G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot/efi
└─nvme0n1p2 259:2 0 931,2G 0 part /

=> Ici par contre je n’ai pas/boot/efi sur le SSD SATA. Quand j’ai installé il ne m’a pas mis cette partition. Il lui en faut une aussi ? Si j’en crée une, ça ne posera pas de conflits avec l’autre disque qui a un /boot/efi aussi ?

Et j’ai cette ligne là dans mon /etc/defaut/grub :
# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

less /etc/fstab :

UUID=6845-B600 /boot/efi vfat umask=0077 0 2
UUID=44277a09-a05b-432e-90b0-72c1a8efd563 / ext4 defaults,noatime 0 1
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Que dois-je faire ? Créer une partition /boot/efi sur le SSD SATA aussi ? Exécuter os-prober ? Modifier le fichier fstab ? Tout ça à la fois lol :sweat_smile:?

Modèle : ATA Samsung SSD 870 (scsi)
Disque /dev/sda : 2000GB
1 1049kB 6443MB 6442MB fat32 vfat démarrage, esp
==> 6Go en Vfat , pas de /boot/efi

Modèle : Samsung SSD 970 EVO Plus 1TB (nvme)
Disque /dev/nvme0n1 : 1000GB
2097kB 317MB 315MB fat32 démarrage, esp
==> /boot/efi

Donc je suis bon sur les config du sudo parted -l et du lsblk ? Du coup c’est le sudo os-prober et le fichier /etc/stab que je dois régler ?

Petite update de désespoir après une nuit de recherche dessus…

1/ J’ai bien dans mon /etc/defaut/grub comme vous m’avez dit (j’ai remplacé le “false” par “true” :
# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=true

2/ J’ai monté la partition en faisant :
sudo mount /dev/sda1 /mnt´ Pas de problème dans mon dossier /mnt`je vois bien tout qui est apparu.

3/ Comme l’a suggéré Kerneldesign, j’ai bien ajouté ceci à la fin de mon fichier /etc/fstab :
/dev/sda1 /mnt ext4 defaults 0 0
J’ai également tenté en remplaçant ext4 par fat32 car cette partition est en fat32.

4/ J’ai exécuté :

sudo update-grub
sudo os-prober

Malgré tout rien de plus au démarrage. En revanche après avoir sélectionné Manjaro gros écran noir avec un message d’erreur /failed me disant de faire Ctrl et D ou de rentrer le mot de passe de super-utilisateur. Alors j’ai remodifié comme à l’origine le fichier /stab pour pouvoir rebooter normalement. J’ai également remplacé ext4 par vfat dans le fichier stab(j’ai fait des essais… dans mon nvme il y a un vfat, et GParted me dit que le nom de cette partition c’est vfat alors j’ai tenté) et là ça boote normalement sans toujours pas me proposer Batocera…

Tu demandes ainsi la désactivation de os-prober !
Il faut mettre
GRUB_DISABLE_OS_PROBER=false
puis refaire
sudo update-grub
Et là peut-être os-prober verra ton autre distrib

J’avais fait aussi mais sans succès…

MAIS : j’ai trouvé une solution (même si je ne la comprends pas et ne me semble pas trop conventionnelle…).

Voici où j’ai trouvé la solution : dual_boot_ubuntu_batocera.linux [Batocera.linux - Wiki]
J’ai suivi le tuto pour Linux Mint -_-… J’avais déjà testé la version pour Ubuntu mais sans succès (en même temps je m’y attendais sur Manjaro lol mais bon le désespoir…). Finalement j’ai quand même tenté la version pour Linux Mint et ça a marché (alors que Mint est basé sur Ubuntu donc je m’y attendais pas vraiment). Si je comprends bien leur script ils récupèrent avec une RegEx le UUID et après je ne sais pas…

A noter que ça n’a rien changé à /etc/fstab où la partition n’apparait toujours pas… bref aucun de mes fichiers de config ne semble avoir été modifié, pas touché à etc/defaut/grub… je ne comprends pas la solution :upside_down_face:

En gros, tu fais le boulot pour grub à la place de os_prober. Regarde les autres fichiers dans /etc/grub.d.
Dans la doc de grub sur Arch, il est précisé que quand on lance update-grub avec os_prober activé, il faut que les partitions contenant d’autres OS soient montées. Est-ce que c’était bien le cas pour celle de Batocera ?

Oui du coup dans /etc/grub.d j’ai créé le fichier 15_batocera. Oui j’avais bien avant monté Batocera, je le voyais bien dans /mnt. Par contre si j’éteignais ou redémarrais il fallait que je le remonte chaque fois en faisant sudo mount /dev/sda1 /mnt. Pourtant j’avais bien rajouté une ligne dans le fichier /etc/fstab pour que ça reste (ma ligne ressemblait à ça : /dev/sda1 /mnt ext4 defaults 0 0. J’avais également tenté en remplaçant ext4 par fat32 car cette partition est en fat32.
A noter que là je n’ai rien qui s’est ajouté dans mon fichier /etc/fstab… Donc à part rajouter le fichier dans /etc/grub.d et fait le os-prober, rien n’a changé. Je ne sais pas ce qu’à modifié le os-prober… Je pensais qu’il aurait rajouté une ligne correspondant à Batocera dans `/etc/fstab’mais non.

os_prober ne fait probablement rien de plus qu’avant. C’est le fichier /etc/grub.d/15_batocera que tu as ajouté qui fait le job !
Pour fstab, utilise plutôt l’uuid que /dev/sda1 ; quant aux drapeaux, c’est du fat32 et ça fait longtemps que je n’en ai plus dans le PC. Regarde aussi les droits sur /mnt.