Torna al sito principale

Capitolo 6. Qualcosa è andato storto

Sommario

1. Dov'è il desktop?
2. Perché non mi funziona la scheda XYZ?
3. Il kernel sbagliato
4. Ripristinare il ripristino
5. Basta! Rivoglio solo Windows!
6. Windows reinstallato, Linux sparito!

Avvertimento

Capitolo da revisionare: le informazioni in esso potrebbero non essere applicabili alla versione corrente di Fedora.

Può succedere...

Nonostante i passi da gigante fatti da Linux e da tutte le distribuzioni nel riconoscere ed usare tutto l'hardware disponibile, c'è ancora molto da fare. Capita piuttosto spesso di ottenere risultati non proprio entusiasmanti. Vediamo una breve carrellata di situazioni più o meno tragiche, e di possibili strategie per venirne fuori.

1. Dov'è il desktop?

La prima brutta sorpresa che può capitare è di trovarsi davanti ad uno schermo in modo testo che mostra un messaggio di errore (Figura 6.1, «Non si avvia il server X») che avvisa di non poter avviare il server X, cioè l'interfaccia grafica. Possiamo vedere i messaggi di errore, che però ci risulteranno altrettanto incomprensibili, premendo il pulsante Yes. Premendo invece No ci viene chiesto se vogliamo provare a configurare il server a mano (Figura 6.2, «Provare con la configurazione manuale?»), cosa per il quale ci verrà chiesta la password di root. Dopo qualche tempo (al massimo un minuto se il pc è molto lento) dovrebbe apparire l'interfaccia di configurazione (Figura 6.3, «Configurazione scheda video e monitor»).

Figura 6.1. Non si avvia il server X

Non si avvia il server X


Figura 6.2. Provare con la configurazione manuale?

Provare con la configurazione manuale?


Figura 6.3. Configurazione scheda video e monitor

Configurazione scheda video e monitor


Scegliendo il pannello Hardware (Figura 6.4, «Monitor e scheda video rilevate automaticamente»), possiamo cambiare sia il tipo di monitor che il driver della scheda video.

Figura 6.4. Monitor e scheda video rilevate automaticamente

Monitor e scheda video rilevate automaticamente


Per la verità è abbastanza raro che il programma di installazione di Fedora faccia errori in queste scelte. Semmai quello che succede è che sia troppo ottimista, o che l'hardware sia troppo nuovo e non ancora compreso nel database interno.

In questi due casi la strategia è di tipo conservativo: scegliamo delle configurazioni che hanno molta più probabilità di funzionare, cioè di tipo generico. Per la scheda video possiamo scegliere un driver VESA generico (Figura 6.5, «Scheda video VESA generica»), mentre per il monitor possiamo scegliere in base alla risoluzione ed al tipo: se abbiamo un monitor LCD con risoluzione 1024x768 pixel, sceglieremo nella voce Generic LCD display un LCD panel 1024x768 (Figura 6.6, «Un monitor LCD generico»).

Figura 6.5. Scheda video VESA generica

Scheda video VESA generica


Figura 6.6. Un monitor LCD generico

Un monitor LCD generico


In questo modo possiamo essere ragionevolmente sicuri di non eccedere nelle specifiche, e molto probabilmente riusciremo ad avere finalmente visualizzato un desktop grafico, anche se la velocità non sarà entusiasmante.

Rimane da confermare eventualmente la risoluzione e la gamma di colori voluta, poi possiamo premere OK. Siamo informati che la configurazione viene salvata sul file /etc/X11/xorg.conf e che la vecchia configurazione viene archiviata per sicurezza nel file /etc/X11/xorg.conf.backup (Figura 6.7, «Dove sono le configurazioni di X»).

Salvare sempre una copia prima di modificare

Questa è una strategia che consiglio vivamente quando andiamo a pasticciare con un qualsiasi file di configurazione: farne una copia da qualche parte, anche nella stessa directory, usando un nome simile ed un suffisso aggiunto in coda. Ad esempio: resolv.conf lo possiamo salvare in resolv.conf.originale, oppure in resolv.conf.mio, insomma basta che sia significativo per noi.

Se qualcosa va molto male, possiamo sempre rimettere il file originale al suo posto e recuperiamo tutto senza troppa fatica.

