[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 45.   Installare GNU/Linux

La prima installazione di un sistema GNU/Linux è difficile quanto lo è installare qualunque altro sistema operativo che non si conosce. Infatti, ciò significa dover accettare che non si possono utilizzare gli strumenti consueti cui si può essere abituati da tanto tempo. In questo capitolo si fa riferimento all'installazione di un sistema GNU/Linux in un elaboratore x86 partendo da strumenti Dos, allo scopo di mostrare il problema in generale, nella situazione più difficile.

45.1   Scelta della distribuzione

Prima di poter installare un sistema GNU/Linux occorre procurarsi una distribuzione di questo sistema operativo. Le distribuzioni di sistemi GNU/Linux esistenti sono molte; ciò è sicuramente un sintomo positivo dell'importanza che questo sistema operativo ha. Tuttavia, per l'utente rimane il problema di scegliere.

È molto difficile consigliare in modo generalizzato una distribuzione particolare, perché nessuna può essere migliore delle altre in senso assoluto; ognuna interpreta a proprio modo le esigenze dell'utenza, ponendo l'accento su certe caratteristiche e trascurandone altre. Di sicuro, chi intende utilizzare GNU/Linux in modo sistematico farebbe bene a provarne alcune prima di decidere «definitivamente» quale offre per sé i vantaggi migliori.

In passato, la scelta di una distribuzione particolare era motivata dalla difficoltà con cui queste potevano essere ottenute; spesso si cominciava a utilizzare GNU/Linux con un CD-ROM allegato a un libro o a una rivista, dal momento che era un po' difficile lo scarico diretto da Internet. Oggi le riviste specializzate pubblicano con maggiore frequenza le distribuzioni GNU/Linux più comuni; inoltre è anche possibile acquistare tranquillamente con una carta di credito attraverso Internet, presso aziende specializzate nella masterizzazione di CD-ROM, a un prezzo molto contenuto. Vale la pena di citare qualche distribuzione storica, indicando alcune delle loro caratteristiche.

Tabella 45.1. Distribuzioni storiche degli anni 1990.

Nome Descrizione
Slackware La distribuzione GNU/Linux Slackware è stata la prima a essere relativamente «facile» da installare e in ciò ha il merito di avere contribuito alla diffusione di questo sistema operativo nei suoi primi anni di vita.
La caratteristica principale di questa distribuzione è di essere «spartana» come un sistema Unix tradizionale, introducendo però una gestione dei pacchetti (formato tar+gz), anche se primordiale rispetto a quanto fatto successivamente da altre distribuzioni.
Red Hat La distribuzione GNU/Linux Red Hat, nella seconda metà degli anni 1990 è stata una delle prime distribuzioni per utenti poco esperti di sistemi Unix, orientata all'uso grafico, che in particolare ha introdotto un proprio metodo di gestione dei pacchetti applicativi, in modo da renderne più facile l'installazione e la disinstallazione. Questi pacchetti sono distribuiti in archivi in formato RPM (Red Hat package manager), formato che è poi stato usato anche da altre distribuzioni.
Debian La distribuzione GNU/Linux Debian è realizzata attraverso il contributo di un gran numero di persone e tutto è organizzato per facilitare la loro coordinazione. Un aspetto molto importante della politica della distribuzione è l'attenzione alle licenze e ad altre restrizioni legali dei paesi occidentali, per cui i pacchetti, oltre che contenere sempre le informazioni sulla licenza, ricevono anche una classificazione di massima che consente di capire sommariamente il genere di libertà o di restrizioni che comporta l'installazione di questi.
Questa distribuzione è adatta agli utenti che hanno una buona conoscenza dei sistemi Unix e ha una gestione ottima dei pacchetti applicativi, attraverso l'uso di un proprio formato, con estensione .deb.
L'installazione iniziale può essere complessa per un principiante, ma ci sono molte varianti di questa distribuzione che organizzano un sistema di installazione alternativo più semplice, lasciando poi un sistema sostanzialmente compatibile con la distribuzione Debian standard.

45.2   Hardware x86

Come già accennato altrove in questo documento, le distribuzioni GNU/Linux fatte per l'hardware x86 possono funzionare solo con un microprocessore che abbia caratteristiche compatibili. Il problema più grande è invece la memoria RAM che dovrebbe essere di almeno 128 Mibyte per poter installare un sistema minimo; inoltre, mano a mano che GNU/Linux si evolve, i suoi eseguibili si appesantiscono e il sistema richiede sempre più risorse.

Teoricamente, è ancora possibile installare GNU/Linux senza X (senza il sistema grafico) avendo a disposizione meno memoria RAM, ma si tratta di un'operazione che diventa difficile. Se le circostanze costringono a tentare un'installazione con hardware molto limitato, conviene rivolgersi a edizioni particolari del sistema operativo, realizzate appositamente per questi scopi.

Prima di installare qualunque sistema operativo, sarebbe bene raccogliere le informazioni che si riescono ad avere sull'hardware installato; tuttavia, di solito l'hardware più recente può essere configurato in modo automatico tramite il firmware (il software incluso nell'hardware stesso, ovvero il BIOS) e il kernel Linux è in grado, quasi sempre, di individuarlo da solo. Eventualmente, le tabelle 45.2, 45.3 e 45.4, mostrano l'utilizzo più comune delle risorse da parte dei componenti più comuni.

Tabella 45.2. Utilizzo comune degli indirizzi di IRQ negli elaboratori di architettura x86.

IRQ Riservato Standard Eventuale
0 Timer
1 Tastiera
2/9 LPT3:
3 COM2: COM4:
4 COM1: COM3:
5 LPT2:
6 Unità di controllo dei dischetti
7 LPT1:
8 Orologio
10
11
12 Mouse PS/2
13 Coprocessore matematico
14 Unità di controllo ATA (IDE)
15 Unità di controllo ATA (IDE) secondaria

Tabella 45.3. Utilizzo comune dei canali DMA negli elaboratori di architettura x86.

Canale DMA Utilizzo normale Eventuale
1
2 unità di controllo dischetti (1 e 2)
3 Unità di controllo dischetti (3 e 4)
4 unità di controllo DMA

Tabella 45.4. Utilizzo comune degli indirizzi di comunicazione da 000016 a 03FF16 negli elaboratori di architettura x86.

Da A Utilizzo normale
000016 001F16 Unità di controllo DMA1
002016 003F16 PIC1 (Programmable interrupt controller)
004016 005F16 Timer
006016 006F16 Tastiera
007016 007F16 RTC (Real time clock)
008016 009F16 dma page reg
00A016 00BF16 PIC2 (Programmable interrupt controller)
00C016 00DF16 Unità di controllo DMA2
00E016 00EF16
00F016 00FF16 NPU (Coprocessore matematico)
010016 017616
017016 017716 ATA1 (unità di controllo secondaria dischi ATA)
017816 01EF16
01F016 01F716 ATA0 (unità di controllo primaria dischi ATA)
01F816 01FF16
020016 020F16
021016 021F16
022016 022F16
023016 023F16
024016 024F16
025016 025F16
026016 026F16
027016 027716
027816 027F16 LPT(2) (Porta stampante)
028016 028F16
029016 029F16
02A016 02AF16
02B016 02BF16
02C016 02CF16
02D016 02DF16
02E016 02E716
02E816 02EF16 COM4: (Porta seriale)
02F016 02F716
02F816 02FF16 COM2: (Porta seriale)
030016 031F16 Ethernet NE2000
032016 032F16
033016 033F16
034016 034F16
035016 035F16
036016 036F16
037016 037516 Unità di controllo dischetti (terza e quarta unità)
037616 037616 ATA1 (unità di controllo secondaria dischi ATA)
037716 037716
037816 037F16 LPT(1) (Porta stampante)
038016 038F16
039016 039F16
03A016 03AF16
03B016 03BF16
03C016 03CF16 EGA/VGA
03D016 03DF16 CGA/EGA/VGA nelle modalità video a colori
03E016 03E716
03E816 03EF16 COM3: (Porta seriale)
03F016 03F516 Unità di controllo dischetti (prima e seconda unità)
03F616 03F616 ATA0 (unità di controllo primaria dischi ATA)
03F716 03F716
03F816 03FF16 COM1: (Porta seriale)

Quando si hanno schede a 8 bit (quelle che utilizzano solo la prima parte di un alloggiamento ISA) si possono usare esclusivamente gli indirizzi di IRQ inferiori a 10.

Il caso delle porte parallele è un po' particolare: il sistema operativo Dos assegna i nomi LPT1:, LPT2: e LPT3: in base a una ricerca tra i possibili indirizzi di I/O. Vengono scanditi gli indirizzi 3BC16, 37816 e 27816. La prima porta a essere individuata diventa LPT1: e così di seguito.

45.3   Nomi dei dispositivi delle unità di memorizzazione

GNU/Linux utilizza dei nomi bene ordinati per i file di dispositivo, ma questi possono confondere chi proviene dall'esperienza Dos o MS-Windows. La tabella 45.5 mostra l'elenco di alcuni nomi di dispositivo riferiti a unità di memorizzazione.

Tabella 45.5. Elenco dei nomi di dispositivo utilizzati per le unità di memorizzazione.

Nome Descrizione Dos o MS-Windows
/dev/fd0 prima unità a dischetti A:
/dev/fd0u1440 prima unità a dischetti da 1 440 Kibyte A:
/dev/fd1 seconda unità a dischetti B:
/dev/fd1u1440 seconda unità a dischetti da 1 440 Kibyte B:
/dev/hda primo disco fisso ATA (IDE)
/dev/hdb secondo disco fisso (o CD-ROM) ATA (IDE)
/dev/hdc terzo disco fisso (o CD-ROM) ATA (IDE)
/dev/hdd quarto disco fisso (o CD-ROM) ATA (IDE)
/dev/sda primo disco SCSI o memoria esterna USB
/dev/sdb secondo disco SCSI o memoria esterna USB
/dev/sdc terzo disco SCSI o memoria esterna USB
...

Le unità di memorizzazione di massa, ad accesso diretto, che non rientrano nella categoria dei «dischetti» (o floppy), sono suddivise normalmente in partizioni, dove per fare riferimento a queste si aggiunge un numero alla fine del nome. Per esempio, /dev/hda1 è la prima partizione del primo disco ATA, /dev/sda2 è la seconda partizione del primo disco SCSI o della prima memoria USB.

La distinzione tra i nomi usati per le partizioni primarie e le partizioni logiche contenute in quelle estese, può creare confusione ulteriore. In generale, conviene non utilizzare partizioni logiche, se non c'è una necessità reale. Volendo prendere come esempio il primo disco fisso ATA, le prime quattro partizioni normali (primarie ed estese) hanno nomi che vanno da /dev/hda1 a /dev/hda4, mentre le partizioni logiche utilizzano nomi da /dev/hda5 in poi.

45.4   Preparazione

Prima di poter installare GNU/Linux occorre che sia pronto l'elaboratore che deve accoglierlo; solitamente, la cosa più importante da sistemare è l'organizzazione delle partizioni delle unità di memorizzazione di massa ad accesso diretto (di solito i dischi fissi).

Il principiante non può pretendere di fare cose troppo complesse, pertanto è necessario che disponga di un elaboratore da dedicare completamente al nuovo sistema operativo. D'altra parte, l'utente più preparato, che ritiene di avere raggiunto l'abilità necessaria a installare il nuovo sistema operativo facendolo convivere con un altro che risulta già installato, non può considerarsi infallibile e deve premunirsi con delle copie di sicurezza preventive.

Il kernel Linux può essere predisposto per la gestione di una grande quantità di file system; tuttavia, fino a quando non si raggiunge l'esperienza necessaria, è bene installare il sistema GNU/Linux nel suo file system standard, noto con il nome Second-extended, preferendo possibilmente la versione più avanzata di tale tipo di file system (attualmente dovrebbe trattarsi del tipo Ext3).

45.4.1   Dischetti di partenza e file-immagine

Prima di iniziare l'installazione di una distribuzione GNU/Linux qualsiasi, occorre avere un modo di avviare il programma di installazione. Ci potrebbero essere dei dischetti, dei CD (anche piccoli, come quelli formato tessera) o dei DVD, delle memorie solide esterne (come quelle USB), o qualunque altro tipo di sistema di memorizzazione rimovibile. Qualunque sia il tipo di unità di memorizzazione previsto, di norma vengono distribuiti dei file-immagine, ovvero file che consentono la riproduzione esatta del disco o dell'unità che rappresentano, disponendo però degli strumenti necessari per farlo.

Se si devono utilizzare dei dischetti magnetici tradizionali, questi devono essere privi di difetti. Anche se in fase di inizializzazione non si riscontrano errori, può darsi che i dischetti si mostrino difettosi durante il loro utilizzo. Ciò potrebbe manifestarsi attraverso delle segnalazioni di vario genere, oppure il sistema potrebbe bloccarsi durante l'avvio. In tali casi conviene tentare nuovamente utilizzando dischetti differenti.

Generalmente, quando si devono utilizzare unità di memorizzazione di capacità ridotta, per avviare un sistema GNU/Linux minimo, può essere necessario il caricamento successivo di più unità. Per esempio, quando si tratta di dischetti magnetici tradizionali, si tratta spesso di due o più dischetti: uno contenente essenzialmente il kernel e il secondo (eventualmente con i successivi) contenente i programmi.

Spesso, i sistemi GNU/Linux minimi, realizzati per installare un sistema completo o per fare semplicemente della manutenzione al sistema già installato, sono organizzati in modo da copiare inizialmente il proprio file system nella memoria centrale (in quello che è noto come disco RAM). In tal modo, una volta avviato un sistema GNU/Linux del genere, è possibile rimuovere l'unità di memorizzazione usata e rimpiazzarla con altre (per esempio per procedere all'installazione). Tra l'altro, questo meccanismo del file system nella memoria centrale diventa indispensabile quando l'avvio richiede l'utilizzo successivo di più unità di memorizzazione.

Per la riproduzione di dischetti magnetici tradizionali, partendo dai file-immagine relativi, se si dispone di un sistema Dos o MS-Windows si usa generalmente il programma RAWRITE.EXE. Si osservi l'esempio seguente in cui si riproduce un dischetto a partire dal file AVVIO.IMG.

C:> RAWRITE AVVIO.IMG A:[Invio]

Se si ha a disposizione un sistema GNU/Linux da qualche parte, si possono utilizzare due modi diversi. Si osservino gli esempi seguenti in cui si riproduce un dischetto da 1 440 Kibyte a partire dal file avvio.img.

cp avvio.img /dev/fd0[Invio]

dd if=avvio.img of=/dev/fd0 bs=1440k[Invio]

Eventualmente, la sezione 171 mostra un elenco con più possibilità.

Se invece i file-immagine si riferiscono a CD o DVD, occorre usare strumenti appropriati per la masterizzazione.

45.5   Partizioni e file system

GNU/Linux può essere installato in una unità di memorizzazione di massa ad accesso diretto, utilizzando una sola o più partizioni. Inoltre, nella maggior parte dei casi ci si deve prendere cura di creare una partizione da dedicare allo scambio della memoria virtuale (swap).

La partizione di scambio è una partizione come le altre, che viene identificata e inizializzata in modo diverso. In generale è conveniente utilizzare una dimensione pari ad almeno la stessa quantità di memoria RAM esistente, tenendo conto che una dimensione maggiore della necessità effettiva non comporta inconvenienti, a parte lo spreco di spazio nella memoria di massa.

Quando come memoria di massa si utilizzano dischi ATA (IDE), si pone il problema della posizione in cui si trovano il kernel e gli altri file utilizzati per l'avvio. Questi dovrebbero trovarsi fisicamente nella parte iniziale del disco, in base ai limiti che può avere il BIOS degli elaboratori x86. Nel caso di BIOS molto vecchi, è necessario che i file utilizzati per l'avvio si trovino entro il 1 024-esimo cilindro; con BIOS più recenti esiste ugualmente un limite, anche se più avanzato.

Dal momento che se una partizione termina oltre un certo limite di riferimento, non ci può essere la certezza che certi file si trovino sicuramente prima di quella posizione, per evitare dubbi, qualunque sia il tipo di memoria di massa, si crea normalmente una partizione apposita, delle sole dimensioni necessarie a contenere i file utilizzati per l'avvio (di solito si tratta di tutto ciò che è contenuto nella directory /boot/), all'inizio dell'unità.

45.5.1   Suddivisione del file system su più partizioni

Il file system del sistema GNU/Linux, così come accade per gli altri sistemi Unix, può essere scomposto in più parti residenti fisicamente in partizioni diverse, unite assieme attraverso vari innesti. Ci possono essere diverse buone ragioni per fare questo, in particolare le seguenti:

Segue un elenco delle possibilità tipiche di scomposizione di un file system GNU/Linux. L'argomento è trattato anche nel capitolo 169.

In aggiunta a questi casi fondamentali, si possono valutare anche le possibilità seguenti.

45.6   Moduli

Le distribuzioni GNU/Linux comuni utilizzano la tecnica della scomposizione del kernel in moduli, in modo da ridurre le dimensioni del blocco principale del kernel e da utilizzare meno memoria centrale, rispetto a quella che si userebbe con un kernel monolitico completo.

Un sistema GNU/Linux abbastanza completo, anche se può essere avviato da un CD o da un DVD, dovrebbe essere in grado di riconoscere i componenti hardware presenti e di caricare in modo appropriato i moduli necessari a gestirli. Tuttavia, quando questo meccanismo fallisce, oppure manca del tutto, ci può essere la necessità di caricare manualmente i moduli, attraverso dei comandi specifici. Eventualmente, in presenza di hardware particolare o molto vecchio, diventa necessario, oltre che indicare il modulo da caricare, specificare dei parametri, in base alle caratteristiche dell'hardware stesso. Eventualmente, nel capitolo 74 sono elencati alcuni moduli che richiedono dei parametri.

45.7   Aggiornamento di un'installazione precedente

Le distribuzioni GNU/Linux che utilizzano un sistema di gestione dei pacchetti più o meno raffinato, consentono teoricamente di aggiornare un'installazione precedente. In molti casi questo costituisce un'insidia, perché alle volte l'aggiornamento fallisce e infine si resta con un sistema zoppicante oppure non funzionante del tutto.

Se si intende utilizzare veramente la possibilità di aggiornare un'installazione precedente, è indispensabile fare prima una copia di sicurezza, a meno di avere una fiducia illimitata nei confronti della distribuzione che si utilizza.

45.8   Caricamento del sistema operativo dopo l'installazione

Di solito, l'ultima cosa fondamentale da definire, prima di concludere definitivamente il procedimento di installazione, è il modo in cui si deve avviare il sistema operativo. Spesso viene proposto di predisporre un dischetto di avvio di emergenza specifico per la propria installazione e anche di configurare e installare il sistema di avvio nell'unità di memorizzazione che ospita l'installazione (di solito è il disco fisso), attraverso programmi come GRUB o LILO (quando si tratta di architettura x86).

La creazione di un dischetto di avvio di emergenza è molto importante e non dovrebbe essere saltata se questa è disponibile, specialmente le prime volte. Oltre a ciò, è bene tenere presente che la configurazione che si ottiene con GRUB o LILO, attraverso il programma di installazione, potrebbe essere piuttosto limitata, quindi il dischetto di avvio è sempre una buona cosa per cominciare bene.

Quando è il turno di configurare il sistema di avvio nell'unità di memorizzazione di massa, potrebbe essere presentata solo la scelta di installare il settore di avvio nell'MBR, cioè il primo settore dell'intera unità, oppure nel primo settore della partizione principale in cui risiede GNU/Linux. Purtroppo ci sono situazioni in cui queste due possibilità sono insufficienti, per quello che si vuole fare, quindi conviene utilizzare il dischetto di avvio per poter far partire il sistema e configurare successivamente il sistema di avvio come si vuole.

Nella situazione più semplice, si lascia che il programma responsabile dell'installazione del sistema di avvio modifichi il primo settore dell'unità di memorizzazione (MBR), in modo da dare a questo il controllo dell'avvio di GNU/Linux e degli altri sistemi operativi eventuali. Se per qualche motivo ciò non può essere fatto, l'installazione alternativa nel primo settore della partizione contenente GNU/Linux richiede poi di affidare a un altro programma (un altro sistema di avvio) l'avvio di quel settore.

I programmi usati per installare e configurare un sistema di avvio, devono essere in grado di passare al kernel Linux alcuni parametri, di solito per consentire l'individuazione di dispositivi particolari o per richiedere una modalità di funzionamento speciale. Il programma di installazione del sistema di avvio potrebbe richiedere l'indicazione di questi parametri aggiuntivi, che però di solito non vanno specificati.

La parte xi descrive la gestione di un sistema di avvio, entrando nel dettaglio dei programmi usati comunemente per questo scopo.

45.9   Strumenti e concetti generali

L'installazione di una distribuzione GNU/Linux può essere preceduta da una preparazione delle partizioni attraverso un sistema di emergenza avviato da dischetti, da CD o da altre unità di memorizzazione rimovibili. Naturalmente, questo sistema GNU/Linux di emergenza avviato provvisoriamente, deve essere dotato di una raccolta minima di programmi essenziali. Spesso, le stesse distribuzioni GNU/Linux comuni offrono strumenti del genere.

Nella parte x vengono descritti alcuni sistemi GNU/Linux avviabili da CD o da DVD, che si prestano ottimamente per operazioni di manutenzione generali o anche solo per la preparazione delle partizioni, come viene descritto in questo capitolo.

Le distribuzioni più comuni sono in grado di gestire tutto all'interno delle procedure di installazione, ma spesso, in questo modo, si ignora il senso di ciò che si fa. Prima di installare GNU/Linux la prima volta, occorrerebbe apprendere l'uso dei programmi per la creazione e la modifica delle partizioni; inoltre è opportuno conoscere il modo in cui queste possono essere inizializzate.

45.9.1   Preparazione manuale delle partizioni

Il programma principale per la creazione delle partizioni è fdisk, con un'impostazione elementare, a riga di comando. Contrariamente a ciò che si potrebbe pensare, un programma del genere è il più adatto al principiante, perché non dà nulla per scontato, mentre altri programmi più elaborati presumono che alcuni concetti sulle partizioni dei dischi siano già chiari.

Qui viene mostrato l'uso del vecchio fdisk,(1) con un esempio completo, dove l'unità di memorizzazione di massa è un disco ATA. Anche se questo programma sta scomparendo dai dischi di installazione delle distribuzioni, resta quello più semplice da descrivere; inoltre l'apprendimento del suo utilizzo facilita la comprensione degli altri programmi alternativi.

fdisk [dispositivo]

Il programma fdisk riceve come argomento il nome del file di dispositivo che si riferisce all'unità di memorizzazione nel suo complesso, dal momento che agisce proprio sulle partizioni e non all'interno di queste ultime. Supponendo di lavorare sul primo disco fisso ATA (IDE), all'interno del quale è presente una partizione Dos-FAT ridotta per fare spazio a GNU/Linux, si deve avviare fdisk nel modo seguente:

fdisk /dev/hda[Invio]

Il programma fdisk risponde mostrando un invito particolare:

Command (m for help): 

Il programma fdisk accetta comandi composti da una sola lettera e per vederne un breve promemoria basta utilizzare il comando m.

Command (m for help): m[Invio]

Command action                                                                  
   a   toggle a bootable flag                                                   
   b   edit bsd disklabel                                                       
   c   toggle the dos compatibility flag                                        
   d   delete a partition                                                       
   l   list known partition types                                               
   m   print this menu                                                          
   n   add a new partition                                                      
   o   create a new empty DOS partition table                                   
   p   print the partition table                                                
   q   quit without saving changes                                              
   s   create a new empty Sun disklabel                                         
   t   change a partition's system id                                           
   u   change display/entry units                                               
   v   verify the partition table                                               
   w   write table to disk and exit                                             
   x   extra functionality (experts only)                                       

La prima cosa da fare è accertarsi della situazione iniziale della propria unità di memorizzazione; a questo proposito il comando p permette di visualizzare l'elenco delle partizioni esistenti:

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1    *           1      700000   352799968+   7  HPFS/NTFS              
/dev/hda2           700001     1572864   439923456    b  W95 FAT32              

Si vogliono eliminare entrambe le partizioni, cominciando dalla prima:

Command (m for help): d[Invio]

Partition number (1-4): 1[Invio]

A questo punto resta solo la seconda partizione:

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda2           700001     1572864   439923456    b  W95 FAT32              

Si elimina anche la seconda partizione, ma in tal caso non viene richiesto di indicare quale eliminare, in quanto ne rimane una sola:

Command (m for help): d[Invio]

Selected partition 2

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 

Si procede definendo una partizione iniziale per l'avvio del sistema:

Command (m for help): n[Invio]

Command action
   e   extended
   p   primary partition (1-4)

In questo caso si seleziona un tipo di partizione primaria.

p[Invio]

Partition number (1-4): 

Trattandosi della prima partizione, si inserisce il numero uno.

Partition number (1-4): 1[Invio]

Viene richiesta quindi l'indicazione del primo cilindro a partire dal quale deve iniziare la nuova partizione. Vengono già proposti il valore minimo e quello massimo.

First cylinder (1-1572864, default 1): 1[Invio]

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione minima della partizione. In questo caso si indica come ultimo cilindro proprio il 1 023-esimo, per garantire l'accessibilità dei file alle funzioni del BIOS:

Last cylinder or +size or +sizeM or +sizeK (1-1572864, default 1572864): 1023[Invio]

Per visualizzare il risultato basta utilizzare il solito comando p.

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  

Si vuole aggiungere una partizione molto grande, con lo scopo di ospitare tutto il resto del sistema GNU/Linux, compresi i dati personali, lasciando un po' di spazio alla fine per una partizione di scambio:

Command (m for help): n[Invio]

Command action
   e   extended
   p   primary partition (1-4)

Anche in questo caso si seleziona un tipo di partizione primaria.

p[Invio]

Partition number (1-4): 

Trattandosi della seconda partizione, si inserisce il numero due.

Partition number (1-4): 2[Invio]

Il cilindro iniziale viene lasciato al valore predefinito:

First cylinder (1024-1572864, default 1024): [Invio]

Using default value 1024

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione approssimativa della partizione. In questo caso si richiede una dimensione di circa 810 Mibyte.

Last cylinder or +size or +sizeM or +sizeK (1024-1572864, default 1572864): \
  \+810G
[Invio]

Ecco il risultato:

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  
/dev/hda2             1024     1570499   791015904   83  Linux                  

Come già accennato, nella parte rimanente dell'unità, si vuole inserire una partizione di scambio; per la precisione, si decide di indicarla come quarta partizione primaria:

Command (m for help): n[Invio]

Command action
   e   extended
   p   primary partition (1-4)

p[Invio]

Partition number (1-4): 4

First cylinder (1570500-1572864, default 1570500): [Invio]

Using default value 1570500

Last cylinder or +size or +sizeM or +sizeK (1570500-1572864, default 1572864): [Invio]

Using default value 1572864

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  
/dev/hda2             1024     1570499   791015904   83  Linux                  
/dev/hda4          1570500     1572864     1191960   83  Linux

Come si vede, anche in questo caso è stata aggiunta una partizione di tipo Linux-nativa, che è adatta ad accogliere un file system Second-extended (Ext2 o Ext3) e non lo scambio della memoria, quindi occorre cambiare il tipo di identificazione della partizione:

Command (m for help): t[Invio]

Partition number (1-4): 2[Invio]

Hex code (type L to list codes): 

Come suggerito, conviene visualizzare l'elenco dei codici.

Hex code (type L to list codes): L[Invio]

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris         
 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT- 
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT- 
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT- 
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx          
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data     
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / . 
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility    
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt          
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access      
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O         
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor       
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs         
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT         
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/ 
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b 
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor       
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor       
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary   
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep         
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT             
1c  Hidden W95 FAT3 75  PC/IX                                                   

Il codice di una partizione di scambio è 8216 e così viene indicato:

Hex code (type L to list codes): 82[Invio]

Changed system type of partition 4 to 82 (Linux swap / Solaris)

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  
/dev/hda2             1024     1570499   791015904   83  Linux                  
/dev/hda4          1570500     1572864     1191960   83  Linux swap / Solaris

Per registrare definitivamente le variazioni apportate si utilizza il comando w. Se invece si preferisce rinunciare, basta utilizzare il comando q che si limita a concludere l'esecuzione del programma annullando le operazioni svolte.

Command (m for help): w[Invio]

The partition table has been altered!
...
Syncing disks.
...

In una situazione reale è possibile che si vogliano utilizzare più partizioni per GNU/Linux. In questo senso potrebbe essere necessario l'utilizzo di partizioni estese, all'interno delle quali collocare varie partizioni logiche. Supponendo di avere un «pentimento» e di volere trasformare la partizione /dev/hda2 in partizione estesa e di volervi collocare al suo interno due partizioni logiche per qualche scopo, si potrebbe agire nel modo che viene illustrato di seguito:

Command (m for help): d[Invio]

Partition number (1-4): 2[Invio]

Command (m for help): n[Invio]

Command action
   e   extended
   p   primary partition (1-4)

In questo caso si tratta di una partizione estesa da suddividere e il procedimento è identico a quello per la creazione di una partizione primaria:

e[Invio]

Partition number (1-4): 2[Invio]

First cylinder (1024-1572864, default 1024): [Invio]

Using default value 1024

Last cylinder or +size or +sizeM or +sizeK (1024-1570499, default 1570499): [Invio]

Using default value 1570499

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  
/dev/hda2             1024     1570499   791015904   83  Extended
/dev/hda4          1570500     1572864     1191960   83  Linux swap / Solaris

Quindi, si deve scomporre la partizione estesa. Si suppone di volere creare due partizioni logiche; una di circa 100 Gibyte e l'altra dello spazio rimanente.

Command (m for help): n[Invio]

Command action
   l   logical (5 or over)
   p   primary partition (1-4)

Si deve scegliere la lettera «l», per richiedere la creazione di una partizione logica.

l[Invio]

A differenza di quanto visto per le partizioni primarie, non viene più chiesto il numero della partizione:

First cylinder (1024-1570499, default 1024): [Invio]

Using default value 1024

Last cylinder or +size or +sizeM or +sizeK (1024-1570499, default 1570499): \
  \+100G
[Invio]

Command (m for help): n[Invio]

Command action
   l   logical (5 or over)
   p   primary partition (1-4)

l[Invio]

First cylinder (194787-1570499, default 194787): [Invio]

Using default value 194787

Last cylinder or +size or +sizeM or +sizeK (194787-1570499, default 1570499): [Invio]

Using default value 1570499

Command (m for help): p[Invio]

Disk /dev/hda: 811.7 GB, 811748818944 bytes                                                   
16 heads, 63 sectors/track, 1572864 cylinders                                   
Units = cylinders of 1008 * 512 = 516096 bytes                                  
                                                                                
    Device Boot      Start         End      Blocks   Id  System                 
/dev/hda1                1        1023      515560+  83  Linux                  
/dev/hda2             1024     1570499   791015904   83  Extended
/dev/hda4          1570500     1572864     1191960   83  Linux swap / Solaris
/dev/hda5             1024      194786    97656520+  83  Linux                  
/dev/hda6           194787     1570499   693359320+  83  Linux                  

45.9.2   Inizializzazione manuale delle partizioni e attivazione delle partizioni di scambio per la memoria virtuale

In generale, la procedura che si occupa di installare la distribuzione GNU/Linux, una volta definite le partizioni, si occupa anche di inizializzarle e di attivare lo scambio della memoria virtuale. In alcuni casi potrebbe essere conveniente fare tutto questo a mano. Seguendo l'esempio già visto, in cui è stata creata una partizione corrispondente al file di dispositivo /dev/hda4 per lo scambio della memoria virtuale e due partizioni corrispondenti a /dev/hda1 e /dev/hda2 e per l'installazione del sistema, si può procedere come viene mostrato di seguito.

Di solito conviene cominciare con le partizioni di scambio; per la loro inizializzazione si utilizza mkswap:(2)

mkswap -c /dev/hda4[Invio]

Se necessario, di solito quando si ha a disposizione poca memoria centrale, è possibile attivare subito l'utilizzo di questa partizione di scambio appena creata, per estendere la memoria virtuale, senza attendere che lo faccia la procedura di installazione. Ciò si ottiene attraverso il programma swapon.

swapon /dev/hda4[Invio]

Dopo le partizioni di scambio, si può passare a quelle utilizzate per la realizzazione del file system, cioè quelle utilizzate per installarvi al loro interno il sistema operativo. Le partizioni di tipo Linux-nativa devono essere inizializzate attraverso il programma mkfs.ext3:(3)

mkfs.ext3 -c /dev/hda1[Invio]

mkfs.ext3 -c /dev/hda2[Invio]

L'inizializzazione di una partizione deve riguardare solo le partizioni primarie o quelle logiche. Non è possibile inizializzare una partizione estesa, con l'intenzione di inizializzare simultaneamente tutte le partizioni logiche.

Al termine, le prime due partizioni contengono un file system Second-extended, in questo caso precisamente Ext3.

45.10   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) util-linux: fdisk   GNU GPL

2) util-linux: disk-utils   GNU GPL

3) e2fsprogs   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome installare_gnu_linux.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!