Home
» PC Tips
»
Risolvere il problema "Nessun dispositivo di avvio trovato" dopo l'installazione di Debian su UEFI
Risolvere il problema "Nessun dispositivo di avvio trovato" dopo l'installazione di Debian su UEFI
Quando un PC visualizza il messaggio "Nessun dispositivo di avvio trovato" subito dopo l'installazione di Debian, i file potrebbero essere ancora intatti. Il firmware potrebbe avviarsi in modalità errata, la partizione di sistema EFI (ESP) potrebbe non essere montata nella posizione prevista da GRUB, oppure il firmware potrebbe aver perso o declassato la voce di avvio UEFI di Debian. Esegui questi controlli in ordine prima di modificare le partizioni.
Questa guida presuppone un tipico PC x86 a 64 bit con UEFI e Debian con GRUB. I comandi che specificano un disco o una partizione sono solo esempi: identifica i tuoi dispositivi con lsblk -f. Non formattare la partizione ESP né reinstallare Debian come prima soluzione.
1. Verificare che il computer stia tentando di avviarsi in modalità UEFI.
Il firmware UEFI legge un programma EFI da una memoria ESP formattata in FAT e può utilizzare una voce di avvio salvata nella NVRAM per individuarlo. L'avvio tramite BIOS/CSM legacy segue un percorso diverso. Pertanto, un'unità USB di installazione avviata in modalità legacy può impostare un percorso di avvio che non corrisponde alla configurazione UEFI del computer installato.
Utilizza il menu di avvio temporaneo per testare la voce Debian e, all'avvio del supporto di ripristino, scegli la voce del programma di installazione contrassegnata esplicitamente come UEFI.
All'avvio del computer, apri il menu di avvio temporaneo o il firmware setup. Seleziona innanzitutto la voce "Debian" , se presente. Se il sistema si avvia correttamente, apri il firmware setup e sposta Debian prima del disco interno o di altri sistemi operativi nell'ordine di avvio. I nomi dei menu variano a seconda del produttore, quindi consulta le istruzioni del produttore del computer per individuare il tasto di avvio e le etichette del menu corretti.
Se hai bisogno di un supporto di ripristino, seleziona l'opzione USB che inizia con "UEFI". Una volta avviato Debian Live o la shell di ripristino dell'installatore, controlla la sua modalità:
test -d /sys/firmware/efi && echo "Booted in UEFI mode" || echo "Booted in Legacy mode"
Se il risultato indica Legacy, riavviare e scegliere la voce UEFI USB. Strumenti come efibootmgrnon possono gestire le variabili del firmware da un ambiente avviato in modalità Legacy. Se non viene visualizzata alcuna opzione UEFI USB, verificare che l'avvio UEFI sia abilitato nel firmware; evitare di modificare le impostazioni di Secure Boot o del controller di archiviazione a meno che non si conoscano le conseguenze per l'installazione esistente.
2. Identificare il sistema installato e la relativa partizione di sistema EFI
Dall'ambiente live avviato tramite UEFI, ispeziona i dispositivi e i filesystem:
lsblk -f
Cerca il filesystem root di Debian, spesso ext4o btrfs, e una piccola partizione FAT32 con il tipo GPT "EFI System". L'ESP potrebbe essere condiviso con Windows; questo è normale. Le etichette di esempio /dev/sda1e /dev/sda2sotto sono segnaposto, non predefinite. Le unità NVMe usano comunemente nomi come /dev/nvme0n1p1.
Utilizza le informazioni sul filesystem e sulle partizioni fornite da lsblk per identificare la partizione radice ESP e Debian esistenti; non fare affidamento sui nomi dei dispositivi di esempio presenti nell'illustrazione.
Se devi solo ispezionare la partizione root, montala prima in sola lettura oppure, dopo aver identificato la partizione corretta, montala normalmente per la riparazione. Se la tua installazione utilizza una /bootpartizione separata, montala /mnt/bootprima di montare la ESP. Non creare o formattare una ESP sostitutiva solo perché non è indicato nell'elenco.
Per una configurazione comune con root attivo /dev/sda2ed ESP attivo /dev/sda1, un mount di ripristino si presenta così:
mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
cat /mnt/etc/fstab
Confronta l'UUID dell'ESP riportato con lsblk -fla voce /boot/efiin /mnt/etc/fstab. Se differisce, interrompi e conferma quale partizione appartiene a questa installazione Debian. Alcuni sistemi montano l'ESP in /booto utilizzano una configurazione diversa; riproduci la configurazione del sistema installato invece di utilizzare ciecamente il punto di montaggio di esempio.
3. Riparare GRUB da un ambiente di ripristino UEFI
Una volta che la directory principale, eventuali directory separate /boote l'ESP sono montati nelle posizioni previste sotto /mnt, collega le directory di sistema in esecuzione e avvia l'installazione:
for i in /dev /dev/pts /proc /sys /run; do mount --bind "$i" "/mnt$i"; done
chroot /mnt
All'interno del chroot, verifica che /boot/efisia la ESP e che il sistema installato sia quello che intendi riparare. Per un'installazione standard di Debian amd64 GRUB con Secure Boot disabilitato, reinstalla il caricatore EFI e ricostruisci il menu:
Eseguire i comandi di riparazione solo dopo aver montato la partizione root e la partizione ESP di Debian corrette; i nomi delle partizioni visualizzati sono esempi e non rappresentano una macchina testata.
Il --targetvalore sopra indicato si riferisce ai PC amd64. I sistemi Debian ARM64 utilizzano un target diverso. La pagina man ufficiale di GRUB definisce --efi-directorycome root ESP e documenta le opzioni di avvio protetto UEFI. Se l'avvio protetto è abilitato, continuare a utilizzare la catena di avvio firmata di Debian: non forzare un loader non firmato sull'ESP. I pacchetti GRUB e shim firmati di Debian forniscono il percorso appropriato; seguire la documentazione di avvio protetto di Debian per la propria versione e architettura.
Se grub-installviene segnalato che le variabili EFI non sono disponibili, verificare nuovamente che la chiavetta USB live sia stata avviata in modalità UEFI e che /sys/firmware/efila relativa voce esista. Se le variabili del firmware rimangono non disponibili, potrebbe essere possibile installare il loader sulla ESP, ma non registrare la relativa voce nella NVRAM da questa sessione; utilizzare l'opzione "Avvia da file EFI" del firmware oppure ripetere la riparazione da un ambiente UEFI correttamente avviato. Non considerare un avviso come conferma dell'avvenuta creazione della voce del firmware.
4. Verificare la voce del firmware Debian e l'ordine di avvio
Uscite dall'ambiente chroot, quindi esaminate le variabili di avvio UEFI:
exit
efibootmgr -v
Cercare la voce Debian e annotarla BootOrder. Se Debian è presente nell'elenco ma un altro dispositivo appare prima, utilizzare la configurazione del firmware per impostare Debian come prima opzione. Questo è spesso più semplice e sicuro rispetto a riscrivere l'intero ordine di avvio tramite un comando. La efibootmgrpagina man documenta come vengono denominate le voci e come BootOrderil firmware determina quale voce attiva tenta di avviare per prima.
Dopo la riparazione, verificare che la voce relativa a Debian sia presente e compaia prima delle altre opzioni di avvio nell'ordine di avvio del firmware.
Se la voce relativa a Debian è mancante ma l'ESP contiene EFI/debian, utilizzare il file manager del firmware, se disponibile, per selezionare il caricatore EFI di Debian. Con Secure Boot abilitato, questo corrisponde normalmente al file shim firmato, ad esempio EFI/debian/shimx64.efisu amd64; con Secure Boot disabilitato, potrebbe essere disponibile il file EFI di GRUB. I nomi esatti dei file variano a seconda dell'architettura e dello stato dei pacchetti. Se il firmware non offre un file manager, eseguire nuovamente la riparazione di GRUB con accesso alla NVRAM disponibile.
Alcuni aggiornamenti del firmware o ripristini delle impostazioni rimuovono le voci di Linux e alcune implementazioni del firmware non mantengono le voci appena create. La documentazione UEFI di Debian descrive anche un percorso di fallback per i supporti rimovibili, ma questo dovrebbe essere una soluzione di compatibilità deliberata, non un motivo per copiare i file EFI sovrascrivendo quelli esistenti senza controllarli.
5. Abbina il sintomo alla soluzione più probabile
Debian inizia dal menu "da eseguire una sola volta": correggere l'ordine di avvio nel firmware.
La chiavetta USB UEFI funziona, ma Debian non è presente: verifica il mount della ESP e reinstalla il loader EFI corretto.
efibootmgrImpossibile accedere alle variabili: riavviare il supporto di ripristino in modalità UEFI.
Debian viene visualizzato ma ritorna al firmware: verificare la compatibilità con Secure Boot, il percorso del loader e se l'ESP appartiene a questa installazione.
Esistono diverse installazioni Linux: identifica quale coppia root ed ESP appartiene alla stessa prima di eseguire grub-install.
Debian 13 (Trixie) ha introdotto un boot systemd opzionale con configurazione shim documentata da Debian. Se hai installato deliberatamente questo boot manager al posto di GRUB, segui le istruzioni di ripristino di systemd-boot corrispondenti; l'esecuzione dei comandi di riparazione di GRUB non ripristina le voci di systemd-boot. Per un tipico sistema Debian con GRUB selezionato dal programma di installazione, i controlli sopra descritti rimangono il percorso corretto.
6. Riavvia e verifica
Lascia il chroot, smonta i filesystem in ordine inverso, rimuovi la chiavetta USB di ripristino e riavvia. Se lo smontaggio segnala che un target è occupato, chiudi le shell che utilizzano quel mount e riprova invece di forzare lo spegnimento mentre i filesystem sono attivi. Verifica che il firmware avvii Debian senza la chiavetta USB collegata. Quindi controlla che il kernel e l'ambiente desktop previsti si carichino e che un secondo riavvio funzioni ancora. Se fallisce di nuovo, annota il messaggio esatto del firmware, l'output di lsblk -fe se efibootmgr -vmostra una voce Debian; questi dettagli distinguono una voce mancante da un problema del loader o del filesystem.