Dopo aver eliminato Windows dal mio ThinkPad e ridimensionato la partizione di Debian per occupare tutto lo spazio, ho controllato che il sistema partisse regolarmente — e funzionava tutto. Ma il menu di GRUB restava visibile per circa 3 secondi prima dell’avvio automatico, e lì dentro c’era ancora una voce per Windows: un sistema che ormai non esisteva più su disco. Una cosa che stonava, visto che avevo appena passato tempo a ripulire tutto il resto.
Il problema è che rimuovere un sistema operativo dal disco non basta a farlo sparire dal firmware: UEFI conserva le proprie voci di boot in una memoria persistente separata (la NVRAM), e queste voci non si aggiornano da sole solo perché la partizione a cui puntavano non esiste più. In più, spesso restano anche dei file “orfani” sulla partizione EFI di sistema. Ecco come ho ripulito entrambe le cose.
Questa guida fa parte del percorso completo su Debian 13 Trixie su ThinkPad.
Due posti diversi dove restano tracce
È importante distinguerli, perché la pulizia richiede due passaggi separati:
- Le voci nella NVRAM UEFI — gestite dal firmware, visibili e modificabili con
efibootmgr. Sono quelle che, ad esempio, vedi nel boot menu se premi F12 all’avvio. - I file residui sulla partizione EFI (
/boot/efi/EFI/) — le cartelle vere e proprie con i bootloader dei vari sistemi operativi installati nel tempo. Cancellare una voce daefibootmgrnon cancella automaticamente questi file, e viceversa.
Nel mio caso avevo entrambe le cose da ripulire: le voci per Windows e per Fedora (una distro che avevo usato sullo stesso ThinkPad prima di passare a Debian) erano ancora presenti sia in NVRAM che come cartelle sulla partizione EFI.
Passo 1: elenca le voci di boot attuali
efibootmgr -v
Il flag -v (verbose) è importante: senza, vedi solo i nomi delle voci; con -v vedi anche il percorso del file .efi a cui ogni voce punta, che è l’informazione che ti serve per capire se una voce è ancora valida o orfana.
L’output è simile a questo:
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002,0003
Boot0001* debian HD(1,GPT,...)/File(\EFI\debian\grubx64.efi)
Boot0002* Windows Boot Manager HD(1,GPT,...)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0003* Fedora HD(1,GPT,...)/File(\EFI\fedora\shimx64.efi)
Passo 2: identifica le voci orfane
Una voce è orfana quando punta a un sistema operativo che hai già rimosso dal disco. Nel mio caso era semplice: avevo solo Debian installato, quindi le voci Windows Boot Manager e Fedora erano chiaramente da eliminare, mentre la voce debian andava tenuta.
Il numero che identifica ogni voce è quello dopo “Boot” nel nome (es. Boot0002 per Windows Boot Manager) — è questo il valore da passare al comando di rimozione, senza gli zeri iniziali.
Passo 3: rimuovi le voci orfane
sudo efibootmgr -b 0002 -B
-b(bootnum) seleziona la voce su cui operare, indicando il suo numero-B(delete-bootnum) la elimina effettivamente
Ripeti per ogni voce da rimuovere — nel mio caso l’ho lanciato due volte, una per Windows Boot Manager e una per Fedora.
Un consiglio pratico: prima di premere Invio su ogni comando, ricontrolla il numero rispetto all’output di efibootmgr -v che hai appena letto. La tensione nel farlo c’è sempre, giustamente — cancellare la voce sbagliata (magari quella del tuo sistema attualmente avviato) può renderti più complicato il prossimo riavvio. Io ho sempre riletto due volte il numero prima di confermare, ed è un’abitudine che consiglio a chiunque faccia questa pulizia per la prima volta.
Passo 4: rimuovi i file residui dalla partizione EFI
Rimuovere la voce da efibootmgr non cancella i file del vecchio bootloader rimasti sulla partizione EFI. Guarda cosa c’è ancora lì:
ls /boot/efi/EFI/
Vedrai probabilmente cartelle come Microsoft, fedora, insieme a quella del tuo sistema attuale (nel mio caso debian) e talvolta una cartella BOOT generica. Elimina solo le cartelle dei sistemi che non esistono più:
sudo rm -rf /boot/efi/EFI/Microsoft
sudo rm -rf /boot/efi/EFI/fedora
Attenzione: non toccare la cartella del sistema che stai usando ora (nel mio caso debian), né la cartella BOOT se presente — spesso contiene il bootloader di fallback usato da alcuni firmware quando le voci NVRAM non sono disponibili.
Passo 5: verifica il risultato
Rilancia il comando di elenco per confermare che sia rimasto solo quello che ti serve:
efibootmgr -v
E controlla anche la cartella EFI:
ls /boot/efi/EFI/
Nel mio caso, dopo questi passaggi, sia efibootmgr che la cartella EFI mostravano solo Debian — pulito.
Un’ultima verifica: il menu di GRUB
Se dopo aver pulito le voci UEFI il menu di GRUB mostra ancora un sistema operativo che non esiste più, il problema è diverso: GRUB genera il proprio menu leggendo /boot/grub/grub.cfg, che può contenere voci aggiunte in automatico da os-prober durante scansioni precedenti del disco. Per rigenerarlo pulito:
sudo update-grub
Questo comando ricostruisce grub.cfg da zero, scansionando i sistemi realmente presenti sul disco in quel momento — quindi le voci per sistemi già rimossi non dovrebbero più comparire.
Conclusione
La pulizia delle voci EFI orfane è un’operazione a basso rischio se procedi con calma e ricontrolli ogni numero prima di confermare, ma tocca comunque la configurazione di avvio del PC — motivo più che sufficiente per non avere fretta. Il punto da ricordare è che ci sono due luoghi distinti da ripulire (le voci NVRAM via efibootmgr e i file sulla partizione EFI) e che sono indipendenti tra loro: cancellare l’uno non cancella automaticamente l’altro.
Se stai facendo pulizia dopo aver eliminato un sistema operativo dal tuo ThinkPad (o notebook equivalente), questa guida si aggiunge bene alle altre che ho scritto per lo stesso portatile: da Windows 11 in una VM con GNOME Boxes al boot silenzioso con GRUB e Plymouth.
Articoli correlati:


