[indice generale] [precedente] [successivo] [indice analitico] [note introduttive]

5. Installare GNU/Linux

L'installazione di GNU/Linux è difficile quanto lo è installare un nuovo sistema operativo; ovvero, così come dover accettare il fatto che non si possono utilizzare gli strumenti consueti cui si era abituati da tanto tempo. In questo capitolo si fa riferimento all'installazione di GNU/Linux in un PC (i386 o superiore) partendo da strumenti Dos.

5.1 Scelta della distribuzione

Prima di poter installare GNU/Linux occorre procurarsi una qualche distribuzione di questo sistema operativo. Le distribuzioni di GNU/Linux esistenti sono molte; ciò è sicuramente un sintomo positivo dell'importanza che questo sistema sta avendo. Il problema per l'utente sta nello scegliere.

È molto difficile consigliare in modo generalizzato una distribuzione particolare, perché nessuna è migliore delle altre; ognuna interpreta a suo 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 quale offre per sé i vantaggi migliori.

In passato, la scelta di una distribuzione rispetto alle altre 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, e di sicuro era ed è improbabile lo scarico diretto da Internet. Oggi GNU/Linux si può acquistare tranquillamente con una carta di credito attraverso Internet, presso aziende specializzate nella masterizzazione di CD-ROM, a un prezzo medio di 2 USD (dollari USA) per CD-ROM.

Vale la pena di citare le distribuzioni più comuni, indicandone alcune delle caratteristiche.

5.1.1 Slackware

La distribuzione GNU/Linux Slackware è realizzata da Patrick J. Volkerding ed è ottenibile presso l'URI http://metalab.unc.edu/pub/Linux/distributions/slackware/, oltre che dai vari siti speculari e dalle varie riproduzioni su CD-ROM. Si tratta della prima distribuzione GNU/Linux relativamente «facile» da installare e in ciò ha il merito di avere contribuito alla sua diffusione nei primi anni di vita di questo sistema operativo.

Vantaggi:

è una distribuzione adatta agli utenti che hanno una buona conoscenza dei sistemi Unix;

l'utente esperto può installare GNU/Linux anche in sistemi con particolare penuria di risorse (poca memoria, poco spazio nel disco fisso);

può essere riprodotta su dischetti da 1440 Kbyte;

dispone di una buona quantità di immagini di dischetti di avvio a seconda dei dispositivi di memorizzazione e di rete da gestire;

permette l'installazione su un filesystem UMSDOS, cioè su una partizione già utilizzata per il Dos;

I nomi dei file contenenti i vari pacchetti da installare rispettano lo standard 8.3 del Dos e del filesystem dei CD-ROM (ISO 9660).

Svantaggi:

l'installazione è un po' complicata e tende a scoraggiare l'utente inesperto;

non dispone di un sistema efficace per la gestione degli aggiornamenti: si rischia spesso di lasciare in giro file che non servono più;

i problemi della sicurezza non sono affrontati in modo approfondito.

5.1.2 RedHat

La distribuzione GNU/Linux RedHat è ottenibile presso l'URI http://metalab.unc.edu/pub/Linux/distributions/redhat/current/, oltre che dai vari siti speculari e dalle varie riproduzioni su CD-ROM.

Vantaggi:

è adatta agli utenti con poca conoscenza dei sistemi Unix -- eventualmente può essere scelta una modalità di installazione semiautomatica, in cui in cui l'utente è sollevato dall'onere di scegliere i pacchetti applicativi;

le immagini dei dischetti da utilizzare per l'avvio sono poche e non si pongono tanti problemi di scelta;

è multipiattaforma, essendo disponibili versioni alternative e uniformi per le architetture principali;

l'installazione può utilizzare diverse fonti, tra cui anche l'accesso diretto a un server FTP;

i pacchetti che compongono la distribuzione sono in formato RPM (RedHat Package Manager) in modo da facilitare l'installazione, la disinstallazione e l'aggiornamento dei programmi;

al termine dell'installazione, il sistema ha già una buona configurazione di partenza, completa di piccoli accorgimenti per gli utenti meno esperti.

Svantaggi:

la versione pubblicata direttamente dalla RedHat contiene alcune applicazioni commerciali per le quali è consentita una sola installazione, e se si vuole installare GNU/Linux su più elaboratori, occorre fare attenzione a non installare questi programmi;

non è possibile installare la distribuzione a partire da dischetti;

alcuni degli strumenti realizzati da RedHat per facilitare la configurazione del sistema, sono disponibili attualmente solo in versione grafica, cosa che richiede l'installazione del sistema grafico X;

mano a mano che la tecnologia si evolve, il supporto a hardware vecchio viene a mancare da parte del programma di installazione.

5.1.3 Debian

