- L'identificazione corretta delle partizioni e dei dischi consente di reinstallare GRUB da una LiveUSB senza dover reinstallare il sistema.
- Strumenti come Boot-Repair, Syslinux o LILO offrono metodi alternativi per ripristinare l'MBR e il boot manager.
- BCDBoot e bootrec consentono di riparare Windows Boot Manager e l'archivio BCD in ambienti multi-Windows.
- La combinazione delle utilità di Linux e Windows semplifica il ripristino sicuro di qualsiasi sistema dual boot danneggiato.

Quando si configura un sistema dual-boot con Windows e una distribuzione Linux (Ubuntu, Arch, Debian, ecc.), il boot manager diventa un componente cruciale. Determina quale sistema operativo si avvia e in che modo. Il problema è che un semplice aggiornamento di Windows, una modifica della partizione o una reinstallazione possono corrompere GRUB o il Boot Manager di Windows , impedendo al computer di avviarsi correttamente.
In queste situazioni, è frequente riscontrare sintomi come schermate di errore all'avvio, la comparsa della modalità di ripristino di GRUB , l'avvio di Windows ignorando Linux o, al contrario, la scomparsa di Windows dal menu. La buona notizia è che, con gli strumenti giusti, è possibile riparare il boot loader (GRUB o Windows Boot Manager) praticamente in qualsiasi scenario , sia in sistemi dual-boot Windows/Linux che in configurazioni con più versioni di Windows.
Quali sono le cause più comuni di malfunzionamento di GRUB o di Windows Boot Manager in un sistema dual-boot?
Prima di tentare qualsiasi riparazione, è utile capire perché il motorino di avviamento non funziona correttamente. Questo vi aiuterà a scegliere lo strumento giusto per ogni situazione e a evitare di incorrere nello stesso problema più volte.
Uno dei motivi più comuni è che Windows sovrascrive la partizione MBR o EFI quando viene installato dopo Linux o dopo un aggiornamento importante. Windows presume di essere l'unico sistema operativo sul computer e riscrive il settore di avvio, quindi GRUB scompare e si avvia solo Windows.
Un altro scenario molto comune si verifica quando le partizioni vengono ridimensionate o spostate utilizzando strumenti di partizionamento. Se si modifica la partizione in cui è installato GRUB o la tabella delle partizioni, il boot manager può facilmente perdere il riferimento alla directory root del sistema Linux o al kernel stesso , con conseguente visualizzazione di messaggi come "Errore del sistema di avvio" o mancata visualizzazione del menu di selezione del sistema operativo.
Il boot manager può anche corrompersi dopo un aggiornamento di sistema . Sebbene non sia l'evento più comune, un aggiornamento del kernel, un nuovo pacchetto GRUB o modifiche al firmware UEFI possono lasciare il menu di avvio configurato in modo errato, con conseguente visualizzazione diretta della console di ripristino (il famigerato prompt grub rescue> ).
Sui computer in cui coesistono diverse versioni di Windows (ad esempio, Windows 10 e Windows 11 su dischi separati o in partizioni diverse), a volte il problema non è GRUB, ma l' archivio BCD di Windows stesso , che può essere configurato in modo errato e impedire la visualizzazione di uno dei sistemi nel menu di avvio di Windows Boot Manager.
Avviare da un supporto Live di Linux per riparare GRUB
Quando il boot manager si blocca e il sistema non si avvia normalmente, il modo più flessibile per procedere è utilizzare un LiveCD o una LiveUSB di una distribuzione Linux (Ubuntu è solitamente l'opzione più comoda) per "accedere" al sistema installato e reinstallare GRUB da lì.
Il primo passo consiste nel creare un supporto di avvio. È necessario scaricare un'immagine ISO di una distribuzione con GRUB2 (Ubuntu, Debian, Linux Mint, ecc.) che corrisponda all'architettura del sistema danneggiato: amd64 se il sistema è a 64 bit o i386 se è a 32 bit . Questa corrispondenza è importante perché in seguito verrà utilizzato chroot e, se le architetture non coincidono, potrebbero verificarsi errori durante l'esecuzione dei binari di GRUB.
Una volta ottenuto il file ISO, masterizzalo su un'unità USB avviabile . Puoi utilizzare strumenti come Rufus, balenaEtcher o qualsiasi altro programma con cui ti trovi a tuo agio. Inserisci l'unità USB nel computer con il sistema di avvio danneggiato e, dal BIOS o dall'UEFI, scegli di avviare il sistema dall'unità USB.
Il primo passo consiste nel creare un supporto di avvio. È necessario scaricare un'immagine ISO di una distribuzione con GRUB2 (Ubuntu, Debian, Linux Mint, ecc.) che corrisponda all'architettura del sistema danneggiato: amd64 se il sistema è a 64 bit o i386 se è a 32 bit . Questa corrispondenza è importante perché in seguito verrà utilizzato chroot e, se le architetture non coincidono, potrebbero verificarsi errori durante l'esecuzione dei binari di GRUB.
Quando si avvia il sistema dall'unità USB, il menu di distribuzione offrirà un'opzione come "Prova Ubuntu ". Questa opzione carica un sistema completo in memoria senza accedere al disco rigido, ed è da lì che è possibile aprire un terminale ed eseguire i comandi necessari per ripristinare GRUB.
Sul desktop Live, è sufficiente aprire il menu delle applicazioni e cercare "Terminale" . Da qui, l'intera procedura viene eseguita dalla riga di comando, ma se si seguono attentamente i passaggi, è piuttosto semplice.
Identifica la partizione root, la partizione /boot e il disco
Per reinstallare il boot manager, la prima cosa da fare è sapere su quali partizioni è installato Linux e qual è il nome del disco in cui risiede la partizione MBR o EFI (ad esempio, /dev/sda ).
Dal terminale del sistema Live, è possibile utilizzare il comando `fdisk -l` con privilegi di amministratore: `sudo fdisk -l` . Questo comando elencherà tutte le unità e le partizioni connesse, mostrando il tipo di file system, la dimensione e l'etichetta (se presente).
Tra tutti i risultati, è necessario individuare la partizione che contiene il sistema root di Linux . Di solito si troverà qualcosa come /dev/sda2 o simile, con dimensioni ragionevoli e un file system Linux (ext4 o equivalente). Se è stata creata una partizione /boot separata , sarà necessario identificarla; in genere si tratta di una piccola partizione contenente file come grub, vmlinuz, initrd, System.map , ecc.
Se non sei sicuro, una strategia semplice è quella di montare manualmente le partizioni sospette ed esaminarne il contenuto. Ad esempio, puoi usare `sudo mount /dev/sda2 /mnt` e poi elencare il contenuto con `ls /mnt` . Se vedi directory come `bin`, `boot`, `root`, ecc. , ti trovi nella partizione root. Se monti un'altra partizione e trovi una cartella `grub` insieme ad altri file di avvio, ti trovi nella partizione ` /boot`.
Il nome del disco principale appare anche all'inizio dell'output di fdisk , ad esempio " Disco /dev/sda ". Questo identificatore è fondamentale perché sarà la destinazione finale durante la reinstallazione di GRUB sull'MBR, oppure perché può puntare alla partizione che funge da partizione EFI in un sistema UEFI.
Montaggio delle partizioni e utilizzo di chroot per reinstallare GRUB
Una volta individuate le partizioni di vostro interesse, dovrete montarle all'interno del sistema Live in modo da poter "accedere" all'installazione come se aveste avviato il sistema da lì e non dalla chiavetta USB.
Si inizia montando la partizione root in /mnt con un comando simile a: `sudo mount /dev/sda2 /mnt` (sostituendo /dev/sda2 con la partizione corrispondente al proprio caso). Se si dispone di una partizione /boot separata , la si monta all'interno di tale albero root, ad esempio con `sudo mount /dev/sda7 /mnt/boot`.
Successivamente, è necessario montare alcune directory speciali utilizzando l' opzione `--bind` in modo che l'ambiente chroot possa vedere i dispositivi, i processi e il file system della macchina. Questo viene solitamente fatto con comandi come: `sudo mount -bind /dev /mnt/dev` , `sudo mount -bind /dev/pts /mnt/dev/pts` , `sudo mount -bind /proc /mnt/proc` e `sudo mount -bind /sys /mnt/sys`.
Una volta configurato tutto, è possibile utilizzare chroot per cambiare la directory root del file system con quella del sistema Linux installato. Il comando tipico è `sudo chroot /mnt` . Da quel momento in poi, tutti i comandi eseguiti avranno effetto sul sistema effettivamente installato sul disco , non sull'ambiente Live in esecuzione dall'unità USB.
Il passo successivo consiste nel reinstallare GRUB sul disco corretto. Sui sistemi BIOS/MBR, il metodo usuale è quello di utilizzare un comando come `grub-install --boot-directory=/boot/ --recheck /dev/sda` (sostituendo `/dev/sda` con il disco contenente l'MBR). Questo comando carica il bootloader GRUB nel settore di avvio del disco e garantisce che la configurazione punti ai file corretti.
Una volta reinstallato il boot manager, è consigliabile rigenerare la configurazione di GRUB in modo che rilevi tutti i sistemi operativi disponibili. Questa operazione si esegue con il comando `grub-mkconfig -o /boot/grub/grub.cfg` . GRUB eseguirà quindi la scansione delle partizioni alla ricerca di kernel Linux, installazioni di Windows e altri sistemi, e genererà il menu di avvio.
Al termine, è sufficiente uscire dal chroot con il comando `exit` e riavviare il computer con `sudo reboot` . Rimuovendo l'unità USB avviabile, dovrebbe quindi essere visualizzato il menu GRUB completo , che consentirà di avviare Linux o Windows.
Utilizza Boot-Repair per ripristinare automaticamente GRUB.
Per chi non vuole cimentarsi con tanti comandi manuali, esiste uno strumento molto pratico chiamato Boot-Repair , progettato appositamente per risolvere i problemi di avvio più comuni in Ubuntu e nelle sue derivate.
Boot-Repair è un'utility che può essere installata in un ambiente Ubuntu (sia il sistema operativo stesso che un ambiente Live). La sua funzione principale è quella di reinstallare automaticamente GRUB e ripristinare l'accesso a tutti i sistemi installati: ad esempio, se Windows ha sovrascritto l'MBR, se un aggiornamento ha impedito la visualizzazione del menu di GRUB o se sono state modificate delle partizioni e la configurazione è risultata danneggiata.
Oltre alla riparazione standard, lo strumento offre opzioni avanzate per il backup delle tabelle delle partizioni, il backup dei settori di avvio, la generazione di report dettagliati (Boot-Info) e la regolazione dei parametri di riparazione per un controllo più preciso.
Per utilizzarlo in un ambiente Ubuntu Live, è necessario innanzitutto aggiungere il repository PPA di Boot-Repair con un comando simile a: `sudo add-apt-repository ppa:yannubuntu/boot-repair` . Successivamente, aggiornare i pacchetti con `sudo apt update` e infine installare l'applicazione con `sudo apt install boot-repair` . Se richiesto, confermare il download e l'installazione.
Una volta installata, l'utility può essere avviata dalla barra di ricerca delle applicazioni di Ubuntu digitando "Boot-Repair" . All'avvio, lo strumento solitamente visualizza l' opzione "Riparazione consigliata" , che è la più comoda per la maggior parte degli utenti, in quanto reinstalla GRUB, ne aggiorna la configurazione e corregge gli errori più comuni senza richiedere alcuna configurazione manuale.
Nelle opzioni avanzate è presente una casella di controllo per "Ripristina MBR ". Questa opzione consente di sostituire il segno di avvio corrente del disco con un MBR generico o specifico, il che può essere utile in determinati scenari. Dopo aver selezionato l'opzione appropriata e aver fatto clic su "Applica ", Boot-Repair avvia il processo di riparazione e ne visualizza l'avanzamento fino al completamento. Una volta terminato, di solito indica le modifiche apportate e, dopo un riavvio, il dual boot dovrebbe essere di nuovo operativo.
Altri strumenti di basso livello: Syslinux, MBR e LILO.
In alcuni casi avanzati, soprattutto quando si lavora con configurazioni specifiche, hardware meno recente o file system particolari , può essere utile utilizzare strumenti come Syslinux o LILO per manipolare l'MBR e il processo di avvio in modo più diretto.
Syslinux è una suite di boot loader leggeri per vari scenari: il classico SYSLINUX per i file system FAT di MS-DOS, PXELINUX per l'avvio da rete, ISOLINUX per i CD avviabili ed EXTLINUX per i file system ext2/3/4 o btrfs. Include anche MEMDISK , che consente l'avvio di sistemi operativi meno recenti come DOS da supporti non tradizionali.
Su una distribuzione come Ubuntu, è possibile installarlo con `sudo apt install syslinux` . Una volta installato, è possibile ripristinare l'MBR scrivendo il comando corrispondente nella directory di avvio del disco, ad esempio con `sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda` . In alternativa, è possibile utilizzare altri pacchetti e strumenti, come `sudo apt-get install mbr` seguito da `sudo install-mbr -in -p D -t 0 /dev/sda` , che ripristinano anch'essi un MBR funzionante.
Un'altra opzione classica è LILO (Linux Loader) . Sebbene GRUB2 sia ormai il bootloader predefinito nella maggior parte delle distribuzioni, LILO rimane una soluzione semplice e affidabile per determinati tipi di hardware o configurazioni specifiche in cui GRUB ha difficoltà. In Ubuntu, ad esempio, può essere installato con `sudo apt-get install lilo` ; durante l'installazione, sullo schermo comparirà una richiesta di conferma che è necessario accettare per continuare.
Dopo aver installato LILO, è possibile utilizzarlo per scrivere un nuovo MBR con un comando come `sudo lilo -M /dev/sda mbr` . Questo sostituisce il codice dell'MBR con il codice di LILO, il che può aiutare a ripristinare un avvio funzionante su sistemi in cui il boot manager è danneggiato o incompatibile con l'hardware.
Riparazione di GRUB quando compare la modalità di ripristino in Arch Linux
Nelle distribuzioni come Arch Linux, è relativamente comune imbattersi nella modalità di ripristino GRUB dopo un aggiornamento di Windows, una modifica della configurazione di avvio o una modifica delle partizioni. In questi casi, il computer si avvia, ma al posto del menu GRUB compare un prompt minimalista in cui è possibile eseguire solo pochi comandi.
Da questa modalità, è possibile tentare di avviare manualmente Arch Linux indicando al bootloader la posizione del kernel e della sua configurazione. Un esempio tipico prevede l'impostazione del prefisso root e di GRUB con comandi come ` set root=(hd0,gpt8)` e `set prefix=(hd0,gpt8)/boot/grub` , il caricamento del modulo `normal` con `insmod normal` e infine l'esecuzione di `normal` per puntare al menu di avvio standard.
Questa soluzione temporanea non risolve il problema alla radice. La procedura corretta, una volta avviato Arch, consiste nell'eseguire ` grub-install` sul disco corretto (ad esempio, `sudo grub-install /dev/sda` ) e successivamente `grub-mkconfig` . Tuttavia, questo comando a volte fallisce con messaggi come "impossibile identificare un filesystem in hostdisk" o "impossibile eseguire i controlli di sicurezza sul disco".
Quando ciò accade, la procedura più sicura è avviare il sistema da un supporto Live compatibile (come il programma di installazione di Arch Linux stesso o un Live di un'altra distribuzione), montare le partizioni e utilizzare chroot come descritto in precedenza. Questo garantisce che i dispositivi siano correttamente disponibili, che la tabella delle partizioni venga rilevata correttamente e che GRUB possa essere reinstallato senza problemi . È importante verificare di installare GRUB sull'intero dispositivo disco (ad esempio, /dev/sda) e non su una partizione specifica (ad esempio, /dev/sda6), a meno che non si abbia un motivo specifico per farlo.
Ripristino di Windows Boot Manager e del BCD su sistemi dual-boot
Nelle configurazioni in cui coesistono due versioni di Windows (ad esempio, Windows 10 e Windows 11) o in cui si è verificato un problema solo con l'avvio di Windows in un sistema dual-boot con Linux, potrebbe essere necessario riparare anche il gestore di avvio di Windows e il relativo archivio BCD.
Windows include un'utilità chiamata BCDBoot che può essere utilizzata per creare o ripristinare le voci di avvio per un sistema basato su Windows . È molto utile quando si è installata una seconda versione di Windows su una partizione o un disco diverso e questa non compare nel menu di avvio; oppure quando il menu di avvio è stato cancellato e Windows si avvia solo con un sistema operativo.
La procedura generale prevede l'avvio del PC con il supporto di installazione di Windows (o un'unità di ripristino) e l'accesso alle opzioni di ripristino. Nella schermata di installazione, anziché proseguire con la procedura standard, fare clic su "Ripristina il computer ". Da lì, accedere a "Risoluzione dei problemi" e quindi a "Opzioni avanzate ", dove è possibile selezionare "Prompt dei comandi" o "Ripristino all'avvio ", a seconda delle proprie esigenze.
Se si sceglie il ripristino automatico, l' opzione "Ripristino all'avvio" tenterà automaticamente di correggere gli errori nel gestore di avvio e nella configurazione BCD . In molti casi, si tratta di un metodo rapido per ripristinare il gestore di avvio di Windows senza dover immettere manualmente i comandi.
Se hai bisogno di un maggiore controllo, puoi ricostruire l'archivio BCD dalla riga di comando . Una procedura tipica consiste nel creare prima un backup dell'archivio corrente con un comando come `ren BCD BCD.old` (dopo aver navigato nella cartella appropriata), e poi eseguire `bcdboot D:\Windows` (sostituendo `D:\Windows` con il percorso effettivo dell'installazione di Windows che si desidera aggiungere). Se non sai quale lettera di unità corrisponde a ciascuna partizione, puoi usare `diskpart` e poi `list volume` per visualizzare le lettere assegnate.
È anche possibile specificare la lingua e il volume di avvio utilizzando una sintassi più completa, come ` bcdboot c:\Windows /l en-us /s X: /f ALL` , sostituendo X: con la lettera dell'unità della partizione di avvio (o di un'unità flash in cui si desidera creare il bootloader). Questo riscrive il BCD con voci pulite per la versione di Windows scelta, in modo che al riavvio entrambi i sistemi dovrebbero apparire nel menu di avvio se il resto della configurazione è corretto.
Riparare l'MBR di Windows con bootrec
Nei casi in cui il problema risieda direttamente nell'MBR (Master Boot Record) di un disco utilizzato come unità di avvio in Windows, è possibile utilizzare anche lo strumento bootrec , disponibile negli ambienti di ripristino di Windows.
Il processo inizia solitamente avviando il computer dal supporto di installazione di Windows . Su molti computer Dell, ad esempio, è possibile premere il tasto F12 nella schermata di avvio per aprire il menu di avvio e selezionare la chiavetta USB o il DVD di installazione. Una volta all'interno, come in precedenza, fare clic su "Ripristina il computer " , quindi su "Risoluzione dei problemi ", poi su "Opzioni avanzate" e infine selezionare "Prompt dei comandi ".
Dalla console, è possibile eseguire una serie di comandi bootrec in quest'ordine per riparare l'MBR e l'archivio BCD: prima bootrec /fixmbr , che scrive un MBR pulito compatibile con Windows sul disco; poi bootrec /fixboot , che crea un nuovo settore di avvio nella partizione di sistema; e infine bootrec /rebuildbcd , che cerca installazioni di Windows esistenti e offre la possibilità di aggiungerle all'archivio di avvio.
Una volta che questi comandi funzionano senza errori, si riavvia il computer rimuovendo il supporto di installazione per verificare se Windows si avvia correttamente e, in tal caso, se l'avvio duale con Linux è ancora accessibile tramite GRUB o Boot Manager , a seconda della configurazione del sistema.
Conoscere tutti questi strumenti e procedure (LiveUSB per Linux, chroot e reinstallazione di GRUB, utilizzo di Boot-Repair, Syslinux, LILO, BCDBoot e bootrec) semplifica notevolmente la diagnosi del componente di avvio difettoso in un sistema dual-boot e consente di applicare la soluzione appropriata in ogni caso, evitando reinstallazioni complete del sistema e ripristinando un dual boot stabile tra Windows e la propria distribuzione Linux preferita in pochi semplici passaggi.