Integrare Fedora nel Grub di Ubuntu

Salve, attualmente ho Fedora installato su un hard disk ed Ubuntu su un’altro, parte il Grub di Ubuntu ma non vede Fedora, come posso aggiungere Fedora al Grub di Ubuntu?
grazie

Prova a controllare che sul file /etc/default/grub (su Ubuntu) la stringa GRUB_DISABLE_OS_PROBER= non sia impostata sul valore false true

Nel caso sia così, dovrebbe essere sufficiente modificare il valore della stringa in true false ed in seguito aggiornare grub.

non dovrebbe essere impostata su false? altre guide dicono di mettere su false.

Sì, perdonami, hai ragione… per la fretta ho invertito i valori.

Ho controllato è già su false.

Hai provato a controllare se os-prober rileva correttamente Fedora?

No, che comando devo utilizzare, considera però che Fedora è su un altro hard disk rispetto ad Ubuntu.

Il comando per controllare quali sistemi rileva os-prober è

sudo os-prober

Comunque che siano su due hard disk diversi c’entra relativamente… non dovrebbero esserci particolari problemi se entrambe i sistemi utilizzano la stessa partizione efi

Ovviamente se installando Fedora hai creato una partizione efi indipendente da quella già pre esistente, avrai ovvie difficoltà a farla rilevare dato che os-prober non riuscirà a rilevarla sulla partizione efi utilizzata da grub su ubuntu.

La soluzione sarebbe quella di montare la partizione efi utilizzata da Fedora su una cartella su Ubuntu (altrimenti Ubuntu non riuscirebbe a leggerne il contenuto) e aggiungere una voce personalizzata su grub che vada ad avviare Fedora.

lanciando os-prober ho questo:

/dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
/dev/sda3:VanillaOS 22.10 unstable (22.10):Ubuntu:linux
/dev/sda4:VanillaOS 22.10 unstable (22.10):Ubuntu1:linux

sembra che non legge la partizione di Fedora, lanciando

fdisk -l

ho questo risultato:

ispositivo         Start       Fine   Settori   Size Tipo
/dev/nvme0n1p1       2048     534527    532480   260M EFI System
/dev/nvme0n1p2     534528     567295     32768    16M Microsoft reserved
/dev/nvme0n1p3     567296  798128127 797560832 380,3G Microsoft basic data
/dev/nvme0n1p4 1998360576 2000408575   2048000  1000M Windows recovery environme
/dev/nvme0n1p5 1215922176 1998360575 782438400 373,1G Linux filesystem
/dev/nvme0n1p6 1207728128 1215922175   8194048   3,9G Linux swap
/dev/nvme0n1p7  798128128 1207728127 409600000 195,3G Linux filesystem

Partition table entries are not in disk order.


Disk /dev/sda: 1,82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 870 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8714E8D2-31BC-48CE-96F9-6CB5A5E6DDF3

Dispositivo    Start       Fine    Settori   Size Tipo
/dev/sda1       4096    1999998    1995903 974,6M EFI System
/dev/sda2    2000000    3999998    1999999 976,6M Linux filesystem
/dev/sda3    4000000   43999998   39999999  19,1G Linux filesystem
/dev/sda4   44000000   83999998   39999999  19,1G Linux filesystem
/dev/sda5   84000768   86097919    2097152     1G Linux filesystem
/dev/sda6   86097920 3907028991 3820931072   1,8T Linux filesystem

dev/sda6/ è dove è installato fedora, ora mi chiedo se si lancia il comando grub-install /dev/sda6/ si fanno casini? non dovrebbe caricare fedora nel grub?

eh beh, direi di sì… non te lo consiglierei. Comunque come immaginavo, installando Fedora sull’hard disk hai fatto creare una partizione efi separata da quella usata da Windows e Ubuntu

/dev/nvme0n1p1 2048 534527 532480 260M EFI System questa è la partizione efi utilizzata da Windows e Ubuntu presente sull’ssd, mentre l’installazione di Fedora ha creato una partizione separata sull’hard disk (/dev/sda1 4096 1999998 1995903 974,6M EFI System) che ovviamente, non essendo accesibile da Ubuntu (semplicemente perché non ha un punto di mount assegnato) non viene letta e quindi non viene rilevata.

Per ovviare al problema, dovresti creare un cartella su Ubuntu dove poter montare la partizione /dev/sda1, magari aggiungendola anche al file /etc/fstab al fine di poter montare automaticamente la partizione all’avvio, dopodiché dovrai crearti una voce personalizzata sul menu di grub per far avviare Fedora.

