Doppia partizione UEFI, non riesco a fare dual boot da grub

Forko l’argomento trattato in questo topic.

http://forum.fedoraonline.it/viewtopic.php?id=22796

Devo ancora fare le operazioni richieste da tempus, di sicuro il grub2-mkconfig trova anche il kernel di fedora oltre ad arch, aggiunge anche la voce
di menu’ in grub, ma scegliendo la voce di menu’ di Fedora, il boot muore con l’errore

error: can't find command "linuxefi"
error: can't find command "initrdefi"

ho lanciato i comandi indicati da tempus con fedora

gdisk -l /dev/sda
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C31518D5-1BB2-4ECF-8720-3875123CF32A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2718 sectors (1.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          202047   97.7 MiB    EF02  uefi boot
   2          202752       766613503   365.5 GiB   8300  linux filesystem
   3       972204032       976773134   2.2 GiB     8200  linux swap
   4       766613504       767023103   200.0 MiB   EF00  Partizione di siste...
   5       767023104       768047103   500.0 MiB   0700  
   6       768047104       972204031   97.3 GiB    8E00  

		efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0000
Boot0000* arch_grub	HD(1,800,30d40,ce01fab7-4f9e-4435-9dfc-852e1e10dcae)File(\EFI\arch_grub\grubx64.efi)
Boot0002* Fedora	HD(4,2db19800,64000,963acc1b-6280-4eb2-be25-bdf7ef6be683)File(\EFI\fedora\shim.efi)

		mount -t vfat
/dev/sda4 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)

		tree -L 3 -d /boot/
/boot/
├── efi
│   ├── EFI
│   │   ├── BOOT
│   │   └── fedora
│   └── System
│       └── Library
├── extlinux
├── grub2
│   └── themes
│       └── system
└── lost+found

11 directories

		grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.14.8-200.fc20.x86_64
Found initrd image: /boot/initramfs-3.14.8-200.fc20.x86_64.img
Found linux image: /boot/vmlinuz-3.11.10-301.fc20.x86_64
Found initrd image: /boot/initramfs-3.11.10-301.fc20.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-3b5eed265d22464a81468d08d805e029
Found initrd image: /boot/initramfs-0-rescue-3b5eed265d22464a81468d08d805e029.img
Found Arch on /dev/sda2
done

tentando di avviare arch ottengo l’errore

cannot find linux
cannot find initrd

Hai una sola partizione EFI (un solo ESP), hai in aggiunta una partizione bios_grub (con codice EF02) la quale, nonostante il nome “uefi boot”, è la (opzionale) partizione in grado di permettere a un disco in GPT di “fare boot” anche se avviato in modalità legacy.

Tuttavia, sembra tu abbia una entrata UEFI che punta a /dev/sda1 per arch… nonostante sia solo una BIOS boot partition. Senza entrare nel dettaglio dell’altro sistema operativo, se al menù UEFI selezioni arch_grub, gli output di

$ mount -t vfat $ tree -L 3 -d /boot/ dall’altro SO confermano il tutto?

Non so se confermano tutto, purtroppo non conosco cosi’ a fondo le meccaniche.
All’inizio avevo installato arch seguendo le istruzioni UEFI, perche’ il pc e’ nuovo e il bios non supporta l’avvio legacy.
Puo’ essere anche che i 2 grub non si capiscano? Cioe’ che l’ultimo va a completare il primo in maniera errata?

Intanto grazie(meglio che mi studio i comandi va)

sudo mount -t vfat
/dev/sda1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

		tree -L 3 -d /boot/
/boot/
|-- EFI
|   |-- EFI
|   |   `-- fedora
|   `-- arch_grub
|-- grub
|   |-- fonts
|   |-- i386-pc
|   |-- locale
|   |-- themes
|   |   `-- starfield
|   `-- x86_64-efi
`-- grub2
    `-- themes
        `-- system

14 directories

Ciao ragazzi, ho provato a fare qualche prova, sul grub che ho in arch linux (non sono ancora pratico di fedora).

menuentry 'Fedora' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-/dev/mapper/live-rw' { load_video insmod gzio insmod part_gpt insmod fat set root='hd0,gpt1' if x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 2983-9759 else search --no-floppy --fs-uuid --set=root 2983-9759 fi linux /vmlinuz-linux root=/dev/mapper/live-rw ro initrd /initramfs-linux.img }

prima al posto di linux c’era linuxefi, e al posto di intrd c’era initrdefi

adesso il grub procede, pero’ non trova la root (/dev/mapper/live-rw)
arch parte perche’ ha come root un UID che rappresenta la partizione in cui ho installato il sistema (base base-devel) di arch

sono sulla buona strada? gradirei consigli per non infognarmi

Data la situazione, evitando di toccare dischi e troppi file, valuterei un chainload da fedora all’altra distribuzione. https://www.happyassassin.net/2014/01/08/how-to-do-manual-multi-boot-configuration-with-fedora/ qualche fidata direttiva (ancorché in inglese, e parte da un approccio diverso: il grub di fedora in quell’esempio viene installato in una partizione anziché in cima al disco - pratica oggi deprecata ma fattibile - ed è il grub dell’altro OS a “comandare”).
In sintesi, trattasi di disabilitare (da Fedora) l’OS prober di grub e di permettere all’altro OS di arrangiarsi (visto che non ha problemi ad avviarsi via UEFI) attraverso un chainload da predisporre con apposito file sotto /etc/grub.d/ ; non è necessario reinstallare grub, ovviamente, tralascia le istruzioni in quel senso. Verosimilmente potrai predisporre allo stesso modo nell’altra distribuzione.