Subito dopo viene un tentativo di riavvio del server X (Figura 6.8, «Riproviamo con la nuova configurazione»), e se tutto è andato per il verso giusto dovremmo finalmente vedere il nostro sospirato pannello di login (Figura 4.52, «Il pannello di login di Fedora») dal quale possiamo entrare nel desktop.

Figura 6.7. Dove sono le configurazioni di X

Dove sono le configurazioni di X


Figura 6.8. Riproviamo con la nuova configurazione

Riproviamo con la nuova configurazione


Può succedere anche di peggio. Con dei normali PC di marca mi è capitato che all'avvio si spegnesse del tutto il monitor, come quando il computer va in standby, con il LED di alimentazione che passa dal verde al giallo. In questo caso siamo completamente al buio, ma si può ancora fare qualcosa. Premendo la combinazione di tasti Ctrl-Alt-F1 o Ctrl-Alt-F2 (vanno bene tutti i tasti funzione fino a F6), passiamo alla modalità terminale, che mostra un paio di righe di termini incomprensibili (Figura 6.9, «Il terminale in modo testo»). Al prompt login: digitiamo root, ci viene chiesta la password, quella dell'utente root (quando digitiamo non appare nulla, neanche gli asterischi: è perfettamente normale, dobbiamo digitare la password alla cieca). Siamo nella shell di Linux, da cui possiamo fare veramente di tutto. Per arrivare alla configurazione del video da qui abbiamo due possibilità: la prima è chiamare il comando setup che avvia un menù in modo testo che ci permette di accedere ad alcune utility di configurazione (Figura 6.10, «L'utility Setup»), e quella che sceglieremo è Configurazione di X, che ci porterà esattamente allo stesso programma di configurazione appena visto (Figura 6.3, «Configurazione scheda video e monitor»); la seconda è di impartire direttamente il comando system-config-display, che lancia lo stesso programma.

Se anche con questo sistema il monitor va in standby all'avvio dell'applicazione, o peggio mostra un messaggio che non può visualizzare quel tipo di risoluzione, possiamo tentare con la combinazione di tasti Ctrl-Alt-+ e Ctrl-Alt-- (quelli del tastierino numerico) che servono a cambiare la risoluzione del video, passando fra tutte quelle disponibili: nel caso citato, era la risoluzione a 800x600 pixel a non essere “gradita” al monitor, mentre a 1024x768 funzionava perfettamente. Individuata una risoluzione che viene visualizzata, possiamo configurare il tutto per evirare quella particolare risoluzione.

Figura 6.9. Il terminale in modo testo

Il terminale in modo testo


Figura 6.10. L'utility Setup

L'utility Setup


Una volta riconfigurata la coppia scheda video e monitor, torniamo alla shell, da dove possiamo riavviare il server X con il comando: killall gdm-binary. In pochi secondi dovremmo avere il pannello di login (Figura 4.52, «Il pannello di login di Fedora»).

Come possiamo vedere ci sono varie strategie per uscire dal pantano. Il problema è conoscerle... e non farsi prendere dal panico.

2. Perché non mi funziona la scheda XYZ?

Se abbiamo letto l'articolo Prima di Linux, sappiamo che con hardware particolare o troppo nuovo potremmo avere problemi. Oppure semplicemente dobbiamo aggiungere noi qualcosa. Ovviamente qui le cose si complicano, e non poco. Possiamo dare solo qualche suggerimento utile almeno per reperire informazioni su Internet.

Supponiamo di avere alcune periferiche interne al computer che non funzionano o non compaiono fra quelle riconosciute, come ad esempio una scheda di rete wireless o un lettore di smart card. Come possiamo sapere almeno se c'è una speranza di usarle in qualche modo?

La risposta non è proprio semplice, ma qualcosa possiamo fare: per prima cosa ci occorre identificare in qualche modo le periferiche quale che sia la connessione. Ad oggi una qualsiasi periferica interna al computer può essere connessa o tramite bus interno PCI o tramite USB, sempre tramite un bus interno. In Fedora, ma anche in molte altre distribuzioni Linux, sono disponibili i due comandi lspci e lsusb, che devono essere impartiti tramite l'utente root. Il primo mostra l'elenco delle periferiche connesse al bus PCI, mentre il secondo mostra l'elenco delle periferiche connesse ad un qualsiasi bus USB interno o esterno del computer. Ad esempio su un notebook di nota marca, il comando lspci riporta fra le ultime righe:

# lspci
...	  
02:06.4 Communication controller: Texas Instruments PCIxx12 GemCore based SmartCard controller
08:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5753M Gigabit Ethernet PCI Express (rev 21)
10:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

Ogni riga si legge in questo modo:

  • Il primo gruppo di numeri è l'indirizzo logico del dispositivo, inteso come bus:periferica.funzione. Serve per indicare in modo univoco un particolare dispositivo.

  • La prima parte della descrizione, fino ai due punti, è la categoria funzionale del dispositivo, ossia a cosa serve. Qui abbiamo una porta di comunicazione generica, una interfaccia ethernet ed una generica di rete.

  • L'ultima parte è descrittiva e contiene produttore e modello di periferica. In questo caso siamo abbastanza fortunati, dato che la descrizione è presente e leggibile per tutti e tre i dispositivi.

Per quanto riguarda questo specifico computer, abbiamo un lettore di smart card, una scheda di rete ethernet ed una scheda di rete wireless. Per la scheda di rete non ci sono problemi, viene riconosciuta e configurata automaticamente al momento dell'installazione, ma per le altre due non abbiamo avuto fortuna.

La scheda di rete wireless necessita di un driver non compreso nel kernel attuale. Basta inserire in Google™ i termini intel 3945 linux driver ed il primo link restituito porta proprio alla pagina web del team che sta sviluppando il driver per Linux. Da qui possiamo scaricare tutto il necessario per installare il driver. Per configurare poi il tutto, possiamo fare riferimento a questo articolo, alla sezione Il wireless della guida.

Per quanto riguarda invece il lettore di smart card, ricerche in Internet non hanno dato grandi risultati. Qualche notizia, non molto aggiornata, si può leggere qui e qui, ma in definitiva nessuno ha ancora messo mano allo sviluppo di un driver.

Un brutto segno, per quanto riguarda la presenza di un driver, è anche una eventuale risposta del tipo:

# lspci
...	  
02:01.2 Class abcd: unknown manifacturer unknown device

dove addirittura la categoria del dispositivo è sconosciuta, oltre al produttore ed al modello. In ogni caso, la presenza di tutte e tre le identificazioni non è detto che si traduca automaticamente nella esistenza del driver.

Per le periferiche USB la procedura è molto simile, e si usa il comando lsusb, che restituisce una lista di dispositivi collegati. Ad esempio, sullo stesso computer di prima, il comando restituisce questa lista:

# lsusb
Bus 001 Device 004: ID 03f0:171d Hewlett-Packard 
Bus 001 Device 001: ID 0000:0000  
Bus 005 Device 001: ID 0000:0000  
Bus 003 Device 001: ID 0000:0000  
Bus 004 Device 001: ID 0000:0000  
Bus 002 Device 001: ID 0000:0000  
Bus 002 Device 003: ID 1130:6606 Tenx Technology, Inc. 
Bus 002 Device 002: ID 08ff:2580 AuthenTec, Inc. 

Per avere informazioni più dettagliate sui singoli dispositivi, possiamo usare una variante del comando che permette di chiede più informazioni per un solo dispositivo usando il bus e il numero di device:

# lsusb -v -s 2:2
	  
Bus 002 Device 002: ID 08ff:2580 AuthenTec, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0         8
  idVendor           0x08ff AuthenTec, Inc.
  idProduct          0x2580 
  bcdDevice            6.21
  iManufacturer           0 
  iProduct                1 Fingerprint Sensor
  iSerial                 0 
  bNumConfigurations      1
... seguono molte altre righe

come possiamo vedere le informazioni sono molte di più e ci consentono immediatamente di verificare il tipo di dispositivo, ossia un lettore di impronte digitali.

Una ricerca con i termini authentec linux driver non ha portato molti risultati, tranne un paio che riporto a titolo di curiosità, qui e qui: in sostanza, per ora niente driver utilizzabili, e si sta lavorando per integrare le tecniche di identificazione biometrica con tutto lo strato di autenticazione di Linux. Ci vorrà ancora un po' di tempo.

Per chiudere: abbiamo visto come chiedere maggiori informazioni a Linux stesso sulle nostre periferiche, e come usare queste informazioni per reperire notizie ed eventualmente i driver in Internet. Ovviamente il compito non si esaurisce qui, perché una volta trovato il driver occorre installarlo e farlo funzionare, cosa non banale. Questo tipicamente implica una compilazione (ecco perché è consigliabile installare il supporto allo sviluppo), ed una serie ci modifiche ad alcuni file di configurazione in funzione del tipo di periferica.

Il mio personale consiglio è di attendere gli sviluppi “naturali” della nostra distribuzione. Se il nostro hardware non è particolarmente esotico, ed è sufficientemente diffuso, è molto probabile che venga aggiunto il necessario per il funzionamento in uno degli aggiornamenti successivi. Ovviamente questo vale per tutto l'hardware non necessario per il funzionamento di base. Certamente la non disponibilità di un driver per la nostra scheda video ci lascia a piedi, ma sono casi limitati ad hardware troppo recente per la distribuzione.

3. Il kernel sbagliato

Questo invece è un esempio di un bug in una applicazione compresa nella distribuzione. In particolare è un errore del programma di installazione nel punto in cui dovrebbe rilevare il tipo di processore ed installare il kernel adeguato.

Per via di questo errore, installando Fedora Core 6 su un computer con processore di ultima generazione, invece di installare il kernel compilato ed ottimizzato per l'architettura giusta, indicata con il suffisso i686 nel nome del pacchetto, viene installato il kernel per architettura i586. Questo non pregiudica il funzionamento del computer, tanto che installando su un PC di tipo desktop non me ne sono accorto proprio, ma impedisce l'uso di alcune caratteristiche dei processori di ultima generazione, come ad esempio la variazione di velocità per risparmiare energia, usata in tutti i notebook.

In questo caso siamo dipendenti dal team che lavora alla distribuzione, ma sta anche a noi segnalare il problema nei modi e nei termini dovuti. Sul sito di Fedora c'è una pagina per ogni versione rilasciata dedicata ai problemi noti o più comuni, ed in prima posizione è riportato proprio questo del kernel, insieme alla procedura per correggerlo. Per chi ha difficoltà con l'inglese, ho scritto un breve articolo sul mio blog con la procedura di correzione, se non abbiamo passato i parametri giusti al momento dell'installazione (Sezione 1, «La partenza»), o per qualche motivo non sono stati efficaci.

4. Ripristinare il ripristino

Vediamo ora di affrontare il problema di rimettere a posto la funzione di ripristino, sempre se l'avevamo nel computer prima di installare Linux.

La procedura che segue funziona sui notebook HP Compaq™ di ultima generazione, almeno sulla serie nx7300 e nc6400, su cui l'ho potuta sperimentare personalmente.

Per gli IBM Thinkpad™ c'è una procedura simile sul sito ThinkWiki.

Occorre modificare il file di configurazione di GRUB in questo modo:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,4)
#          kernel /boot/vmlinuz-version ro root=/dev/sda5
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=2
timeout=50
splashimage=(hd0,4)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.19-1.2911.fc6)
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.19-1.2911.fc6 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.19-1.2911.fc6.img
title Fedora Core (2.6.19-1.2895.fc6)
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.19-1.2895.fc6 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.19-1.2895.fc6.img
title Other  questo è per Windows
        rootnoverify (hd0,0)
	makeactive
	chainloader +1