La distribuzione GNU/Linux Debian è ottenibile presso l'URI ftp://ftp.debian.org/pub/debian/, oltre che dai vari siti speculari e dalle varie riproduzioni su CD-ROM.

Questa distribuzione è realizzata da un gran numero di volontari che non hanno alcun interesse commerciale nel compimento di tale opera. Per questo, la distribuzione Debian è molto attenta agli aspetti che riguardano il software libero, tanto che i principi secondo i quali sono ammessi gli applicativi nella distribuzione sono stati usati come la base per la definizione dell'Open Source.

Vantaggi:

è adatta agli utenti che hanno una buona conoscenza dei sistemi Unix;

l'installazione può utilizzare diverse fonti, tra cui anche l'accesso diretto a un server FTP;

i pacchetti che compongono la distribuzione sono in formato Debian (.deb), cosa che semplifica l'installazione, la disinstallazione e l'aggiornamento dei programmi;

Svantaggi:

la procedura di installazione richiede un'ottima conoscenza dell'organizzazione della distribuzione stessa e di GNU/Linux in generale, e sotto questo aspetto, per l'utilizzatore inesperto può essere anche più scoraggiante della distribuzione Slackware;

il programma che guida nell'installazione dei pacchetti è complicato da utilizzare.

5.1.4 SuSE

La distribuzione GNU/Linux SuSE è ottenibile presso l'URI ftp://ftp.suse.com/pub/SuSE-Linux/, oltre che dai vari siti speculari e dalle varie riproduzioni su CD-ROM.

La distribuzione SuSE è nata come una variante tedesca della distribuzione Slackware. In questo senso, anche oggi si notano alcune affinità con quella distribuzione, anche se utilizza attualmente il sitema RPM per la gestione dei pacchetti software.

Vantaggi:

è adatta agli utenti con poca conoscenza dei sistemi Unix;

le immagini dei dischetti da utilizzare per l'avvio sono molte, consentendo l'utilizzo di una grande varietà di hardware, anche se basta generalmente l'immagine standard predefinita;

l'installazione può utilizzare diverse fonti, tra cui anche l'accesso diretto a un server FTP;

il programma di installazione e di configurazione è molto raffinato, pur senza richiedere l'utilizzo della grafica con X;

i pacchetti che compongono la distribuzione sono in formato RPM, semplificando così l'installazione, la disinstallazione e l'aggiornamento dei programmi;

al termine dell'installazione, il sistema ha già una buona configurazione di partenza.

Svantaggi:

la versione pubblicata direttamente dalla SuSE contiene alcune applicazioni commerciali per le quali è consentita una sola installazione, e se si vuole installare GNU/Linux su più elaboratori, occorre fare attenzione a non installare questi programmi;

non è possibile installare la distribuzione a partire da dischetti.

5.2 Riproduzioni economiche di distribuzioni GNU/Linux

Le distribuzioni commerciali di GNU/Linux, come RedHat e SuSE, sono vendute direttamente dalle rispettive case produttrici, assieme a documentazione specifica e ad assistenza di vario tipo. Esiste però la possibilità di procurarsi queste e altre distribuzioni GNU/Linux a prezzi più convenienti da aziende specializzate nella masterizzazione, che operando legalmente, prelevano il materiale da Internet e lo distribuiscono senza offrire alcun supporto tecnico.

Le aziende seguenti riproducono CD-ROM a un prezzo medio di 2 USD per unità.

Cheapbytes http://www.cheapbytes.com/

Linux Systems Labs http://www.lsl.com/

Linux Mall http://www.LinuxMall.com/

Eventualmente, si può dare un'occhiata anche a http://www.linux.org/vendors/

5.3 Requisiti hardware dei PC

Come già accennato altrove in questo documento, le distribuzioni GNU/Linux fatte per l'hardware dei PC possono funzionare solo con un microprocessore i386 o superiore, anche sx va bene nella maggior parte dei casi. Il problema più grande è invece la memoria RAM che deve essere di almeno 8 Mbyte per poter installare un sistema minimo e senza il sistema grafico X. Mano a mano che GNU/Linux si evolve, i suoi eseguibili si appesantiscono e il sistema richiede sempre più risorse. Questo significa che, allo stato attuale, una configurazione minima ragionevole richiede un 486-66 con almeno 16 Mbyte di memoria RAM.

Teoricamente, è ancora possibile installare GNU/Linux senza X avendo a disposizione solo 6 Mbyte di memoria RAM, ma si tratta di un'operazione difficile. Se le circostanze costringono a tentare un'installazione del genere, conviene accontentarsi di una distribuzione GNU/Linux più vecchia, possibilmente una di quelle che utilizzavano il kernel 1.0.x, o comunque con binari a.out. Queste vecchie distribuzioni si trovano ancora abbinate ai primi libri su GNU/Linux.

5.4 Inventario dell'hardware

