Dischi, partizioni & co
Possiamo avere molte situazioni di partenza, ma la più comune è quella con un solo disco con installato Windows™, senza spazio disponibile, seguita dalla configurazione con due dischi, uno dei quali con spazio da dedicare a Linux. La situazione ideale è quella con un computer “vergine”, senza alcun sistema operativo installato, ma quasi mai succede. Per questo motivo esamineremo le due varianti: un solo disco già occupato da un altro sistema operativo; due dischi, dei quali uno libero ed a disposizione per l'installazione di Fedora.
Se abbiamo Windows installato e intendiamo mantenerlo, le operazioni che seguono (specialmente il backup e il ridimensionamento della partizione di Windows) sono più rapide ed ancora meno soggette a fallimento applicando alcuni semplici accorgimenti, primo fra tutti una deframmentazione del disco di Windows. Perché la cosa sia ancora più efficace, possiamo fare queste modifiche prima di fare la deframmentazione, sarà più veloce e le operazioni successive avranno maggiori possibilità di successo:
Disabiliteremo il ripristino della configurazione di XP, oppure, senza disattivarlo, possiamo eliminare tutti i punti intermedi tranne l'ultimo, andando in Pannello di controllo, Prestazioni e manutenzione, nelle funzioni per liberare lo spazio disco.
Metteremo la dimensione della memoria virtuale a zero, in modo da avere un file bello grande in meno da spostare, cliccando col tasto destro del mouse su Risorse del computer, selezionando la voce Proprietà, pannello Avanzate, nelle prestazioni e memoria virtuale.
Nel Pannello di Controllo, in Prestazioni e Manutenzione, Opzioni risparmio energia, nel pannello Sospensione toglieremo la spunta alla casella Attiva sospensione risparmiando un altro po' di spazio.
Volendo, possiamo eliminate i programmi che sono in versione lite o dimostrativo per pochi giorni, non è vincolante, ma sono più rapide le operazioni successive e il computer sarà più veloce.
Queste operazioni comporteranno una serie di riavvii di Windows: li faremo tutti diligentemente, fino ad arrivare alla condizione che non chiede più di riavviare (non per sfinimento...): a questo punto possiamo fare la deframmentazione, poi siamo pronti per il passo successivo.
Ovviamente, al termine delle operazioni di installazione di Fedora, potremo poi ritornare in Windows e rimettere a posto la memoria virtuale, la sospensione ed eventualmente riabilitare il ripristino di sistema.
Acquistando un computer la situazione che si presenta è quella con il disco fisso interamente occupato dal sistema operativo, nel senso che il disco ha una singola partizione che occupa l'intero disco. Può succedere che se il disco è molto grande venga diviso in due partizioni, una per il sistema operativo e le applicazioni ed una per i dati, ma il risultato è sempre lo stesso: il disco non ha spazio disponibile, cioè non è possibile creare una partizione in più con lo spazio necessario per installare Fedora.
Negli ultimi tempi inoltre si è aggiunto un comportamento di molti produttori che non forniscono più il supporto con il sistema operativo, per ripristinare lo stato del computer in caso di disastro, ma soltanto una partizione aggiuntiva, nascosta, in cui vi è un programma di ripristino ed una copia del contenuto della partizione in cui è installato il sistema operativo. In caso di disastro si avvia il computer in una modalità detta di ripristino e si rimette a posto la partizione con il sistema operativo.
Deve essere ben chiaro: installando Linux nel modo canonico si perde la possibilità di avviare il programma di ripristino da questa partizione nascosta. Questo non vuol dire che sia irrecuperabile, ma non potremo più avviarla dato che andiamo a cancellare il bootloader originale.
Alcuni produttori mettono a disposizione un programma da usare con Windows che rimette a posto il bootloader originale e permette di utilizzare di nuovo la procedura di ripristino normalmente, ma ovviamente si perde la possibilità di avviare Linux.
Vedremo più avanti come si può rimediare in qualche caso, ma comunque occorre avere ben presente questo effetto collaterale.
Questo crea non pochi problemi: primo fra tutti, in caso di guasto distruttivo del disco principale del computer, in cui è contenuta la partizione di ripristino, non c'è modo di rimettere le cose a posto.
Mi permetto una nota lievemente polemica. Questo modello di distribuzione del software di base è totalmente inutile, quando non dannoso. Il motivo per cui mi permetto di affermarlo è presto detto: se si ha un guasto distruttivo del disco, per cui occorre cambiarlo, ovviamente devo affidarmi ai supporti creati da me tramite il programma fornito. In questo caso il tempo impiegato è effettivamente minimo rispetto alla procedura classica di installazione: prima il sistema operativo, poi i driver di tutte le periferiche, poi le applicazioni, poi le personalizzazioni, poi i dati. Ci rimane solo di reinserire i nostri dati. Ma se ho un malfunzionamento del sistema operativo, problema che si presenta molto più frequentemente, ad esempio causato da un bug o da un aggiornamento fallito (succede molto più spesso di quanto si voglia ammettere), quando si va ad avviare il sistema di ripristino posso certamente ripristinare singoli file, ma sta a me sapere quali. Se invece si sceglie il ripristino completo, il risultato è che distrugge completamente il contenuto del disco che viene riportato nello stato che aveva appena acquistato il computer. Non è certo pratico, né desiderabile. Oppure se semplicemente si cancella il Master Boot Record (anche questo può succedere per una mancanza di alimentazione), ma il resto del disco è integro con i suoi dati, non c'è modo di avviare la procedura di ripristino, visto che il bootloader è andato.
Gli esempi sono innumerevoli, e nella quasi totalità l'uso della procedura di ripristino peggiora il danno, mentre disponendo dei supporti originali del sistema operativo e delle applicazioni si potrebbero recuperare molte situazioni gravi solo in apparenza.
Ma veniamo a quello che ci interessa per l'installazione di Fedora: servono tre partizioni per installare in modo corretto, che possono essere ridotte a due. Le partizioni sono queste:
la partizione principale, detta root. Questa partizione contiene tutti i dati del sistema operativo, tutti i file di lavoro, le applicazioni, le configurazioni, ecc.
La dimensione che consiglio è di 10Gbyte, che possono essere ridotti a sei se non si intende installare tutto il necessario per lo sviluppo.
Se non si installa il supporto allo sviluppo non si potrà poi installare nulla dai sorgenti, ossia pacchetti non compresi nella distribuzione ufficiale o con varianti particolari non contemplate dai pacchetti ufficiali. Si può installare tutto il necessario anche in seguito, ma diventa molto più difficoltoso.
la partizione di swap, equivalente al file di scambio di Windows™. Qui il discorso è abbastanza delicato, e la regola dice lapidariamente “il doppio della memoria RAM del computer”. Questa regola è pensata per tutti i possibili usi del computer, inclusi quelli come server web o server di posta in produzione, dove effettivamente è fondamentale la presenza di questa quantità di memoria virtuale. Per i computer destinati ad uso personale si può applicare una regola che secondo la mia esperienza funziona abbastanza bene: se il computer ha fino a 256M di memoria RAM si segue la regola precedente, ossia la partizione di swap pari al doppio della RAM; avendo più memoria si usa una partizione di swap da 512Mbyte, in quanto difficilmente se ne userà così tanta, e se si ha poco spazio disco è utile limitare la dimensione della partizione. Unica eccezione, se si sta installando su un notebook, e si vuole tentare l'uso della funzione di ibernazione su disco (che però non è detto funzioni, dipende molto dal notebook) occorre una partizione leggermente più grande della dimensione della RAM: se si hanno 512Mbyte, basta creare una partizione da 600Mbyte.
la partizione home, che conterrà tutti i nostri dati e le impostazioni personalizzate. Il vantaggio di avere una partizione home separata è di poter reinstallare Fedora da zero, oppure installare una versione successiva di Fedora o ancora passare ad una diversa distribuzione senza perdere i nostri dati. La sua dimensione è pari alla quantità totale di dati che prevediamo di gestire. Posta elettronica, documenti, foto, ecc., tutto deve essere conteggiato. Per quanto mi riguarda, dopo aver creato le due partizioni root e swap, tutto lo spazio rimanente lo assegno alla partizione home.
Ci sono delle considerazioni aggiuntive: ad esempio, se vogliamo scambiare dati con Windows possiamo creare una partizione aggiuntiva con il filesystem FAT32, gestibile senza problemi sia da Windows che da Linux, su cui far transitare i dati da un sistema operativo all'altro. Oppure possiamo usare a questo scopo un disco esterno o un pen drive USB, se lo scambio di dati fra i due sistemi operativi è saltuario.
In alcuni casi è consigliabile una partizione aggiuntiva, al massimo di 100Mbyte, che
contiene solo i file necessari per l'avvio di Linux. Questa partizione, detta di
boot, contiene la directory /boot, normalmente inclusa nella partizione
root.
Se abbiamo intenzione di usare configurazioni in RAID oppure con la partizione di root cifrata, occorre una partizione di boot. Anche nel caso di presenza della partizione di ripristino messa dal produttore può essere utile, ma non risolve tutti i problemi.
Quindi, ricapitolando: 10Gbyte per root, per lo swap il doppio della RAM se ne abbiamo fino a 256Mbyte, oppure al massimo 512Mbyte se non intendiamo usarlo come server in produzione, il resto dello spazio disponibile alla home. Se abbiamo proprio poco spazio, possiamo omettere la partizione di home e fare tutto su una sola partizione, ma solo se abbiamo meno di 6Gbyte di disco libero. La mia attuale installazione sul notebook con cui scrivo è questa:
11Gbyte dedicati a Windows XP
10Gbyte per la root
1,1Gbyte per swap, avendo 1Gbyte di RAM (non ho ancora provato l'ibernazione su disco).
40Gbyte per la partizione home
infine 15Gbyte per una partizione FAT32 di scambio dati con Windows. Se poi deciderò di utilizzare una seconda distribuzione Linux, posso convertire questa partizione in una root per la nuova distribuzione, condividere la swap fra le due, e lasciare tutti i dati sulla home che verrebbe usata da entrambe le distribuzioni senza problemi. Con Linux si può.
Ma occorre tenere conto che il mio principale sistema operativo è Linux oramai da qualche anno, quindi questo schema di partizionamento probabilmente non andrà bene alla maggioranza. Inoltre ho cancellato del tutto la partizione di ripristino, ovviamente dopo aver masterizzato i due DVD di ripristino.
Possiamo dire che per una prima installazione per cominciare ad orientarsi occorrono non meno di 8Gbyte di spazio disco libero, a patto di lavorare con file di dimensione sotto i 100Mbyte.
Ma, come abbiamo visto, non ne abbiamo di spazio: è tutto occupato dal sistema operativo originale. C'è una possibilità, che però richiede una certa esperienza ed un po' di lavoro aggiuntivo. In breve l'idea è questa: usando un programma apposito si può tentare di ridurre la dimensione della partizione utilizzata dal sistema operativo originale, senza perderne il contenuto, ovviamente. Vi sono alcuni vincoli e controindicazioni: la partizione si può ridurre solo se vi è spazio libero nel filesystem; l'operazione comporta un certo rischio, ed occorre premunirsi con un backup completo; c'è una buona probabilità che non sia possibile ridurre la dimensione della partizione, per vari motivi.
Innumerevoli sono le cose che possono andare storte per cui, prima di fare qualsiasi altra cosa, ci fermiamo qui e facciamo un backup totale di tutti i nostri dati in tutte le partizioni del disco coinvolto nell'operazione. Per capire quanto deve essere esteso il backup, basta pensare ad un guasto al disco fisso: dobbiamo essere in grado di recuperare tutto anche se il disco fisso è totalmente illeggibile. Niente di meno.
Inoltre, se siamo poco esperti non è proprio il caso di imbarcarsi in questa impresa: i rischi di perdere dati sono altissimi. Uomo avvisato...
Chiarito questo, possiamo partire. Ci procuriamo il System Rescue CD, una distribuzione Linux pensata, fra le altre cose, per il recupero da situazioni di disastro. Quella presentata qui è la versione 0.3.0. Dopo aver masterizzato il CD, impostiamo il computer per avviarsi da CD-ROM e inseriamo il supporto. Dopo pochi secondi dovremmo avere la schermata di avvio (Figura 1, «L'avvio del System Rescue CD»).
Al prompt boot: digitiamo semplicemente Invio, ed il
System Rescue CD partirà con una risoluzione video di 800 per 600 pixel, in modo da avere la
certezza che possa funzionare praticamente con qualsiasi computer.
Poco dopo l'avvio (Figura 2, «La scelta della tastiera») ci viene chiesta la mappa della tastiera,
che nel nostro caso sarà quella italiana, per cui digiteremo 21.
Dopo un tempo che dipende molto dalla configurazione e dalla velocità del computer il System Rescue CD è pronto per l'uso (Figura 3, «Il System Rescue CD è pronto»).
Questo passo è opzionale, partendo dal presupposto che è sempre meglio usare gli strumenti messi a disposizione dal proprio sistema operativo per fare il backup. Ma per completezza lo faremo anche con questo sistema.
Lo scopo è di creare una immagine dello stato del disco, con tutti i dati all'interno, in modo da poterlo ricostruire in caso di disastro estremo. L'operazione, per quanto abbastanza semplice, è molto delicata e non funziona in tutti i possibili casi. Queste sono le limitazioni:
Serve un disco USB esterno con filesystem FAT32 o ext2/3, con spazio libero pari almeno allo spazio occupato sul disco che andremo a salvare. Quindi, se sul nostro computer abbiamo un disco da 80Gbyte, pieno, occorreranno 80Gbyte di spazio sul disco USB.
Non è possibile usare dischi USB formattati con NTFS. O meglio, si potrebbe fare, ma per varie ragioni lo sconsiglio del tutto.
La partizione in cui è installato Windows, se in NTFS, non deve contenere cartelle cifrate o compresse, che rendono difficile la riuscita dell'operazione.
Come abbiamo già detto più volte. in molti computer è installato un programma di recupero del sistema operativo, che può essere avviato alla partenza premendo un tasto nelle schermate fra quelle del BIOS e la partenza del sistema operativo, o vi è addirittura un tasto dedicato. Il problema è che questo programma è installato in alcune zone del disco fisso che non vengono salvate da questa procedura, anche perché ognuno di questi programmi di ripristino è differente. Questa procedura potrebbe non recuperare questa funzione.
Chiariti questi vincoli, possiamo andare a cominciare.
Linux ha una notazione specifica per indicare dischi e partizioni:
i dischi IDE vengono chiamati con le lettere hd seguite da
una lettera, a per il primario sul primo canale IDE,
b per il secondario sul primo canale IDE,
c per il primario sul secondo canale IDE,
d per il secondario sul secondo canale IDE. Non vengono fatte
distinzioni fra dischi e CD-ROM, DVD, o masterizzatori. Se ad esempio abbiamo un disco
sul primo canale IDE ed il masterizzatore DVD sul secondo canale IDE, entrambi
primari, avremo i dischi hda e hdc.
i dischi SCSI, Serial-ATA (o SATA), quelli USB e quelli Firewire sono indicati invece
con le lettere sd seguite da una lettera. Semplicemente il
primo disco trovato si chiamerà sda il secondo
sdb, ecc.
le partizioni sono indicate con lo stesso nome del disco su cui risiedono, seguito da un numero progressivo. I numeri non sono indicati a caso, ma hanno un significato preciso: da 1 a 4 sono le partizioni primarie, ossia quelle che si trovano dentro la tabella delle partizioni memorizzata nel Master Boot Record del disco (il primo settore fisico del disco); quelle da 5 a 15 sono contenute dentro una partizione estesa, sotto forma di volumi logici. Questa distinzione è fisica, oltre che logica, ma vedremo che i programmi di Linux ci semplificano la vita occupandosi loro di tutti questi dettagli. Noi vedremo solo le partizioni, con il loro numero, ma è comunque importante capire le ragioni per evitare errori marchiani.
Quindi, la prima partizione del primo disco IDE, dove probabilmente è installato
Windows è hda1. Mentre la partizione presente sul disco USB
esterno è molto probabilmente sda1.
In Linux, ed in tutti gli Unix, maiuscole e minuscole non solo la stessa
cosa. Se digitiamo LS invece di
ls otteniamo un errore. Dobbiamo rispettare scrupolosamente la
forma in cui sono scritti i comandi nel seguito. Questo vale anche per tutto il resto:
hda ed hdA non sono la stessa cosa.
Inoltre, la barra usata nelle directory è quella sul tasto 7 o del tastierino numerico,
non quella rovesciata, di solito a sinistra del tasto 1, che invece ha
un altro significato.
Andiamo a controllare la nostra situazione. Inseriamo il disco USB e dal prompt del System Rescue CD controlliamo lo stato dei dischi e delle partizioni. Avremo vari casi, in funzione del tipo di dischi collegati al computer, interni ed esterni. Nel caso di un disco IDE interno, un masterizzatore ed un disco USB esterno:
#ls /dev/hd* /dev/sd* /dev/hda /dev/hda1 /dev/hdc /dev/sda /dev/sda1#
Dove hda è il disco interno, hdc è il
masterizzatore (si riconosce perché non ha partizioni) e sda è il
disco USB. Le partizioni saranno hda1 sul primo disco, quella che
probabilmente contiene il sistema operativo, e sda1 sul disco USB.
Nel caso di un disco Serial-ATA interno, un masterizzatore connesso al primo canale IDE ed un disco esterno USB avremo invece:
#ls /dev/hd* /dev/sd* /dev/hda /dev/sda /dev/sda1 /dev/sdb /dev/sdb1#
Dove hda è il masterizzatore (anche qui si riconosce per la
mancanza di partizioni), sda è il disco Serial-ATA interno e
/dev/sdb il disco esterno USB. Per maggior sicurezza possiamo
scollegare il disco USB e rilanciare il comando. Per nessuna ragione si deve collegare il
disco USB prima di avviare il System Rescue CD: potrebbe invertirsi la
numerazione dei dischi e faremmo una grande confusione, che tradotto significa perdere i
dati.
Appurato che il disco USB si chiama ad esempio sda e che la
partizione FAT32 sia appunto sda1, possiamo procedere a
montarlo,
operazione che lo rende disponibile per accedere ai dati e scriverci dentro. Dobbiamo prima
creare una directory che diventa il punto di mount:
# mkdir /mnt/discousbche non deve restituire nessun messaggio.
Fatto questo, procediamo al mount. Il comando è:
# mount -t vfat /dev/sda1 /mnt/discousbche non deve restituire alcun messaggio. Per verificare che il disco sia correttamente montato, il comando è:
# mount
... altre linee che non ci interessano
/dev/sda1 on /mnt/discousb type vfat (rw)
Se così non fosse, occorre ricontrollare tutti i comandi dati, e verificare che nessuno abbia restituito un errore. Se invece è tutto in ordine, possiamo passare a fare il backup.
Il programma che useremo si chiama Partimage, che come suggerisce il nome
serve per fare l'immagine di una partizione, come una fotografia. Partimage ha una semplice
interfaccia in modo testo, che permette di fare le operazioni che servono (Figura 4, «Partimage, primo pannello»). Nella parte superiore appare l'elenco delle partizioni che è
possibile salvare, ed ovviamente basta selezionare quella in formato NTFS, nel nostro caso
hda1.
Premendo il tasto TAB si passa alla casella successiva, con le frecce si selezionano le voci e con lo spazio si cambia lo stato delle opzioni. Andiamo nella casella Image file to create/use, dove scriveremo il nome del file che verrà creato con l'immagine della partizione. Ovviamente il nome deve comprendere il percorso completo fino al punto in cui abbiamo montato il disco USB esterno, altrimenti l'immagine verrà creata nel posto sbagliato, e l'operazione fallirà per mancanza di spazio. Controlleremo che in Action to be done sia selezionato Save partition into a new image, poi premeremo il tasto F5, passando al pannello successivo (Figura 5, «Partimage, le opzioni»).
Qui invece occorre controllare che la compressione sia impostata su Gzip, che in Options sia deselezionato Enter description e che in Image split mode sia selezionato Into files whose size is:.... 2037 Mib. In questo modo vengono creati tanti file quanti ne servono, rispettando le limitazioni sia di FAT che di FAT32 (in FAT i file possono essere massimo di 2Gbyte, e di 4Gbyte in FAT32).
Fatto questo possiamo premere di nuovo il tasto F5, arrivando ad un avviso (Figura 6, «Avviso su NTFS») che ci informa sul fatto che il supporto per NTFS è sperimentale.
Preso coscienza che le cose possono andare male, premiamo Spazio e andiamo avanti. Viene mostrato un ulteriore pannello con il riepilogo dello stato della partizione (Figura 7, «Riepilogo dati partizione»). Quello che più ci interessa è lo spazio occupato e quello libero. Ovviamente se lo spazio libero è inferiore a quello che abbiamo detto serve per installare Linux, è del tutto inutile imbarcarci nell'impresa. Supponendo che sia tutto in ordine, premiamo di nuovo Spazio ed andiamo avanti.
Il processo di creazione dell'immagine parte immediatamente, con tutte le informazioni che servono per capire anche quanto tempo occorrerà al completamento dell'operazione (Figura 8, «Creazione dell'immagine in corso»).
Terminata l'operazione riceveremo un messaggio di conferma (Figura 9, «Fine della creazione»). Se già in questa fase otteniamo un errore, con partimage che segnala qualche problema, non è il caso di insistere, ma occorre intervenire sul filesystem NTFS dal sistema operativo in esso installato. Tradotto, se sul disco è installato Windows si può tentare di:
pulire il disco da file inutili (svuotare il cestino, eliminare i temporanei di Internet, ecc.)
ridurre le dimensioni del file di scambio (o memoria virtuale), o toglierlo del tutto. In questo modo si risparmia anche spazio inutile nell'immagine
controllare che non vi siano cartelle compresse o cifrate
per ultimo deframmentare per due volte consecutive il filesystem anche se Windows afferma che non è necessario
Terminati questi controlli possiamo ritentare. Se riceviamo ancora un errore, allora occorre fare un backup tradizionale, e controllare di avere disponibili tutti i supporti per reinstallare il sistema operativo e le applicazioni. Non succede molto spesso (in due anni che uso il System Rescue CD non mi è mai capitato), ma purtroppo può succedere, visto anche che tutto il supporto per il filesystem NTFS è realizzato con il reverse engineering degli eseguibili di Windows, le specifiche di NTFS non sono mai state rilasciate da Microsoft™.
Visto che in caso di disastro l'immagine della partizione sarà l'unica ancora di salvezza, ne verifichiamo la funzionalità simulando un restore. Quindi rilanciamo di nuovo partimage e stavolta indichiamo che vogliamo ripristinare una immagine, selezionando la voce Restore partition from an image file, e nella casella Image file to create/use scriveremo il nome, con il percorso completo, dell'immagine appena creata (Figura 10, «Verifica dell'immagine»).
Dopo aver premuto il tasto F5 selezioneremo la voce Simulation of the restoration (Figura 11, «Scelta della modalità Simulazione»).
Se la voce Simulation of the restoration non è selezionata viene ripristinata l'immagine sulla partizione di Windows con l'altissimo rischio di perdere tutto. Verificare accuratamente le voci da selezionare.
Dopo aver controllato che sia tutto in ordine possiamo avviare la simulazione. Il pannello successivo ci avverte correttamente che sarà fatta una simulazione del ripristino senza scrivere nulla sui dischi, proprio quello che vogliamo (Figura 12, «E' una simulazione»). Seguono i consueti pannelli di avviso (Figura 13, «NTFS è sperimentale», Figura 14, «Riepilogo delle operazioni») ed infine si avvia il processo di ripristino (Figura 15, «Finalmente parte il ripristino»).
Questa operazione è necessaria per avere la certezza che l'immagine funzionerà nel momento in cui andremo a ripristinarla in caso di bisogno. Con vecchie versioni del System Rescue CD mi sono capitati casi in cui non veniva riconosciuto il formato dell'immagine. Il problema si risolveva semplicemente decomprimendo i file con l'utility gunzip e poi ritentando con il file non compresso, ma occorreva ovviamente spazio libero a sufficienza sul disco. Se dovesse appunto succedere che partimage non riconosca la sua stessa immagine appena creata, se ne può creare una usando l'opzione senza compressione, selezionando nel pannello apposito (Figura 5, «Partimage, le opzioni») nella sezione Compression level la voce None (very fast + very big file), cancellando l'immagine precedentemente creata. Ovviamente in questo caso occorre che lo spazio libero sul disco USB sia almeno pari a quello occupato sulla partizione NTFS che andiamo a salvare (ecco perché fra i vincoli ho messo questo sullo spazio disponibile sul disco USB).
Se invece è tutto in ordine, al termine della simulazione avremo il consueto messaggio di successo (Figura 16, «Pare sia tutto a posto»).
Non abbiamo ancora finito. Il solo ripristino della partizione non è sufficiente: in caso di disastro totale, è probabile che il disco fisso sia praticamente come appena uscito dalla fabbrica, quindi non ha neanche la tabella delle partizioni, contenuta nel Master Boot Record (abbreviato in MBR), ossia il primo settore fisico del disco fisso, che contiene anche il bootloader, un brevissimo programma che serve a far partire il caricamento del sistema operativo. Il programma Partimage salva in ogni immagine il contenuto del MBR, per cui dovremmo averlo anche nell'immagine appena creata, ma non offre la possibilità di simularne il ripristino. Per verificare dovremmo ripristinare effettivamente il Master Boot Record, ma ovviamente non è che sia molto pratico. Dalla mia esperienza, se il ripristino simulato dell'immagine funziona, dovrebbe funzionare senza problemi anche il ripristino del MBR, al netto di alcune segnalazioni riguardo alla differente dimensione del disco fisso, che in realtà non hanno ragion d'essere, usando lo stesso disco.
Per essere maggiormente sicuri, possiamo effettuare un ulteriore backup della zona che contiene il MBR operando in questo modo:
dobbiamo verificare da quale settore del disco inizia la prima partizione, con il comando:
# sfdisk -d /dev/hda
# partition table of /dev/hda
unit: sectors
/dev/hda1 : start= 63, size= 20450682, Id= 7, bootable
/dev/hda2 : start= 0, size= 0, Id= 0
/dev/hda3 : start= 0, size= 0, Id= 0
/dev/hda4 : start= 0, size= 0, Id= 0
che ci permette di verificare che il primo settore è il 63. Dato che la numerazione parte da zero, dovremo salvare i primi 63 settori del disco fisso.
Per salvare effettivamente tutti i settori, il comando è:
# dd if=/dev/hda of=/mnt/discousb/mbr-hda bs=512 count=63
63+0 records in
63+0 records out
32256 bytes (32kB) copied, 0.0185877 s, 1.7 MB/s
che crea sul disco USB un file dal nome mbr-hda con dentro i primi 63 settori fisici del disco dove è contenuto il sistema operativo.
In effetti il MBR è contenuto solo nel primo settore del disco. Il motivo per cui andiamo a salvare tutti i settori apparentemente inutilizzati della prima traccia del disco, oltre al MBR, è che tutte le utility di ripristino fornite dai produttori usano questi settori aggiuntivi per memorizzare il resto del programma che serve ad avviare la partizione di ripristino.
Tutto qui. Abbiamo ora una doppia sicurezza: il backup fatto con gli strumenti messi a disposizione dal sistema operativo originale, ed un backup del tipo disaster recovery, ossia l'immagine della partizione con il salvataggio del MBR.
Possiamo ora smontare il disco USB:
#umount /mnt/discousb#
Il comando non deve restituire nessun messaggio. Se invece ne ritorna uno in questo modo:
#umount /mnt/discousb umount: /mnt/discousb: device is busy umount: /mnt/discousb: device is busy#
non è un problema grave, significa semplicemente che ci siamo spostati dentro la directory
/mnt/discousb, ed avendo noi un piede lì dentro
impediamo al comando umount di fare il suo dovere. Basta dare il comando
cd senza parametri per tornare in una directory “innocua”,
poi possiamo ripetere il comando di umount.
La stessa procedura la possiamo applicare per la partizione di ripristino, se presente nel computer. E' una partizione come tutte le altre, e può essere salvata con la stessa procedura. Unica differenza può essere il tipo di filesystem, di solito FAT32, che rende le cose più semplici.
Ora dovremmo essere in grado di recuperare il recuperabile, se proprio qualcosa dovesse andare storto.
Se qualcosa nel seguito va molto male, la procedura per riavere il computer in ordine è la seguente:
Avviamo il computer con il System Rescue CD
dopo aver ricreato la directory /mnt/discousb,
montiamo il disco esterno USB come mostrato prima
se si è completamente persa anche la tabella delle partizioni e il MBR, cosa che si può controllare usando il comando sfdisk -d /dev/hda, si ripristina usando partimage, e selezionando la voce Restore an MBR from the image file, ovviamente dopo aver digitato il nome completo del path del file dell'immagine (Figura 17, «Ripristinare un MBR»).
Dopo aver premuto F5, selezionare dal pannello successivo il disco su
cui ripristinare il MBR, nel nostro caso sempre hda (Figura 18, «Ripristinare l'intero MBR»). Poi nella sezione What to restore
selezionare The whole MBR.
Passando al pannello dopo con F5, viene mostrato un breve avviso che
riepiloga quanto andremo a fare (Figura 19, «Dove sarà ripristinato il MBR»). Controlleremo che nella
prima riga sia indicato il disco corretto, nel nostro caso sempre
hda.
Può capitare, passando al pannello successivo, che partimage mostri un messaggio riguardo una inesistente differenza di dimensione del disco (Figura 20, «Eccesso di prudenza o bug?»). Se il disco è effettivamente lo stesso da cui abbiamo creato l'immagine, questo avviso è probabilmente dovuto ad un eccesso di prudenza del programma, e lo possiamo ignorare.
Se non ci sono problemi reali, la procedura si conclude con il consueto messaggio di successo (Figura 21, «Sembra tutto in ordine...»).
Se per qualche motivo questa procedura non funziona, occorre ripiegare sul secondo backup che abbiamo fatto del MBR. Per ripristinarlo il comando è:
# dd if=/mnt/discousb/mbr-hda of=/dev/hda bs=512
63+0 records in
63+0 records out
32256 bytes (32kB) copied, 0.0120117 s, 2.7 MB/s
Attenzione a non invertire MAI le opzioni if ed
of, che stanno per input file ed
output file. Possiamo facilmente immaginare quale sia
il risultato...
Per chi non ha immaginazione: alla fine avremo l'intero disco
fisico copiato nel file mbr-hda, sempre che sul
disco USB esterno vi sia spazio a sufficienza.
Con questo specifico passo dovremmo ripristinare anche la possibilità di avviare le procedure di ripristino, avendo rimesso a posto non solo il MBR, ma anche il resto del programma originale, di solito contenuto nei settori inutilizzati fra il MBR e la prima partizione sul disco. Non è certo, visto che ogni produttore usa metodi differenti e può cambiare tranquillamente strategia nel tempo, ma dovrebbe funzionare.
Serve ancora una operazione per completare questo passo: abbiamo scritto “brutalmente” la tabella delle partizioni, ma il sistema operativo non ne ha conoscenza. Per fare in modo che venga riletta la tabella delle partizioni, useremo un metodo che funziona sempre. Il comando fdisk normalmente serve per manipolare la tabella delle partizioni. Se si chiama indicando il disco da cui vogliamo far rileggere le partizioni, fdisk per prima cosa leggerà appunto lo stato delle partizioni dal disco. Se andiamo a scrivere gli stessi dati letti, a parte l'apparente inutilità dell'operazione, otterremo che fdisk diligentemente chiederà al sistema operativo di rileggere la tabella appena scritta, e lo costringerà ad aggiornarsi sui cambiamenti. Il comando viene usato in questo modo:
#fdisk /dev/hda The number of cylinders for this disk is set to 1274. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):wThe partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.#
cioè appena fdisk presenta il prompt Command, noi
digiteremo w seguito da Invio e la tabella verrà
riscritta identica sul disco. I messaggi seguenti mostrano appunto che abbiamo
costretto il sistema operativo a prendere atto delle modifiche fatte.
Se non si esegue questo passo, non si avranno disponibili i
device rappresentanti le partizioni, nel nostro caso
/dev/hda1, e non potremo fare i passi seguenti.
Ripristinato correttamente il MBR, passeremo a ripristinare la partizione con il sistema operativo, usando la procedura vista nel paragrafo precedente, ma senza la simulazione, quindi nel pannello visto prima (Figura 11, «Scelta della modalità Simulazione») la voce Simulation of the restoration non deve essere selezionata.
Al termine possiamo smontare il disco USB esterno, scollegarlo e riavviare con il comando reboot.
Togliamo il disco del System Rescue CD, e se tutto è andato per il verso giusto dovremmo vedere l'avviamento del sistema operativo originale.
La procedura è certamente complessa, e non priva di difficoltà, ma per la mia esperienza funziona sempre. Solo nel caso di ripristino in dischi di differente dimensione si hanno problemi, ma ovviamente questo non è lo scopo di questo manualetto.
Supponendo di aver fatto il backup e di essere pronti a recuperare tutto in caso di disastro, possiamo finalmente occuparci di fare spazio a Linux. Sempre dal System Rescue CD, avviare l'interfaccia grafica con il comando startx, ottenendo dopo circa un minuto un desktop grafico in versione spartana, ma funzionale (Figura 22, «Il desktop grafico»).
Nella colonna di destra ci sono una serie di icone: la terza dall'alto è quella che ci interessa. Con un doppio clic su di essa lanciamo GParted, un programma molto sofisticato di editing delle partizioni. Per prima cosa controlliamo di aver selezionato il disco giusto (Figura 23, «GParted: scelta del disco su cui lavorare»), nella casella in alto a destra della finestra del programma.
Andiamo a vedere in dettaglio le informazioni che ci fornisce il programma. Nella parte in alto, è rappresentato in un rettangolo il disco selezionato. Ogni partizione è identificata con un differente colore, in questo caso l'unica presente è quella NTFS di Windows, ed è in verde. All'interno del rettangolo col bordo verde la parte in giallo chiaro rappresenta lo spazio occupato dai dati presenti nella partizione. Gli stessi dati in forma numerica sono nel riquadro in basso, che invece riporta l'elenco delle partizioni con le informazioni di dimensione, spazio occupato, tipo di partizione, ecc.
Per questo documento ho usato un sistema che simula completamente un computer con tutte le periferiche, e dato lo spazio limitato ho usato dischi virtuali da 10Gbyte. Ovviamente nella realtà i dischi saranno più grandi, ma i concetti e le operazioni sono assolutamente le stesse. Quindi, non terremo conto dei numeri indicati nelle figure, sono quelli nel testo che contano.
Per modificare la partizione occorre prima selezionarla dalla lista in basso o dal rettangolo che la rappresenta, cosa che farà attivare i tasti nella toolbar in alto (Figura 24, «GParted: partizione NTFS selezionata»).
Ora possiamo premere il pulsante e ci viene presentato un pannello che ci permette di ridimensionare la partizione, ed ovviamente anche il filesystem in essa contenuto, usando sia il mouse sia digitando direttamente nelle caselle New Size o Free Space Following (Figura 25, «GParted: ridimensionare la partizione NTFS»).
Vi sono alcune considerazioni da fare:
E' sempre più pratico, veloce e sicuro “accorciare” la partizione, spostando la fine verso sinistra, piuttosto che spostarne l'inizio. In quest'ultimo caso infatti, oltre a dover spostare una mole enorme di dati, ci sono maggiori rischi di fallimento dell'operazione.
Non è proprio il caso di togliere tutto lo spazio libero dalla partizione esistente: renderemmo inutilizzabile o quasi il sistema operativo in essa. Se abbiamo proprio bisogno di così tanto spazio, forse è il caso di valutare qualche alternativa, come prendere un disco più grande o aggiungerne un secondo.
Detto questo, possiamo scegliere la nuova dimensione, lasciando libero lo spazio che abbiamo pianificato per installare Fedora e premere il tasto nel pannello. L'operazione non viene eseguita immediatamente, ma viene inserita in una lista, mostrata in basso (Figura 26, «GParted: come sarà la nuova partizione»). Le operazioni possono essere annullate con il pulsante nella toolbar. Una volta controllato che tutti i parametri corrispondano, possiamo avviare l'esecuzione con il pulsante , sempre nella toolbar.
Ci viene chiesto di confermare l'operazione, insieme al doveroso avviso che fare un backup è sempre consigliato (Figura 27, «GParted: conferma delle operazioni»), ed alla nostra pressione del pulsante parte il ridimensionamento voluto (Figura 28, «GParted: operazione in corso»).
Questa è la parte più delicata ed a rischio dell'intera operazione. Se stiamo usando un notebook, dobbiamo avere l'alimentatore collegato, se stiamo usando un normale computer eviteremo di fare questa procedura durante un temporale. A maggior ragione non collegheremo o scollegheremo periferiche durante tutta l'operazione, né andremo ad accendere o spegnere quelle già connesse. In breve: niente deve essere toccato durante questa fase, pena il disastro. Certo, abbiamo il backup e l'immagine, ma perché rischiare?
Al termine dell'operazione avremo un messaggio di successo (Figura 29, «GParted: pare sia tutto in ordine»), e possiamo uscire dal programma premendo prima il pulsante , GParted rileggerà lo stato di tutti i dischi e ci presenterà la situazione attuale, poi dal menù possiamo scegliere la voce , tornando al desktop. Cliccando col tasto destro sul desktop appare un menù (Figura 30, «Per uscire dal desktop») da cui scegliamo la voce e torniamo al terminale consueto del System Rescue CD.
Dal terminale ora possiamo dare il comando reboot che termina l'uso del System Rescue CD e riavvia il computer. Tolto il CD-ROM del System Rescue CD, parte il sistema operativo, nel nostro esempio Windows XP, che si comporta come se fosse stato spento malamente il computer, richiedendo un controllo del filesystem (Figura 31, «Il controllo forzato da parte di Windows XP»). Niente paura, è un comportamento indotto da GParted, per avere ulteriore conferma che l'operazione sia andata a buon fine. Al termine di questa parte, con Windows avviato, avremo la certezza che è tutto a posto.
Siamo al termine di questa fase, delicata e complessa, ottenendo lo scopo di disporre dello spazio necessario ad installare Fedora, senza perdere un singolo file dal disco.
Come abbiamo detto in precedenza, molti produttori si stanno orientando ad una politica di non fornire più supporti originali per il ripristino del sistema operativo e delle applicazioni in caso di disastro, ma usano programmi appositi che si appoggiano su partizioni nascoste del disco fisso dove è memorizzata proprio una immagine per il ripristino totale. E per maggior danno, il programma che fa avviare la partizione nascosta quando serve è posizionato in parte nel Master Boot Record, per cui alla installazione di Linux lo andiamo a perdere. Per questo secondo problema abbiamo una soluzione che dovrebbe funzionare nella maggior parte dei casi, e che vedremo dopo aver installato Linux, mentre per la partizione nascosta di ripristino, l'unico problema vero lo crea andando ad occupare spazio.
Di per sé, questo non sarebbe un ostacolo, ma nel momento in cui andiamo a fare le operazioni con GParted ci troviamo in situazioni strane.
Tecnicamente parlando, possiamo avere due varianti:
La partizione di ripristino è prima di quella del sistema operativo.
Al contrario, la partizione di ripristino è posizionata dopo la partizione del sistema operativo.
Quando andiamo a lanciare partimage o GParted ci troviamo con due partizioni invece di una. Se siamo nel primo caso non ci sono problemi, salvo il fatto di applicare quanto detto alla partizione giusta. Nel secondo caso c'è una ulteriore complicazione che andiamo a vedere.
Quando lanciamo GParted la situazione che ci troviamo davanti non pone problemi particolari, basta ridurre la dimensione della partizione del sistema operativo, la più grande, e creare lo spazio che serve fra le due partizioni. Ma il problema arriva dopo. Nella tabella delle partizioni c'è posto per quattro partizioni primarie, e la situazione è questa:
Tabella partizioni N. Partizione 1 hda1 (NTFS Windows) 2 hda2 (ripristino) 3 vuota 4 vuota Posizione fisica |---------intero disco---------| |--------hda1--------||--hda2--|
cioè due partizioni consecutive nella tabella delle partizioni e consecutive sul disco. Dopo
aver fatto spazio riducendo la partizione hda1, la situazione
diventa questa:
Tabella partizioni N. Partizione 1 hda1 (NTFS Windows) 2 hda2 (ripristino) 3 vuota 4 vuota Posizione fisica |---------intero disco---------| |---hda1---||-vuoto--||--hda2--|
si crea lo spazio vuoto fra le due partizioni. Nella fase successiva, quella in cui si installa Linux, la partizione creata sarà in questo stato:
Tabella partizioni N. Partizione 1 hda1 (NTFS Windows) 2 hda2 (ripristino) 3 hda3 (Linux) 4 vuota Posizione fisica |---------intero disco---------| |---hda1---||--hda3--||--hda2--|
con la stranezza di avere la partizione hda3, cioè la terza nella
tabella delle partizioni, posizionata fisicamente fra hda1 e
hda2. Ora, non è detto che questo crei problemi, ma partiamo dal
presupposto che i problemi ci potrebbero essere, per cui andiamo a risolvere in questo modo:
dopo aver ridimensionato la partizione del sistema operativo (Figura 32, «GParted: il caso con la partizione di ripristino»), sempre da GParted, andiamo a creare una nuova partizione di tipo esteso. Questo tipo di partizione consente di creare poi al suo interno fino a dieci partizioni aggiuntive, che sono più che sufficienti per installare Linux.
Per creare la partizione estesa, selezionare lo spazio segnato come unallocated (dal rettangolo in alto o dalla lista in basso, è lo stesso), poi dalla toolbar premere il pulsante . Dal pannello che appare, senza toccare le dimensioni, visto che tutto lo spazio sarà destinato a Linux, nella casella Create as: sceglieremo Extended Partition, poi possiamo premere il pulsante (Figura 33, «GParted: creazione di una partizione estesa»). Poi confermeremo l'operazione con il pulsante . Dopo la consueta richiesta di conferma, troveremo la nostra nuova partizione che occupa tutto lo spazio liberato dalla precedente operazione di riduzione (Figura 34, «GParted: la situazione con la nuova partizione»).
Come abbiamo detto, l'incongruenza è che la partizione appena creata,
hda3, è posizionata fisicamente fra
hda1 e hda2. Ora risolviamo il
problema: usciamo da GParted, usciamo dal desktop grafico,
e dal terminale del System Rescue CD lanciamo il comando fdisk:
#fdisk /dev/hda The number of cylinders for this disk is set to 1274. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):x(expert mode) Expert command (m for help):f(fix partition order) Done. Command (m for help):w(write) The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.#
Andiamo a spiegare cosa abbiamo fatto: dopo aver lanciato fdisk, siamo passati alla modalità esperto con il tasto x, poi abbiamo usato la funzione fix partition order con il tasto f, poi, ovviamente, abbiamo obbligato fdisk a scrivere i cambiamenti su disco usando il tasto w, altrimenti se si esce i cambiamenti sono persi.
Come ulteriore verifica possiamo impartire il comando:
#fdisk -l /dev/hda Disk /dev/sda: 10.4 GB, 10486808576 bytes 255 heads, 63 sectors/track, 1274 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 482 3871633+ 7 HPFS/NTFS /dev/hda2 483 1086 4851630 5 Extended /dev/hda3 1087 1274 1510110 c W95 FAT32 (LBA)#
e come possiamo vedere le tre partizioni ora hanno una corretta sequenza, sia fisica che logica.
Abbiamo terminato anche in questo caso.
Se abbiamo un secondo disco a disposizione, meglio ancora aggiunto apposta per Fedora, tutta la procedura vista fino ad ora non serve. Ovviamente a patto che il secondo disco abbia spazio a disposizione, sempre inteso come non partizionato, altrimenti occorre operare nello stesso modo, riducendo la partizione che occupa tutto il disco e recuperando lo spazio che serve.
Questo non deve farci dimenticare le regole più elementari di prudenza: un backup completo dei dati del computer è assolutamente obbligatorio.
Non lo ripeterò: uomo avvisato...