title Ripristino
	rootnoverify (hd0,2)
	makeactive
	chainloader +1

Andiamo a spiegare cosa abbiamo fatto. Per prima cosa quanto diciamo si applica solo alla situazione specifica indicata con un solo disco e presenza della partizione di ripristino in terza posizione nella tabella delle partizioni (vedere Sezione 6, «Il terzo incomodo» e Sezione 2.2, «Un disco, con partizione di ripristino»). Se la situazione è differente potremmo fare danni.

Per sicurezza possiamo controllare la situazione usando in un terminale, da utente root, il comando:

# fdisk -l /dev/sda
	  
Disk /dev/sda: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2103    16892316    7  HPFS/NTFS
/dev/sda2            2104        6464    35029732+   5  Extended
/dev/sda3            6465        7297     6683040    c  W95 FAT32 (LBA)
/dev/sda5            2104        3378    10241406   83  Linux
/dev/sda6            3379        3518     1124518+  82  Linux swap / Solaris
/dev/sda7            3519        6464    23663713+  83  Linux

che ci conferma la posizione della partizione di ripristino in /dev/sda3 (qui abbiamo un disco Serial-ATA).

Vediamo nel dettaglio le istruzioni date a GRUB:

  • title Ripristino: indica l'inizio di una nuova opzione di avvio per GRUB, che apparirà nel menù iniziale (Sezione 9, «Salve, sono GRUB!»). La parola chiave è title, quello che segue comparirà nel menù di avvio.

  • rootnoverify (hd0,2): istruisce GRUB su quale sia la partizione di avvio, e gli impone di non fare controlli. la notazione di GRUB è (disco,partizione), dove disco è hd seguito da un numero, 0 per il primo disco, 1 per il secondo, e così via; partizione è il numero della partizione come indicato da fdisk partendo però da 0, quindi la partizione sda3 per GRUB è (hd0,2), appunto.

  • makeactive: la partizione indicata nel comando rootnoverify deve essere segnata come partizione di avvio prima di cedere effettivamente il controllo ad essa. Potrebbe anche funzionare senza, ma è meglio non rischiare.

  • chainloader +1: carica il primo settore della partizione indicata con il comando rootnoverify e gli passa l'esecuzione. In pratica è la stessa operazione eseguita dal BIOS durante un avvio diretto.