non sono in grado di farlo, ho paura di fare disastri al sistema, potresti spiegarmi step by step quello che dovrei fare?
quali comandi utlizzare per fare tutte le procedure descritte?

Il procedimento più corretto da fare, sarebbe quello di utilizzare una live di Fedora e, tramite chroot, reinstallare grub sulla partizione corretta (quella presente sull’ssd).
Trovi il procedimento su questo link How to reinstall Grub EFI in Fedora with Fedora-Workstation-Live media, comunque provo a riassumere i passaggi fondamentali

Una volta avviata Fedora in live (tramite pendrive o dvd), esegui da terminale il comando:

lsblk -f

questo comando torna utile anche per recuperare l’UUID della partizione efi sull’ssd, così da poter modificare l’uuid della partizione efi anche sul file /etc/fstab di Fedora.

Successivamente dovrai montare le varie partizioni che occorrono…

Inizia con l’acquisire i privilegi di amministratore

su

Successivamente dovrai montare la partizione root / sul percorso /mnt

mount /dev/sda4 /mnt

ovviamente verifica con lsblk che /dev/sda4 sia effettivamente la partizione root /

poi monta la partizione /boot sul percorso /mnt/boot

mount /dev/sda5 /mnt/boot

ed infine monta la partizione efi presente sull’ssd sul percorso /mnt/boot/efi

mount /dev/nvme0n1p1 /mnt/boot/efi

Fatto questo dovrai fare il bind delle cartelle di sistema

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run

quindi cambi la cartella root con il comando

chroot /mnt

successivamente reinstalli grub e rigeneri la configurazione

dnf reinstall grub2-efi shim -y
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Fatto questo dovresti aggiornare poi grub su ubuntu ed eventualmente sostituire l’uuid della partizione efi sul file /etc/fstab su fedora.

Ho trovato anche uno script a questo link
Tamal
/ set-chroot.sh ovviamente ti sconsiglio di eseguirlo senza prima aver modificato i dati necessari. Però magari può aiutarti a comprendere meglio alcuni passaggi.

tu metti nella procedura sda4 e sda5? la partizione root intendi quella di fedora? perchè in quel caso sarebbe la sda6, come partizione di boot non dovrebbe essere la EFI quindi la sda1, poi non dovrei montare anche la partizione di Ubuntu?

Dispositivo         Start       Fine   Settori   Size Tipo
/dev/nvme0n1p1       2048     534527    532480   260M EFI System
/dev/nvme0n1p2     534528     567295     32768    16M Microsoft reserved
/dev/nvme0n1p3     567296  798128127 797560832 380,3G Microsoft basic data
/dev/nvme0n1p4 1998360576 2000408575   2048000  1000M Windows recovery environme
/dev/nvme0n1p5 1215922176 1998360575 782438400 373,1G Linux filesystem
/dev/nvme0n1p6 1207728128 1215922175   8194048   3,9G Linux swap
/dev/nvme0n1p7  798128128 1207728127 409600000 195,3G Linux filesystem

Partition table entries are not in disk order.


Disk /dev/sda: 1,82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 870 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8714E8D2-31BC-48CE-96F9-6CB5A5E6DDF3

Dispositivo    Start       Fine    Settori   Size Tipo
/dev/sda1       4096    1999998    1995903 974,6M EFI System
/dev/sda2    2000000    3999998    1999999 976,6M Linux filesystem
/dev/sda3    4000000   43999998   39999999  19,1G Linux filesystem
/dev/sda4   44000000   83999998   39999999  19,1G Linux filesystem
/dev/sda5   84000768   86097919    2097152     1G Linux filesystem
/dev/sda6   86097920 3907028991 3820931072   1,8T Linux filesystem

ci sarebbero sull’hard disk nvme da considerare Ubuntu, come faccio a vedere su quale partizione è installato Ubuntu?

Sull’hard disk nvme dovrebbe interessarti solo la partizione efi, ovvero dove dovrebbe essere reinstallato il grub di fedora per poter essere rilevato correttamente da ubuntu.

Comunque sarebbe preferibile usare il comando lbslk -f perché ti fornisce più informazioni sulle partizioni come, ad esempio, il punto di mount e l’uuid… almeno puoi essere certo di quale partizione montare.

Prova a postare l’output di lsblk, almeno posso indicarti le partizioni da montare con più precisione… anche perché mi sembra che hai fatto un po’ di casini con il partizionamento dell’hard disk dove hai installato fedora