Prima di installare qualunque sistema operativo, è sempre necessario raccogliere tutte le informazioni che si riescono ad avere sull'hardware installato. Le tabelle 5.1, 5.2 e 5.3 mostrano l'utilizzo più comune delle risorse da parte dei componenti più diffusi. Questo tipo di inventario, serve anche per determinare quali siano le risorse disponibili nel momento in cui si vuole aggiungere un nuovo componente.

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 IDE
15 Unità di controllo IDE secondario

Tabella 5.1: Utilizzo comune degli indirizzi di IRQ negli elaboratori di architettura i386.

Indirizzo esadecimale Utilizzo normale
da 0x0000 a 0x001f Unità di controllo DMA1
da 0x0020 a 0x003f PIC1 (Programmable Interrupt Controller)
da 0x0040 a 0x005f Timer
da 0x0060 a 0x006f Tastiera
da 0x0070 a 0x007f RTC (Real Time Clock)
da 0x0080 a 0x009f dma page reg
da 0x00a0 a 0x00bf PIC2 (Programmable Interrupt Controller)
da 0x00c0 a 0x00df Unità di controllo DMA2
da 0x00e0 a 0x00ef
da 0x00f0 a 0x00ff NPU (Coprocessore matematico)
da 0x0100 a 0x0176
da 0x0170 a 0x0177 IDE1 (unità di controllo secondaria dischi IDE)
da 0x0178 a 0x01ef
da 0x01f0 a 0x01f7 IDE0 (unità di controllo primario dischi IDE)
da 0x01f8 a 0x01ff
da 0x0200 a 0x020f
da 0x0210 a 0x021f
da 0x0220 a 0x022f
da 0x0230 a 0x023f
da 0x0240 a 0x024f
da 0x0250 a 0x025f
da 0x0260 a 0x026f
da 0x0270 a 0x0277
da 0x0278 a 0x027f LPT(2) (Porta stampante)
da 0x0280 a 0x028f
da 0x0290 a 0x029f
da 0x02a0 a 0x02af
da 0x02b0 a 0x02bf
da 0x02c0 a 0x02cf
da 0x02d0 a 0x02df
da 0x02e0 a 0x02e7
da 0x02e8 a 0x02ef COM4 (Porta seriale)
da 0x02f0 a 0x02f7
da 0x02f8 a 0x02ff COM2 (Porta seriale)
da 0x0300 a 0x031f Ethernet NE2000
da 0x0320 a 0x032f
da 0x0330 a 0x033f
da 0x0340 a 0x034f
da 0x0350 a 0x035f
da 0x0360 a 0x036f
da 0x0370 a 0x0375 Unità di controllo dischetti (terzo e quarto floppy)
da 0x0376 a 0x0376 IDE1 (unità di controllo secondaria dischi IDE)
da 0x0377 a 0x0377
da 0x0378 a 0x037f LPT(1) (Porta stampante)
da 0x0380 a 0x038f
da 0x0390 a 0x039f
da 0x03a0 a 0x03af
da 0x03b0 a 0x03bf
da 0x03c0 a 0x03cf EGA/VGA
da 0x03d0 a 0x03df CGA/EGA/VGA nelle modalità video a colori
da 0x03e0 a 0x03e7
da 0x03e8 a 0x03ef COM3 (Porta seriale)
da 0x03f0 a 0x03f5 Unità di controllo dischetti (primo e secondo floppy)
da 0x03f6 a 0x03f6 IDE0 (unità di controllo primaria dischi IDE)
da 0x03f7 a 0x03f7
da 0x03f8 a 0x03ff COM1 (Porta seriale)

Tabella 5.2: Utilizzo comune degli indirizzi di comunicazione da 0x000 a 0x3ff negli elaboratori di architettura i386.

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 5.3: Utilizzo comune dei canali DMA negli elaboratori di architettura i386.

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 0x3bc, 0x378 e 0x278. La prima porta a essere individuata diventa LPT1 e così di seguito.

5.5 Preparazione

Prima di poter installare GNU/Linux occorre che sia pronto l'elaboratore che dovrà accoglierlo. Se è già stato installato il Dos, con o senza MS-Windows, vale forse la pena di conservarlo fino a quando si sarà diventati completamente indipendenti da quell'ambiente.

5.5.1 Filesystem Second-extended e UMSDOS

Quando si installa GNU/Linux si hanno in pratica due possibilità fondamentali per quanto riguarda la destinazione: l'utilizzo di un filesystem Second-extended (Ext2) in una partizione dedicata, o l'utilizzo di un filesystem UMSDOS che consente di condividere un filesystem Dos-FAT preesistente senza alterare i dati in esso contenuti.