Da notare che makeactive è riportato anche nel gruppo di istruzioni per avviare Windows: questo perché se avviamo il ripristino una volta, la successiva che andiamo ad avviare Windows la partizione in cui risiede deve essere segnata come attiva, e dato che ce ne può essere solo una attiva, GRUB sposta il flag sulla partizione da avviare.

Su entrambi i modelli di notebook HP Compaq la procedura funziona perfettamente, avviando il programma contenuto nella partizione di ripristino.

Su altri modelli di altre marche la procedura potrebbe non funzionare, per vari motivi. Il più probabile è il tipo differente di partizione, per esempio nascosta. Purtroppo non sono in grado di fornire maggiori informazioni: ogni produttore sceglie il suo sistema di ripristino, ed è umanamente impossibile trattare tutti i casi senza provarli direttamente, cosa per cui occorre un buona conoscenza di GRUB e del suo funzionamento, oltre alla struttura della funzione di ripristino specifica di quel produttore.

5. Basta! Rivoglio solo Windows!

Se per un qualsiasi motivo, quale che sia, vogliamo eliminare Linux Fedora e ridare tutto lo spazio a Windows, la procedura da seguire richiede un minimo di cognizione di causa. La procedura più semplice che suggerisce il buonsenso, cancellare le partizioni di Linux e riallargare quella di Windows, ci lascerebbe a piedi per un motivo molto semplice: GRUB ha bisogno per il suo funzionamento di alcuni file contenuti nella directory /boot nelle partizioni di Linux. Cancellando questi file, GRUB si bloccherebbe all'avvio non sapendo che fare, e ci troveremmo a non poter più avviare né Linux, perché cancellato, né Windows, non essendoci più un bootloader valido.