sda                                                                         
├─sda1
│    vfat   FAT32       A81A-2FF8                                           
├─sda2
│    ext4   1.0         24622db9-4e9b-4805-a671-de3c3dde5624                
├─sda3
│    btrfs        b     e618d007-cfb7-4754-9fa3-5f32468ec324                
├─sda4
│    btrfs        a     64f47e8b-2916-41b0-82db-35a6e75d168d                
├─sda5
│    ext4   1.0         dc6a1fee-3ec7-4fbb-8d8c-58a199f746cc                
└─sda6
     btrfs        fedora_localhost-live
                        60faead4-de49-4739-9c57-05e0a800e41d                
nvme0n1
│                                                                           
├─nvme0n1p1
│    vfat   FAT32 SYSTEM_DRV
│                       FC97-AD6D                             218,9M    15% /boot/efi
├─nvme0n1p2
│                                                                           
├─nvme0n1p3
│    ntfs         Windows-SSD
│                       6CA698BAA698866C                                    
├─nvme0n1p4
│    ntfs         WINRE_DRV
│                       B830994330990990                                    
├─nvme0n1p5
│    btrfs              a9e33317-3b31-471f-a552-77cf5494f1cb                /home
├─nvme0n1p6
│    swap   1           fc6e9d8e-8762-499d-9439-781a02de83a8                [SWAP]
└─nvme0n1p7
     btrfs              a9e33317-3b31-471f-a552-77cf5494f1cb

sda3 e sda4 è Vanilla OS che stavo provando, ricapitolando

Sda1 è EFI di Fedora
Sda3 Vanilla OS
Sda4 Vanilla OS
da quello che so Vanilla OS fa la copia del file system ad ogni aggiornamento
Sda5 è una linux swap
Sda6 è Fedora

nvme0n1p5 dovrebbe essere Ubuntu
la nvme0n1p7 è una partizione sempre btrfs

le partizioni che devo montare sono Efi di nvme, root di Ubuntu e root di Vanilla Os

quando dici di aggiornare e sostituire UUID della partizione efi devo inserire UUID della partizione EFI di nvme su fedora? va aggiunta una riga o sostituito proprio alla UUID di fedora?

quando dici di montare la partizione boot, dopo partizione root ti riferisci alla Efi di fedora?

No, va bene la partizione efi di nvme, ma la root di ubuntu e di vanilla os non c’entrano nulla.
Dovresti utilizzare solo la root di fedora che, avendo un file system btrfs, avrà nei sui sottovolumi tutte le partizioni che ti interessano. Io purtroppo non sono mai riuscito a digerire neanche lvm, con btrfs ho anche meno dimestichezza.

In questo caso comunque potresti seguire la guida su fedora magazine che è sempre un’ottima fonte per reperire informazioni OS Chroot 101: covering btrfs subvolumes

mount /dev/sda6 /mnt/ -t btrfs -o subvol=root
mount /dev/sda5 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run

chroot /mnt

dove /dev/sda6 è la partizione root di fedora e /dev/sda5 dovrebbe invece essere la partizione /boot

sarebbe sufficiente sostituire solo l’uuid, ovviamente conviene sempre prima confrontare l’uuid presente su /etc/fstab con quelli delle due partizioni efi

A81A-2FF8 è l’uuid della partizione efi dell’hard disk dove è installata fedora e vanilla os, mentre FC97-AD6D è l’uuid della partizione efi sul disco nvme

avviando questi comandi si potrebbe incasinare tutto? perchè se è complicato lascio così e al momento accedo a fedora tramite tasto F12.
la partizione boot non dovrebbe essere la EFI la sda1?

Sarebbe più corretto dire che potrebbe incasinarsi qualcosa se digiti dei comandi errati… è ovvio che il rischio di rompere qualcosa per un comando errato c’è quasi sempre.
Comunque se temi di incorrere in problemi e ritieni sia più opportuno utilizzare il gestore di avvio del bios, magari sarebbe preferibile lasciare le cose come stanno.

la /devsda1 è sicuramente la partizione efi utilizzata attualmente da fedora e, tra l’altro, è il motivo per il quale riesci a vederla sul gestore di avvio del bios ma non tramite grub (os-prober) su ubuntu.

Se hai impartito il comando lbslk -f da ubuntu, credo sia evidente che la partizione efi usata sia la nvme0n1p1

├─nvme0n1p1
│    vfat   FAT32 SYSTEM_DRV
│                       FC97-AD6D                             218,9M    15% /boot/efi

Poi è ovvio che prima di modificare qualsiasi cosa, sarebbe bene fare questi controlli su entrambe i sistemi per essere sicuri, in modo da essere certi di quali siano le effettive partizioni utilizzate.