La prima delle due soluzioni è la più impegnativa, ma anche la migliore dal punto di vista tecnico: richiede la preparazione di una partizione da dedicare a GNU/Linux. La seconda è invece la soluzione più frettolosa e adatta a chi non vuole impegnarsi troppo con GNU/Linux: viene creata una directory C:\LINUX\ dalla quale si dirama una struttura di directory (e file) che pur rispettando le regole dei nomi 8.3 del Dos viene poi riconosciuta e gestita correttamente dal sistema GNU/Linux. Quest'ultima soluzione, dal momento che non richiede la preparazione di una partizione dedicata a GNU/Linux, potrebbe sembrare l'ideale per tutti. In realtà lo è solo per chi vuole vedere come funziona GNU/Linux, e non per chi lo vuole utilizzare veramente. *1*

5.6 Predisposizione di una partizione per GNU/Linux

Se si decide di prendere GNU/Linux sul serio è necessario predisporre una partizione tutta per lui, togliendo spazio a quanto installato in precedenza nel disco fisso. Per essere sicuri di non perdere i dati occorre cominciare dalla preparazione di una copia di sicurezza.

5.6.1 Copie di sicurezza

Ci sono vari modi di fare una copia di sicurezza dei dati del proprio disco fisso. Quello che bisogna ricordare è che non basta la copia dei dati, occorre anche la possibilità di avviare il sistema in modo da poter ricaricare quei dati salvati. Serve quindi un dischetto di avvio del sistema con i programmi di utilità necessari. Si presume che ognuno sappia come fare per ripristinare il proprio sistema operativo.

5.6.2 Ridurre la partizione esistente

Per ridurre la dimensione di una partizione FAT esistente si possono utilizzare i programmi seguenti, funzionanti in Dos.

FIPS, di Arno Schaefer, GNU-GPL, ottenibile eventualmente dall'URI seguente:

ftp://ftp.cdrom.com/pub/simtelnet/msdos/diskutil/fips15.zip

PRESIZER, di Zelepes, freeware, ottenibile eventualmente dall'URI seguente:

ftp://ftp.cdrom.com/pub/simtelnet/msdos/diskutil/presz131.zip

Per poter ridurre la dimensione di una partizione è necessario che la quantità di dati in essa contenuta non sia troppo elevata, ma soprattutto, che ci sia dello spazio vuoto proprio nella parte finale della partizione. Di solito si risolve il problema con un programma di deframmentazione che si occupa anche di compattare i dati nella parte superiore (iniziale) della partizione. *2*

5.7 Nomi dei dispositivi delle unità di memorizzazione

GNU/Linux utilizza dei nomi di dispositivo ben ordinati che però possono confondere chi proviene dall'esperienza Dos. La tabella 5.4 mostra l'elenco di alcuni nomi di dispositivo riferiti a unità di memorizzazione.

Nome Descrizione Dos
/dev/fd0 prima unità a dischetti A:
/dev/fd0u1440 prima unità a dischetti da 1440 Kbyte A:
/dev/fd1 seconda unità a dischetti B:
/dev/fd1u1440 seconda unità a dischetti da 1440 Kbyte B:
/dev/hda primo disco fisso IDE/EIDE
/dev/hdb secondo disco fisso (o CD-ROM) IDE/EIDE
/dev/hdc terzo disco fisso (o CD-ROM) EIDE
/dev/hdd quarto disco fisso (o CD-ROM) EIDE
/dev/sda primo disco SCSI
/dev/sdb secondo disco SCSI
/dev/sdc terzo disco SCSI
...

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

I dischi che non rientrano nella categoria dei floppy sono suddivisi in partizioni, e per fare riferimento a queste si aggiunge un numero alla fine del nome di dispositivo. Per esempio, /dev/hda1 è la prima partizione del primo disco IDE, /dev/sda2 è la seconda partizione del primo disco SCSI.

5.7.1 Partizioni normali e partizioni logiche

La distinzione tra i nomi usati per le partizioni primarie e le partizioni logiche contenute in quelle estese, può creare ulteriore confusione. In generale, conviene non utilizzare partizioni logiche, se non c'è una reale necessità. Volendo prendere come esempio il primo disco fisso IDE, 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.

5.8 Preparazione dei dischetti di partenza

Prima di iniziare l'installazione di una qualsiasi distribuzione GNU/Linux occorre avere un modo di avviare il programma di installazione. Di solito si ha la necessità di riprodurre uno o più dischetti che permettono di avviare un mini sistema GNU/Linux contenente ciò che serve per questo scopo. Questi dischetti sono distribuiti normalmente in forma di file-immagine che deve essere ricopiato sopra un dischetto già inizializzato. *3*

Se si utilizza il Dos, si ottiene la riproduzione di un dischetto, a partire dalla sua immagine, con il programma RAWRITE.EXE. Si osservi l'esempio seguente in cui si riproduce un dischetto a partire dall'immagine AVVIO.IMG.