Occorre il supporto originale di Windows

Per eseguire questa procedura occorre il disco originale di installazione di Windows XP. Quelli di ripristino forniti dal produttore non sono idonei, perché andremo ad utilizzare la Console di ripristino di Windows, disponibile solo partendo dal CD originale di installazione di Windows XP o Windows 2000.

Per evitare queste complicazioni, procederemo come segue:

  • Per prima cosa faremo un backup totale con la procedura mostrata in precedenza (Sezione 3, «Il backup totale»), ignorando le partizioni che contengono Linux.

  • Ora il passo più importante: rimettere a posto il bootloader originale. Riavviamo il computer e inseriamo il disco di installazione di Windows. In pochi secondi dovremmo avere all'avvio un messaggio che ci invita a premere un tasto qualsiasi per avviare da CD-ROM, cosa che facciamo.

  • Dopo una ventina di secondi dovremmo avere la schermata di inizio installazione di Windows (Figura 6.11, «Avviare la Console di ripristino»), da cui sceglieremo l'opzione Per ripristinare una installazione di..., premendo il tasto r.

    Figura 6.11. Avviare la Console di ripristino

    Avviare la Console di ripristino


  • Dopo qualche decina di secondi ci appare un elenco delle installazioni di Windows rilevate dalla console, contrassegnate ognuna con un numero. Nel caso comune ce ne sarà una sola, contrassegnata dal numero 1. Alla domanda Quale installazione di Windows si vuole accedere risponderemo quindi 1, dopodiché ci viene chiesta la password dell'utente Administrator di quella installazione di Windows. Appena inserita la password, ci viene proposto il prompt C:\WINDOWS> (Figura 6.12, «Siamo nella console di ripristino»).

    Figura 6.12. Siamo nella console di ripristino

    Siamo nella console di ripristino


    Quale sarà la password di amministratore?

    L'utente Administrator, anche se non compare, è sempre presente in tutte le installazioni di Windows XP. Se non abbiamo mai assegnato password a nessun utente amministratore, anche quella di Administrator è vuota, per cui basta dare un Invio. Altrimenti sarà la stessa password assegnata al primo utente creato al momento dell'installazione, che di solito è un amministratore.

  • Al prompt digiteremo il comando fixmbr. Immediatamente il comando mostrerà un avviso in cui comunica che il record di avvio principale (il MBR appunto), non è leggibile o non è quello standard. Ovvio, è stato sovrascritto da GRUB...

    Seguono vari altri avvisi, che terminano con la domanda se vogliamo scrivere un nuovo record di avvio principale, domanda a cui risponderemo s.

  • Se tutto è andato per il verso giusto, avremo un messaggio di conferma, ed il comando tornerà al prompt (Figura 6.13, «Ora il MBR è di nuovo al suo posto»). Possiamo uscire dalla console di ripristino con il comando exit, ed il computer si riavvierà.

    Figura 6.13. Ora il MBR è di nuovo al suo posto

    Ora il MBR è di nuovo al suo posto


  • A questo punto avremmo terminato. Rimangono le partizioni usate per Linux, inutilizzate.

