Quando su parla di UEFI si parla di nuovi PC e si parla di Windows 8, metafora per molti di "difficile metterci linux"



Falso, non è difficile ma solo diverso.

Prima di iniziare tantovale specificare un paio di cosette rassicuranti:
  • Linux, assieme a tutto il resto del mondo dei sistemi operativi a parte quelli della famiglia Windows supporta UEFI fin da quando questo standard è nato, cioè nel tardo 2002.
  • SecureBoot non è un male, Android lo usa da prima che Windows 8 fosse pensato, e con Android anche linux può farlo.

LE ISTRUZIONI QUA RIPORTATE VALGONO SOLO PER LE VERSIONI A 64 BIT !



Veniamo alla sostanza, cercheremo di spiegare step by step come lavorare in questo ambiente, prima però bisogna scremare le varie distribuzioni  per capire fino a che livello possiamo arrivare.

Parliamo di secureboot per primo :
Se siamo nuovi utenti ed abbiamo scelto Ubuntu e derivate (ufficiali), Suse o Fedora secureboot può vivere così come è, non è necessario ne raccomandabile disattivarlo.

No, non esattamente !


Per gli utenti avanzati che preferiscono distribuzioni diverse: niente paura, la parola magica è, anzi sono, shim e preloader, uno è di Red Hat e l'altro è direttamente giunto a noi dalla Linux Foundation (non mi dilungherò su questi 2, spero che i temerari che vogliono arch/slackware/gentoo e secureboot  siano abbastanza autonomi da sapere dove metter le mani)
LINKS utili :



Media di installazione, DVD/CD ed USB


Il media di installazione gioca un ruolo importante, la via più immediata e semplice è il cd/dvd, masterizziamo la iso col nostro tool preferito ( brasero, k3b, xfburn da linux, cdburnerXP, nero e altri da windows per citarne alcuni) ed avremo un media si installazione uefi-compatibile.

Per chi vuole osare la USB invece le procedure sono diverse, un media generico (ibrido uefi e bios)  è preparabile con "dd "

in un terminale  scrivete

sudo dd if=/path/to/iso of=/path/to/usb bs=4M 

un media solo uefi è  diverso, gli step sono
  1. creare uno schema delle partizioni gpt sulla chiavetta 
  2. formattare la chiavetta in fat32
  3. montare la iso del vostro os
  4. copiare con drag&drop il contenuto della iso nella chiavetta
per la tabella gpt da windows potete usare la versione free di questo tool:
http://www.partition-tool.com/landing/home-download.htm

In linux potete usare gparted, cancellate le partizioni sulla chiavetta e nel menù "dispositivo"  scegliete "crea tabella partizioni", dal menù a tendina scegliete gpt, confermate e create una partizione fat32

Tools vari come unetbootin non funzionano su uefi!


Dual boot windows 8 - Linux 

Se avete un pc con Windows 8/8.1 avrete notato che questo rifiuta di partire da cd/dvd/chiavette e non c'è modo di entrare nel bios.. apparentemente.

Acer è cosi gentile da fornirci una procedura  in video:


la voce che ci interessa è "seleziona un dispositivo" ( o "use a device" in inglese ), allo step successivo  scegliamo usb o cd/dvd a seconda del vostro media.


Per chi non avesse scelto una distro con supporto a secureboot e non vuole usare preloader o shim invece bisogna chiedere il riavvio al bios e da li disabilitare secureboot prima di riavviare e ripetere la procedura per selezionare il media di installazione.



Il pc si riavvierà e la nostra distribuzione partirà normalmente, vedrà Windows 8 e sarà possibile installarla in dualboot o da sola come si è sempre fatto.

Raccomando solo di evitare il partizionamento manuale se possibile, affidandosi piuttosto a quello automatico in caso di dual boot

Per chi volesse addentrarsi nel partizionamento manuale l'argomento sarà trattato più avanti ed in generale.


Linux come unico OS 

La procedura per chi parte da un pc con 8 preinstallato è la stessa, tranne che la scelta di partizionamento.

Se volete un partizionamento manuale avanzato ricordatevi di creare una partizione da almeno 513 MB (si, 513, limitazioni tecniche di fat32!) e scegliere come tipo di partizione "efi system partition" o qualcosa di simile (le distro adottano nomi diversi  per questa partizione) e se necessario specificare il mountpoint (se non viene richiesto nulla/non trovate tra i mountpoit qualcosa che rimanda a "EFI"  vivete sereni, ci penserà l'installer)


Parentesi per distro "hardned"
Se il vostro cuore batte per distribuzioni più complesse (quello che scrivo è valido su arch  e su gentoo a patto di utilizzare lo stesso nome per il kernel) avete una possibilità in più, scegliere come avviarle.

Uefi avvia un binario, che sia un kernel o un bootloader a lui non cambia niente.

Detto questo, perchè avere qualcosa in più, che non vi serve a nulla ( e qua  nella testa di chi usa arch o gentoo ed è votato al minimalismo  avrà fatto scattare una molla !) o rallenta il boot se posso usare uefi per lanciare il kernel?

la procedura di installazione è grossomodo la stessa, ecco cosa serve :

  1. tabella delle partizioni gpt 
  2. una partizione extra che sarà la efi system partition ( cambiate id , se usate gdisk sarà ef00, controllate comunque nella lista quello giusto ) 
  3. formattate la partizione in fat32 e montatela su boot 
l'installazione procede come al solito, però non vi servirà un bootloader ma vi basterà efibootmgr.

Uefibootmgr è un tool userspace per lavorare sulle variabili uefi , vi basterà un comando  e il gioco sarà fatto :
 efibootmgr -d /dev/sdX -p Y -c -L "Nome-boot-entry" -l /path-to-kernel -u "root=/dev/sdxy rw kernel-options initrd=/path-to-initrd"

/dev/sdx= sarà il disco dove risiede la efi system partition
Y= il numero della partizione ( il conto comincia da 1, quindi la prima partizione sarà 1, la seconda 2 e così' via)
root=/dev/sdxy = sarà la vostra root.

Così facendo istruirete il firmware  su cosa e come caricarlo, se vi servono opzioni del kernel rimpiazzate kernel options con cio che vi occorre .