C:> RAWRITE AVVIO.IMG A:

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 1440 Kbyte a partire dall'immagine avvio.img.

cp avvio.img /dev/fd0

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

5.9 Partizioni e filesystem

GNU/Linux può essere installato su una sola partizione oppure può essere distribuito in più di una di queste. In aggiunta a questo problema, nella maggior parte dei casi ci si deve prendere cura di creare una partizione da dedicare alla memoria virtuale: la partizione di scambio (swap).

5.9.1 Partizione di scambio della memoria virtuale

Quasi sempre, conviene installare GNU/Linux predisponendo uno spazio nel disco fisso per lo scambio della memoria, ovvero per la memoria virtuale. Con GNU/Linux, si definisce preferibilmente lo spazio della memoria virtuale all'interno di una o più partizioni specifiche per questo scopo: le partizioni di scambio. La dimensione massima di queste partizioni è di 128 Mbyte e possono esserne definite un massimo di 16. In generale è conveniente utilizzare una dimensione pari ad almeno la stessa dimensione della memoria RAM effettiva, con un minimo di circa 20 Mbyte.

5.9.2 Dischi di grandi dimensioni

Quando si utilizzano dischi IDE di grandi dimensioni si può porre il problema della posizione in cui si trova il kernel e gli altri file utilizzati per l'avvio. Questi devono trovarsi fisicamente entro il cilindro 1024, e ciò a causa delle limitazioni del BIOS dei PC. Se una partizione termina oltre questo limite, non ci può essere la certezza che questi file si trovino prima di quel punto.

Per evitare dubbi, è possibile creare una partizione apposita, solo per i file utilizzati per l'avvio (di solito si tratta di tutto ciò che è contenuto nella directory /boot/), residente fisicamente prima del 1024-esimo cilindro.

5.9.3 Suddivisione del filesystem su più partizioni

Il filesystem 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 varie operazioni di montaggio. Questo tipo di scomposizione è sensato normalmente solo se queste partizioni corrispondono in pratica a dischi differenti.

Ci possono essere diverse buone ragioni per fare questo, in particolare le seguenti:

le richieste di accesso al filesystem sono distribuite su più dischi;

più dischi di piccole dimensioni possono essere uniti insieme senza la necessità di acquistare un unico disco fisso gigantesco;

le parti del filesystem che non devono essere alterabili possono risiedere anche su CD-ROM;

in una rete locale si possono condividere parte dei dati e dei programmi usati in comune attraverso un filesystem di rete.

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

Partizione principale

La partizione principale deve contenere la directory radice (/). Quando non si scompone il filesystem, si tratta dell'unica partizione.

Partizione di avvio

Se il disco fisso che si utilizza ha un numero di cilindri superiore a 1024, è assolutamente necessario che il kernel e gli altri file utilizzati nella fase di avvio si trovino prima di tale limite. Per questo, in tali situazioni si crea una partizione apposita nella parte iniziale del disco fisso, e vi si colloca la directory /boot/, all'interno della quale si mette anche il file del kernel.

Partizione dedicata ai programmi

La maggior parte del software viene collocato al di sotto della directory /usr/, e il suo contenuto viene posto frequentemente in un'altra partizione.

Partizione dedicata agli utenti

Quando un sistema è multiutente, il contenuto della directory /home/ può diventare molto grande. In questo caso, può convenire di far risiedere quanto discende da questa directory in un'altra partizione.

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

Partizione per i file temporanei

Tutti i sistemi Unix utilizzano la directory /tmp/ come contenitore generico di file a uso temporaneo. In un sistema multiutente, l'attività all'interno di questa directory potrebbe essere piuttosto intensa. In tal caso, può convenire di far risiedere il suo contenuto altrove in modo da alleggerire l'attività del disco contenente la partizione principale.

Partizione per i sorgenti

I sorgenti delle applicazioni risiedono solitamente nella directory /usr/src/. Se si intende gestire una grande quantità i sorgenti, può convenire di utilizzare una partizione dedicata a questo scopo.

Partizione per i programmi e i file locali

Per convenzione, un filesystem GNU/Linux dovrebbe riservare la directory /usr/local/ per quei programmi e quei file riservati all'ambito locale. L'estensione di questo ambito dipende dalle circostanze. In generale, la directory /usr/ potrebbe risiedere in una partizione accessibile in sola lettura (come nel caso di un CD-ROM o di un server di rete NFS). La directory /usr/local/ potrebbe risiedere altrove in modo da permettere l'installazione di programmi speciali a uso di quella macchina particolare o di quella sottorete. Di solito, si estende il concetto e si intende che questa directory sia il luogo più adatto all'installazione di quei programmi che non fanno parte della distribuzione GNU/Linux che si utilizza.

5.10 Moduli