Abbiamo varie possibilità, la più semplice è quella di eliminarle con la gestione disco di Windows XP, e ricrearle per usarle come deposito dati separato dal disco di sistema. Oppure riallargare la partizione di Windows per riportarla alla sua dimensione originale:

  • Possiamo avviare dal System Rescue CD, ed usare Gparted (che abbiamo già visto), con cui cancelleremo tutte le partizioni create per Linux.

  • Di seguito, sempre con Gparted, possiamo ripristinare la dimensione originale della partizione di Windows XP.

  • Come sempre, dopo aver utilizzato Gparted per ridimensionare una partizione NTFS, al riavvio di Windows avremo il controllo con scandisk.

Ora Linux non esiste più, e Windows è di nuovo padrone del campo.

Tutto questo vale anche se abbiamo la partizione di ripristino del produttore, ma c'è un pesante effetto collaterale: se ripristiniamo dalla console di Windows non potremo comunque accedere alla partizione di ripristino, perché il bootloader di Windows conosce solo Windows.

Abbiamo due possibilità: la prima, accedendo a Windows, possiamo usare il programma di gestione del ripristino, fornito con il computer, che possiede quasi certamente una funzione di recupero del MBR originale specifico per quel modello di computer. La seconda possibilità è di usare il backup fatto in precedenza (Sezione 3, «Il backup totale»), e ripristinare il MBR originale (Sezione 4, «Rimettiamo tutto a posto»).

Come ho già infinite volte ribadito, questa procedura è ad alto rischio, per cui non è detto che funzioni.

Se sembra complicato... forse lo è

La convivenza di due sistemi operativi è sempre difficile. Per non parlare della eventuale presenza del terzo incomodo, la partizione di ripristino, che a tutti gli effetti è un terzo sistema operativo. Questo dovrebbe essere la dimostrazione ulteriore che conviene installare Linux solo se si ha una valida motivazione. Tornare indietro potrebbe non essere possibile.

