Ubuntu 14.04 installazione UEFI - win 8.1

Ho un pc desktop asus (M11AD) appena acquistato con Windows 8.1 preinstallato.

Voglio installare ubuntu 14.04 e poter fare dual boot in modalità uefi.

Per prima cosa avvio il pc con il Win8.1 e guardo come è stato partizionato il disco.

- Partizione di ripristino 800MB
- Partizione di sistema EFI 260MB
- Windows C: 150GB
- Dati D: 300GB
- Partizione di ripristino 15GB

dischi_orig

L'idea è quella di eliminare la partizione Dati D: e di installare al suo posto ubuntu con il suo schema di partizioni.

Entro nel bios-uefi e vedo che è attivato il Secure Boot per Windows OS con la sua gestione delle chiavi.

Faccio quindi alcune modifiche nel menù boot per arrivare a questa configurazione

boot_menu2

Launch CSM (Compatibility support mode): enabled
Boot Device Control : UEFI and Legacy
Boot from Storage: Both, uefi and legacy(In teoria queste opzioni non dovrebbero servire visto che ubuntu lo installo in uefi mode e anche l'installer che sta su una chiavetta usb verrà fatto partire in uefi mode. Abilitare il csm sui boot device e sui device di storage mi da la possibilità di vedere tutte le possibili modalità di boot e di incasinarmi al meglio).

csm

Secure Boot
Os type : Other os
(Facendo in questo modo sparisce la gestione delle chiavi di avvio di windows; io credevo che in sostanza disabilitasse il secure mode ma, per qualche strano motivo, sempre da questo menù, risulta attivo e non riesco a modificare da enabled a disabled: Poco male visto che questa modalità "Other Os" funziona).

secure_boot

Inserisco la chiavetta usb che ho preparato (un banale "dd if=ubuntu-14.04-desktop-amd64.iso of=/dev/usbdrive") e riavvio. Rientro nel menu uefi bios e forzo il boot sul dispositivo:
Uefi - Lexar usb drive (è il nome della chiavetta usb).
Avendo abilitato il csm trovo anche la voce Lexar usb drive senza uefi, ma non è questo che devo avviare.

lexar2

Ora, se tutto va bene, dovrebbe partire ubuntu, gli dico "Try Ubuntu without install" e poi, una volta avviato lo installo.

Verifico che il disco /dev/sda abbia uno tavola di partizioni di tipo GPT

Questo lo schema di partizionamento che mi trova l'installer

initial_part_ubuntu

Elimino (premendo su -) /dev/sda5, che corrisponde a windows d: dati.

Creo, nello spazio vuoto creatosi, lo schema di partizioni che voglio, per esempio
/boot -> /dev/sda5 500MB
/ -> /dev/sda6 -15GB
swap -> /dev/sda7 - 16GB
/home -> /dev/sda9 236GB

Dico di installare il boot loader in /dev/sda2 che è la partizione già presente di tipo UEFI di windows

Effettuo normalemente il resto dell'installazione.

Dopo il classico reboot la situazione in cui mi trovo è la seguente:

La cosa interessante sono le 2 partizioni 5 e 2 che sono

final_part_ubuntu

final_part_win

 

Cerco ora di capire come funziona il boot in questo momento.

Quando il sistema si avvia il boot manager del uefi-bios punta alla partizione flaggata uefi del sistema  (sda2) che viene utilizzata sia da windows che da linux.
Da qui mi permette di scegliere tra queste 2 boot options, che corrispondono ai 2 boot manager di windows (bootmgfw) e di ubuntu (grub2). Sono sostanzialmente i 2 file .efi presenti all'interno della partizione sda2,
bootmgfw.efi -> bootmanager di windows
grubx64.efi -> grub2 (oppure shimx64.efi che serve per il secure boot e  poi linka grubx64.efi)

boot_options

---Se scelgo la "Boot Option #1, ubuntu (P1 nome_hd etc)" verrà fatto partire grub2-efi, ovvero un'altro boot manager.
All'interno di grub2 posso far partire
- ubuntu 14.04 puntando al kernel (vmlinuz-version.efi.signed),initramfs etc
- Windows8.1 in chainload andando a puntare  "chainloader /EFI/Microsoft/Boot/bootmgfw.efi" , ovvero il boot manager di windows.

---Se scelgo "Boot Option #2, Windows Boot Manager" verrà fatto partire il boot manager di windows (bootmgfw.efi) che, di default, fa partire solo windows.
E' possibile però configurarlo per  far si che parta grub2 e da lì selezionare ubuntu o  windows. Per far questo bisogna opportunamente utilizzare il comando bcdedit, ma io preferisco non toccare il WindowsBootManager. (*)

Questo l'output del comando bcedit che ci conferma la posizione per win8.1 del boot manager e del boot loader

 

Da ubuntu i file .efi si trovano in sda2, montata in /boot/efi:

N.B: In questo caso ho 3 bootmanager di cui 2 sostanzialmente equivalenti, quello Microsoft e quello Asus: l'unica differenza è che se uso quello asus la schermata di partenza di windows avrà il logo asus, altrimenti avrà il classico logo windows.

Come già precedentemente notato, sia windows che ubuntu utilizzano un proprio boot manager uefi installato a valle del boot manager presente nell'uefi-bios.

(*) Il comando che si suggerisce di usare è

(shimx64.efi nel caso si voglia mantenere il secure boot, altrimenti è equivalente a grubx64.efi).

Questo comando va a sostituire nel menù del Windows Boot Manager il path che in origine sarebbe \EFI\Microsoft\Boot\bootmgfw.efi nel path che punta a shimx64.efi.
Il boot manager uefi-bios legge  le descrizioni dove trova scritto
"description Windows Boot Manager"
che però, dopo aver dato il comando di cui sopra, fa partire grub2.

In sostanza non si sta utilizzando il windows boot manager per far partire ubuntu aggiungendo una voce di menù ma si sta rimpiazzando il windows boot manager (nella sostanza, perchè poi nella forma si chiama sempre "Windows Boot Manager" ) con grub2.

Non credo sia possibile invece aggiungere una voce al Windows Boot Manager per far partire direttamente il kernel linux, cioè, una cosa del genere non l'ho mai vista e sicuramente NON FUNZIONA

 

Print Friendly, PDF & Email