Le distribuzioni GNU/Linux più raffinate utilizzano la tecnica della scomposizione del kernel in moduli, in modo da potere predisporre pochi dischetti di installazione adatti a un gran numero di configurazioni hardware.

Tali dischetti di installazione sono generalmente in grado di gestire facilmente una configurazione hardware tipica, in cui il disco fisso e il CD-ROM siano connessi all'unità di controllo EIDE.

Quando si utilizzano unità SCSI o lettori CD-ROM su scheda proprietaria, occorrono driver appositi. Con GNU/Linux si gestiscono queste particolarità realizzando un kernel specifico, o abbinando a questo dei moduli. Spesso, quando si devono utilizzare dei moduli, occorre anche fornire loro dei parametri in modo che siano in grado di raggiungere il dispositivo cui si riferiscono. Nel capitolo 14 sono elencati alcuni moduli che richiedono dei parametri.

5.11 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.

5.12 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. Normalmente viene proposto di predisporre un dischetto di avvio di emergenza specifico per la propria installazione e anche di configurare LILO (nel caso di architettura i386) in modo da avviare il sistema automaticamente.

La creazione di un dischetto di avvio è 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 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 LILO, potrebbe essere presentata solo la scelta di installare il settore di avvio nell'MBR, cioè il primo settore del disco fisso, oppure nel primo settore della partizione principale in cui risiede GNU/Linux. Purtroppo ci sono situazioni in cui queste due possibilità sono troppo poche, per quello che si vuole fare, quindi conviene utilizzare il dischetto di avvio per poter avviare il sistema e quindi configurare successivamente LILO come si vuole.

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

LILO, come altri sistemi di avvio di GNU/Linux, permette di indicare alcuni parametri per il kernel che potrebbero rendersi necessari in presenza di dispositivi particolari che non vengono individuati correttamente, o in altre situazioni simili. Il programma di installazione potrebbe richiedere l'indicazione di questi parametri aggiuntivi, che di solito non vanno specificati.

LILO e il sistema di avvio di GNU/Linux è descritto in modo più dettagliato nel capitolo 8.

5.13 Strumenti di uso generale

L'installazione di una distribuzione GNU/Linux può essere preceduta da una preparazione delle partizioni attraverso dischetti di emergenza dotati di una raccolta minima di programmi essenziali. La maggior parte delle distribuzioni GNU/Linux offre un dischetto di emergenza per questi scopi.

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 e il modo in cui queste possono essere inizializzate.

5.13.1 Dischetto di avvio e dischetto di root di emergenza

Generalmente, per avviare un sistema GNU/Linux minimo sono necessari due dischetti: uno contenente essenzialmente il kernel e il secondo contenente i programmi. In teoria, entrambe le cose potrebbero risiedere nello stesso dischetto, ma questo diventa sempre meno probabile, data la dimensione dei programmi che compongono GNU/Linux.

Il primo dischetto, quello contenente il kernel, serve ad avviare il sistema; la sostituzione con il secondo viene richiesta alla fine del suo caricamento in memoria. Il dischetto dei programmi contiene normalmente una «immagine» compressa di un filesystem più grande. In questo contesto, l'immagine è un file che contiene il filesystem.

Un dischetto da 1,4 Mbyte può essere visto come un unico file. Quando un dischetto viene trasferito tale e quale in un unico file, questo file viene definito immagine del dischetto. Si possono creare dischetti non reali contenenti più spazio, per esempio 4 Mbyte, lavorando direttamente con le loro immagini. Il kernel è in grado di utilizzare tali immagini compresse espandendole in memoria, all'interno di un disco RAM.

Allo stato attuale, quasi tutti i dischetti di root di emergenza che si possono trovare, sono immagini compresse di dischi più grandi, cosa che costringe il kernel a caricarli in un disco RAM. Si intuisce che l'utilizzo di dischetti di emergenza richiede la disponibilità di molta memoria RAM.

5.13.2 Scelta e preparazione dei dischetti

Si è accennato a un dischetto di avvio e a uno di root. Questi dischetti sono distribuiti in forma di file-immagine, e chi li vuole utilizzare ha il problema di scegliere quelli che fanno al caso suo.

Se si cerca di avviare un sistema di emergenza, è molto probabile che l'immagine del dischetto di root sia un file con un nome simile a resque, mentre il problema può rimanere per la scelta del dischetto di avvio che potrebbe dipendere dalle caratteristiche dell'hardware del proprio elaboratore. Per questo, di solito è sufficiente leggere i file di testo che accompagnano tali immagini (README, WHICH.ONE, e simili).

Nel caso della distribuzione Slackware, la più comune per questo genere di cose, il dischetto di avvio per l'hardware generico è contenuto nell'immagine bootdsks.144/bare.i, che contiene un kernel adatto ai dischi IDE/EIDE/ATAPI; il dischetto di root di emergenza è invece rootdsks/rescue.gz.