6. Windows reinstallato, Linux sparito!

Capita per vari motivi che occorra reinstallare Windows. Al momento di scegliere su quale partizione installare, anche se si riutilizza quella dell'installazione precedente e non si toccano le altre partizioni dove risiede Linux, dato che il programma di installazione di Windows parte dal presupposto di essere l'unico sistema operativo installato, al termine dell'installazione il bootloader di Windows soprascrive quello di GRUB, cancellandolo. Il risultato è che, pur ancora al suo posto e integro, Linux sembra sparito nel nulla.

Anche qui abbiamo il paracadute: il supporto di installazione di Linux Fedora contiene una versione particolare chiamata Rescue (dall'inglese salvataggio), che serve proprio per emergenze di questa natura.

Per “resuscitare” Linux, basta riavviare il computer, inserire il disco di installazione di Fedora e al prompt boot: (Figura 4.1, «Via!») basta digitare:

boot: linux rescue

ed entriamo in una modalità terminale da cui possiamo fare molto per recuperare la nostra preziosa installazione di Linux.

Dopo il consueto flusso di messaggi del kernel in avvio, appare un pannello per la scelta della lingua (Figura 6.14, «Fedora Rescue: scelta della lingua»). In questo tipo di interfaccia utente, che mostra pulsanti, liste, caselle di testo usando la modalità terminale, o testo semplice, si impiegano i tasti freccia per muoversi dentro le liste, il tasto di tabulazione per passare da una zona all'altra, quindi da una lista ad un pulsante o ad una casella di testo, la barra spaziatrice per “premere” il pulsante selezionato e il tasto Invio per confermare le scelte fatte e passare oltre.

Figura 6.14. Fedora Rescue: scelta della lingua

Fedora Rescue: scelta della lingua


Dopo scelta la lingua, il pannello successivo permette di scegliere la configurazione della tastiera (Figura 6.15, «Fedora Rescue: scelta della tastiera»). Se abbiamo già scelto la lingua italiana è già selezionata la configurazione corrispondente.

Figura 6.15. Fedora Rescue: scelta della tastiera

Fedora Rescue: scelta della tastiera


Di seguito ci viene chiesto se desideriamo attivare le interfacce di rete presenti nel computer (Figura 6.16, «Fedora Rescue: attivazione della rete»). In questo caso è indifferente, visto che per questo specifico caso non ci serve la connessione in rete, ma è utile saperlo: possiamo avere il collegamento in rete anche in questa situazione di emergenza. E' bene sapere che, per renderci le cose semplici ed indolori, è meglio utilizzare connessioni Ethernet, con cavo, ed evitare le connessioni wireless, che di solito sono più laboriose e complicate da configurare.

Figura 6.16. Fedora Rescue: attivazione della rete

Fedora Rescue: attivazione della rete


Se scegliamo di attivare la rete ci viene chiesto di fornire i parametri di collegamento (Figura 6.17, «Fedora Rescue: i parametri di connessione»). Non ci dilungheremo su questi, è sufficiente sapere che esiste la possibilità, se ne abbiamo bisogno.

Figura 6.17. Fedora Rescue: i parametri di connessione

Fedora Rescue: i parametri di connessione


Il pannello seguente ci permette di scegliere se e come montare le partizioni originali dove è installato Linux (Figura 6.18, «Fedora Rescue: le partizioni di sistema»). Abbiamo tre scelte:

  • Continua - le partizioni vengono montate in lettura/scrittura, ossia possiamo modificarne il contenuto. Questa modalità permette di operare sui file di configurazione del sistema e di modificarli a piacimento. E' molto utile nel caso in cui dopo aver pasticciato con qualche file non riusciamo più ad accedere al sistema operativo. Ovviamente occorre dove mettere le mani, e come. In questo caso torna spesso utile il trucco di creare sempre una copia dei file di configurazione che andiamo a toccare.

  • Sola-lettura - le partizioni vengono montate in sola lettura. Non è possibile modificare il contenuto delle partizioni in alcun modo. Può servire per fare un backup, in modo da avere anche la sicurezza che un errore di manovra non comprometta un sistema perfettamente funzionante.

  • Ignora - Nella mia esperienza serve in un caso: dopo una mancanza di alimentazione, per uno spegnimento brutale o per un blocco totale del computer (capita, anche con Linux). All'avvio successivo può succedere di avere un messaggio che avverte di non poter montare la partizione di root, seguito da un kernel panic. Il filesystem contiene tanti e tali errori che serve l'intervento umano per tornare ad essere utilizzabile. Non è un errore gravissimo, e spesso si recupera in breve tempo, ma occorre sapere cosa stiamo facendo: come ho già detto, non c'è posto per i mi pare....

Nel nostro caso sceglieremo la prima voce, Continua.

Figura 6.18. Fedora Rescue: le partizioni di sistema

Fedora Rescue: le partizioni di sistema


Subito dopo parte la ricerca (Figura 6.19, «Fedora Rescue: ricerca delle partizioni»), operazione che dura qualche secondo, seguita da un pannello che notifica dove sono montate le partizioni dell'installazione di Linux che andiamo a recuperare (Figura 6.20, «Fedora Rescue: partizioni trovate e montate»).

Figura 6.19. Fedora Rescue: ricerca delle partizioni

Fedora Rescue: ricerca delle partizioni


Figura 6.20. Fedora Rescue: partizioni trovate e montate

Fedora Rescue: partizioni trovate e montate


Siamo quasi pronti per operare. Al passo successivo troviamo la shell pronta a rispondere ai nostri comandi (Figura 6.21, «Fedora Rescue: la shell»).

Figura 6.21. Fedora Rescue: la shell

Fedora Rescue: la shell


Spendiamo due parole per capire come funziona questa modalità di lavoro. Le partizioni del sistema operativo Linux installato sono tutte montate sotto la directory /mnt/sysimage, e conservano la struttura originale. Se abbiamo seguito lo schema di partizionamento consigliato in precedenza (Sezione 2, «Un solo disco e niente spazio»), abbiamo in /mnt/sysimage la partizione di root, mentre in /mnt/sysimage/home la partizione di home. La configurazione di GRUB e tutti i suoi file sono dentro la directory /mnt/sysimage/boot/grub, l'unico problema è riportare al suo posto il bootloader.

Il comando che serve è grub-install, uno script shell fornito con GRUB che si occupa di semplificarci la vita. Il comando accetta come parametro il disco su cui deve installare o ripristinare il bootloader, usando la configurazione preesistente, posizionata normalmente in /etc/grub.conf, che è un link simbolico al file /boot/grub/grub.conf. In altre distribuzioni il file è /boot/grub/menu.lst, ma il succo non cambia. Se abbiamo reinstallato Windows esattamente nella stessa partizione dello stesso disco, e non abbiamo aggiunto, rimosso o spostato dischi, il file di configurazione è ancora totalmente valido. Per ripristinare il bootloader il comando è:

sh-3.1# grub-install --grub-shell=/usr/sbin/grub --root-directory=/mnt/sysimage hd0
  
Installation finished. No error reported.
This is the contents of the device map /mnt/sysimage/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script ‘grub-install’.

# this device map was generated by anaconda
(hd0)     /dev/sda
sh-3.1#

In questo modo abbiamo riscritto il bootloader esattamente nello stesso modo e con la stessa configurazione che aveva al momento della prima installazione.

Per indicare il disco possiamo sia usare la notazione di GRUB che il nome del dispositivo secondo il punto di vista di Linux, quindi in questo specifico caso avremmo potuto anche scrivere /dev/sda invece di hd0.

Se come nel caso mostrato otteniamo un messaggio di conferma di operazione riuscita, senza errori, possiamo uscire dalla modalità di rescue e riavviare il computer, semplicemente digitando il comando exit. Il programma termina, smontando le partizioni, e riavvia il computer. Se tutto è andato per il giusto verso vedremo di nuovo la schermata di avvio di GRUB (Sezione 9, «Salve, sono GRUB!»).

Abbiamo recuperato l'installazione di Linux, senza perdere nulla e senza fare strani riti magici. Inoltre abbiamo appreso l'uso della modalità rescue di Fedora, che ci tornerà utile in molte altre situazioni.

Torna al sito principale