Alcune operazioni, come ad esempio aggiornare un firmware, non possono essere eseguite all’interno del sistema operativo. Visto che queste operazioni necessitano di accedere in modo diretto all’hardware è necessario eseguirle in un ambiente capace di fornire un tale livello di accesso. Questo ambiente consiste nella shell EFI.

Cos’è la shell EFI?

UEFI fornisce un ambiente shell, che può essere usato per eseguire diverse operazioni, tra cui:

  • Ottenere informazioni sulla macchina
  • Partizionare dischi
  • Eseguire applicazioni EFI
  • Eseguire bootloader (ad esempio GRUB)

Alcune schede madri hanno una shell EFI incorporata nel firmware, accessibile all’avvio tramite una particolare combinazione di tasti. Altre schede, invece, non dispongono di questa opzione. In questo secondo caso è necessario preparare un supporto esterno (ad es. una chiavetta USB) contenente una shell EFI avviabile.

Come creare un supporto esterno dotato di shell EFI

Per cominciare, sarà necessario disporre di una chiavetta USB e di una connessione internet. I passi da seguire sono:

  • Formattare la chiavetta con FAT32
  • Creare nella chiavetta le cartelle:
    • /EFI/BOOT
  • Ottenere una shell EFI. In questa guida userò la shell fornita dal progetto TianoCore EDK II:
    • Download per sistemi a 64-bit: link
    • Download per sistemi a 32-bit: link
  • Scaricare l’opportuno file EFI e posizionarlo all’interno della cartella EFI della chiavetta
  • Rinominare il file EFI:
    • Per sistemi a 64-bit: BOOTX64.EFI
    • Per sistemi a 32-bit: BOOTIA32.EFI

Per avviare il vostro computer in una shell EFI, basterà semplicemente selezionare la chiavetta come opzione di avvio. Siccome i binari forniti dal progetto TianoCore non sono firmati, per usare la vostra chiavetta sarà necessario disabilitare temporaneamente Secure Boot.

Se non riuscite ad avviare il computer in una shell è possibile che il vostro firmware implementi una versione meno recente della specifica UEFI. In tal caso dovrete usare una versione più vecchia dell’eseguibile TianoCore (link).