I dischetti che si intendono utilizzare devono essere stati formattati (non importa che ci sia un filesystem, basta una formattazione a basso livello) e soprattutto devono essere privi di difetti. Anche se la formattazione dei dischetti non ha riportato errori o settori danneggiati, non si è ancora sicuri che questi siano perfetti. Durante il loro utilizzo, nella fase di installazione, potrebbero mostrarsi delle segnalazioni di errore, oppure il sistema potrebbe bloccarsi durante l'avvio. In tali casi, conviene tentare nuovamente utilizzando dischetti differenti.

I dischetti si preparano a partire dai file-immagine, nel modo già presentato in questo capitolo, attraverso il programma Dos RAWRITE.EXE, oppure attraverso cp, o dd di Unix.

5.13.3 Avvio e comportamento dei dischetti di emergenza

Un sistema composto da dischetti di emergenza si avvia facendo in modo che l'elaboratore esegua il boot a partire dal dischetto di avvio, il quale carica il kernel. Appena il kernel prende il controllo, viene richiesto all'utente di sostituirlo con il dischetto di root da usare per emergenza. Il modo con cui ciò avviene può essere molto diverso. Si va da una richiesta come quella seguente, tipica dei dischetti di una distribuzione Slackware,

VFS: Insert root floppy disk to be loaded into ramdisk and press ENTER

dove basta cambiare dischetto e premere [Invio], a situazioni in cui la richiesta viene fatta in modo molto più appariscente, attraverso maschere a scomparsa e altri accorgimenti, come nel caso della distribuzione SuSE.

Una volta avviato il sistema di emergenza, questo può richiedere o meno un login. Se ciò avviene, si tratta solitamente di utilizzare il nome root, al quale è probabile che non sia abbinata alcuna password.

Da questa situazione dovrebbe essere possibile utilizzare i programmi per la definizione delle partizioni e la loro inizializzazione.

5.13.4 Utilizzo degli strumenti fondamentali

I programmi per la definizione delle partizioni sono fondamentalmente due: fdisk e cfdisk. Il primo ha un'impostazione elementare, a riga di comando, mentre il secondo utilizza tutto lo schermo e mostra sempre la situazione che si sta componendo. Contrariamente a ciò che si potrebbe pensare, il primo è quello più adatto al principiante, perché non dà nulla per scontato, mentre il secondo presume che alcuni concetti sulle partizioni dei dischi siano chiari.

Nelle sezioni seguenti viene mostrato l'uso del vecchio fdisk, con un esempio completo. Anche se questo programma sta scomparendo dai dischetti di emergenza delle distribuzioni, resta quello più semplice da descrivere, e l'apprendimento del suo utilizzo facilita la comprensione degli altri programmi alternativi.

5.13.4.1 Introduzione a fdisk

fdisk [<dispositivo>]

fdisk riceve come argomento il nome del dispositivo che si riferisce all'intero disco fisso (o disco rimovibile) dal momento che agisce proprio sulle partizioni e non all'interno di queste ultime. Supponendo di lavorare sul primo disco fisso IDE, all'interno del quale era presente una partizione Dos-FAT ridotta per fare spazio a GNU/Linux, si dovrà avviare fdisk nel modo seguente:

fdisk /dev/hda[Invio]

fdisk risponde con un prompt particolare.

Command (m for help)

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

m[Invio]

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatiblity flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   p   print the partition table
   q   quit without saving changes
   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)

5.13.4.2 Creazione della partizione di scambio

Dopo aver avviato fdisk, la prima cosa da fare è quella di conoscere la situazione del proprio disco fisso.

fdisk /dev/hda[Invio]

Command (m for help)

Il comando p permette di visualizzare l'elenco delle partizioni esistenti.

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83     1024   474768    6  DOS 16-bit >=32M

Per ottenere questa situazione, di due partizioni Dos, era stato utilizzato il programma FIPS.EXE: la prima delle due è la partizione Dos che resta, la seconda è vuota e verrà sostituita. Si procede quindi a eliminare la seconda partizione.

d[Invio]

Partition number (1-4):

2[Invio]

A questo punto resta una sola partizione.

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M

Per inserire la nuova partizione di scambio si utilizza il comando n con il quale se ne crea una nuova.

n[Invio]

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

Si seleziona un tipo di partizione primaria.

p[Invio]

Partition number (1-4):

Trattandosi della seconda partizione, si inserisce il numero due.

2[Invio]

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

First cylinder (83-1024):

83[Invio]

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione minima della partizione. In questo caso si richiede una dimensione minima di 32 Mbyte.

Last cylinder or +size or +sizeM or +sizeK (83-1024):

+32M[Invio]

Per visualizzare il risultato basta utilizzare il solito comando p.

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   83  Linux native

Come si vede è stata aggiunta una partizione di tipo Linux-nativa di 33264 blocchi da 1024 byte. La partizione Linux-nativa è adatta ad accogliere un filesystem Second-extended (Ext2) e non lo scambio della memoria, quindi occorre cambiare il tipo di identificazione della partizione.

t[Invio]

Partition number (1-4):

2[Invio]

Hex code (type L to list codes):

Come suggerito, conviene visualizzare l'elenco dei codici.

L[Invio]

 0  Empty            9  AIX bootable    75  PC/IX           b7  BSDI fs
 1  DOS 12-bit FAT   a  OS/2 Boot Manag 80  Old MINIX       b8  BSDI swap
 2  XENIX root      40  Venix 80286     81  Linux/MINIX     c7  Syrinx
 3  XENIX usr       51  Novell?         82  Linux swap      db  CP/M
 4  DOS 16-bit <32M 52  Microport       83  Linux native    e1  DOS access
 5  Extended        63  GNU HURD        93  Amoeba          e3  DOS R/O
 6  DOS 16-bit >=32 64  Novell Netware  94  Amoeba BBT      f2  DOS secondary
 7  OS/2 HPFS       65  Novell Netware  a5  BSD/386         ff  BBT
 8  AIX

Il codice di una partizione di scambio è 82 e così viene indicato.

82[Invio]

Changed system type of partition 2 to 82 (Linux swap)

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap

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.

w[Invio]

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

Una volta conclusa l'attività con fdisk si deve procedere con l'inizializzazione della partizione di scambio appena creata, attraverso il programma mkswap. Il numero indicato alla fine della riga di comando è la dimensione in blocchi della partizione. È importante indicarlo e lo si desume dalle informazioni ottenute in precedenza da fdisk.

mkswap -c /dev/hda2 33264[Invio]

Se necessario (di solito quando si ha a disposizione poca memoria RAM), è possibile attivare subito la memoria virtuale, ovvero l'utilizzo di questa partizione di scambio appena creata, attraverso il programma swapon.

swapon /dev/hda2[Invio]

5.13.4.3 Creazione della partizione Linux-nativa

Dopo aver avviato un'altra volta fdisk, si ricomincia visualizzando la situazione delle partizioni.

fdisk /dev/hda[Invio]

Command (m for help)

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap

Si procede richiedendo la creazione di una nuova partizione.

n[Invio]

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

Si seleziona un tipo di partizione primaria.

p[Invio]

Partition number (1-4):

Trattandosi della terza partizione, si inserisce il numero tre.

3[Invio]

Viene richiesta quindi l'indicazione del primo cilindro a partire dal quale inizierà la nuova partizione. Viene già proposto l'intervallo di valori possibili.

First cylinder (149-1024):

149[Invio]

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione minima della partizione. In questo caso si richiede la dimensione massima indicando il numero dell'ultimo cilindro.

Last cylinder or +size or +sizeM or +sizeK (149-1024):

1024[Invio]

Per visualizzare il risultato basta utilizzare il solito comando p.

p[Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap
/dev/hda3          149      149     1024   441504   83  Linux native

Si conclude nel modo consueto utilizzando il comando w per registrare le modifiche.

w[Invio]

La partizione Linux-nativa deve essere inizializzata attraverso il programma mke2fs (oppure mkfs.ext2). L'ultimo numero indicato nella riga di comando rappresenta la dimensione in blocchi. È importante fornire questa indicazione.

mke2fs -c /dev/hda3 441504[Invio]

Al termine, la partizione conterrà un filesystem Second-extended.

Per concludere il funzionamento del sistema avviato con i dischetti di emergenza, potrebbe essere necessario utilizzare il comando seguente,

shutdown -h now[Invio]

oppure più semplicemente il comando halt.

halt[Invio]

5.14 Riferimenti

English Distributions http://www.linux.org/dist/english.html

Non-English Distributions http://www.linux.org/dist/nonenglish.html

---------------------------

Appunti Linux 1999.07.12 --- Copyright © 1997-1999 Daniele Giacomini --  daniele @ evo.it

1.) Scegliendo un filesystem UMSDOS ci si affida implicitamente a un filesystem di tipo Dos-FAT, con tutte le sue limitazioni e le sue debolezze. Tra le altre cose, uno spegnimento accidentale potrebbe anche provocare la perdita di tutti i dati.

2.) Tutto questo non è necessario se si intende installare GNU/Linux in una partizione FAT esistente, attraverso l'uso di un filesystem UMSDOS.

3.) I dischetti che si intendono utilizzare devono essere privi di difetti. Anche se in fase di inizializzazione non sono stati segnalati 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.

[indice generale] [precedente] [successivo] [indice analitico] [note introduttive]