Gentoo Linux Italia

 

 

EFFETTUARE UN’ INSTALLAZIONE OFFLINE DI GENTOO 1.4 A PARTIRE DA STAGE 1

 

 

1)  Procurarsi l’occorrente

 

Come procurarsi l’occorrente per effettuare un’installazione offline di Gentoo 1.4 da stage1?

 

La risposta a questa prima domanda  è divisa in due parti: la prima indica solo quali sono i file da scaricare; la seconda parte, invece, spiega in dettaglio come ho fatto ad ottenere quelle informazioni (per chi vuole capire come mai sono necessari quei file o per chi vuole crearsi da solo una lista aggiornata dei file).

 

 

In tutto questo how-to, tratterò il problema tenendo come premessa che voi abbiate l’occorrente così disposto: in un cd (che verrà montato sul device /dev/hdd) dovete avere 2 cartelle:

./distfiles: qui dentro ci vanno tutti i sorgenti

./snapshots: qui dentro ci va lo snapshot del portage

 

Chiaramente questa è solo una convenzione utilizzata a fini di praticità: potete benissimo utilizzare un altro device, quale una partizione dedicata (es hda4 … che terminata l’installazione potrete se vorrete unire alla root partition con tool quali qtparted).

 

Per effettuare un’installazione offline di Gentoo a partire dallo stage 1, occorre procurarsi tutti i sorgenti necessari: potete scaricarli in ufficio, in un internet point, potete farveli scaricare da un vostro amico dotato di ADSL. Serve però anche una lista dei file da scaricare.

 

Potete scaricare da qui lo snapshot del portage (portage-20030827.tar.bz2) che andrà nella cartella ./snapshots/.

 

Qui potete scaricare un lista dei sorgenti necessari all’installazione di un sistema base completo di xfree. Qui invece troverete la lista dei sorgenti necessari all’installazione di KDE e GNOME.

I sorgenti elencati in queste liste vanno scaricati ed inseriti nella cartella ./distfiles/ del supporto (che, come già detto, supponiamo sia un cd che durante l’installazione verrà letto dal device /dev/hdd).

 

La strada più semplice di procurarsi quei sorgenti è di utilizzare wget (http://www.gnu.org/software/wget/wget.html).

Qui trovate anche una versione del programma per Windows: http://space.tin.it/computer/hherold/.

 

Ora aprite le liste dei files: copiate tutti gli url, uno sotto l’altro, in un nuovo file di testo.

Otterrete qualcosa del genere:

 

http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//patch-2.5.9.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//gettext-0.11.5.tar.gz
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//glibc-linuxthreads-2.3.2.tar.bz2 
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//glibc-2.3.2.tar.bz2 
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//gawk-3.1.3.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//sed-4.0.7.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//zlib-1.1.4.tar.bz2  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//python-fchksum-1.6.1.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bzip2-1.0.2.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//debianutils_1.16.7.tar.gz
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//ncurses-5.3.tar.gz
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bash-2.05b.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bash205b-004  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bash205b-002  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bash205b-003  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//bash-2.05b-gentoo.diff.bz
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//perl-5.8.0.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//Safe-2.09.tar.gz  
http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//perl-5.8.0.tar.gz  

                  …

 

Salvate con nome gentoo.list.

 

PER UTENTI WINDOWS)

Copiate gentoo.list nella cartella di wget; entrate da riga di commando nella cartella di wget e date il commando:

 

wget –N –i gentoo.list

 

Al termine dell’operazione troverete nella cartella di wget tutti i sorgenti scaricati.

 

PER UTENTI GNU\LINUX)

Da console entrate nella directory in cui si trova gentoo.list e date

 

wget –N –i gentoo.list

 

Al termine dell’operazione troverete nella cartella di gentoo.list tutti i sorgenti scaricati.

 

Ora, ovviamente, dovete copiare tutti i sorgenti nella cartella distfiles del CD.

 

 

Come ho ottenuto la lista dei file?

Innanzitutto chiariamo che per ogni snapshot del portage servono files diversi (perchè nuovi snapshot del portage richiedono le versioni più aggiornate dei programmi).
Allora, prima di tutto dobbiamo decidere lo snapshot da utilizzare: io ho scelto l'ultimo che allora era uscito: ho scaricato il portage portage-20030827.tar.bz2.
 In seguito ho messo quel portage sulla partizione di Debian (il mio hd è diviso in hda1-->debian hda2-->spazio per gentoo hda3-->swap), ho avviato l'installazione tramite il LiveCD e ho montato in /mnt/gentoo/risorse la partizione hda1.
Ho così untarrato lo stage 1 e lo snapshot del 27 agosto; quindi mi sono chroottato.
Poi ho sfruttato l' emerge -pf che mi da l'elenco degli url dei files scaricare. 

        # emerge -pf base glibc baselayout texinfo gettext zlib binutils gcc ncurses > bootstrap.list 

  

  
  
        # emerge -pf system > system.list                        


ed ecco che ho la lista dei files da scaricare, per l’emerge system e per il bootstrap.
Ho riavviato, ho portato la lista degli url sul un altro pc, ho depurato la lista (che per la maggioranza dei files conteneva più url e per alcuni conteneva url non validi e ci ho sostituito tutti gli url con:

http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles//nomepacchetto

 

ossia il mirror principale di Gentoo.

 

Nota:  base, glibc, baselayout, texinfo, gettext, zlib, binutils, gcc e ncurses sono i pacchetti installati durante l’esecuzione del bootstrap.sh.

 

Questa operazione l’ho ovviamente eseguita per tutti i pacchetti che andavano installati (genkernel, sorgenti del kernel, supporto pcmcia, boot-loaader, demoni cron, xfree, …).

 

Nota: Purtroppo il portage presente nel live-cd di Gentoo 1.4 è buggato: ciò vuol dire che è impossibile fare un emerge –pf.

Prima di ottenere la lista degli url, ho dovuto quindi fare il fix del bug in questione.

 

Posto qui di seguito la soluzione al bug:

 

Problema: Emerge -pf non funziona

 

Es.

gentoo root # emerge -pf lyx

Calculating dependencies ...done!

 

http://gentoo.oregonstate.edu/distfiles/w3c-libwww-5.4.0.tgz  http://distro.ibiblio.org/pub/Linux/distributions/gentoo/distfiles/w3c-libwww-5.4.0.tgz  http://www.w3.org/Library/Distribution/w3c-libwww-5.4.0.tgz

Traceback (most recent call last):

  File "/usr/bin/emerge", line 1951, in ?

    mydepgraph.merge(mydepgraph.altlist())

  File "/usr/bin/emerge", line 1176, in merge

    retval=portage.doebuild(y,"fetch",myroot,edebug,("--pretend" in myopts),fetchonly=1)

  File "/usr/lib/python2.2/site-packages/portage.py", line 1734, in doebuild

    if not digestcheck(checkme, ("strict" in features)):

  File "/usr/lib/python2.2/site-packages/portage.py", line 1484, in digestcheck

    return digestCheckFiles(myfiles, mydigests, basedir, "src_uri")

  File "/usr/lib/python2.2/site-packages/portage.py", line 1402, in digestCheckFiles

    if strict:

NameError: global name 'strict' is not defined

gentoo root #

 

Soluzione:

 

Il problema è un bug della versione 2.0.48-r5 del portage.

Puoi correggere l'errore cambiando al file /usr/lib/python2.2/site-packages/portage.py:

 

Linea 1386 da:

def digestCheckFiles(myfiles, mydigests, basedir, note=""):

a:

def digestCheckFiles(myfiles, mydigests, basedir, note="", strict=0):

 

Linea 1473 da:

if not digestCheckFiles(mymfiles, mymdigests, pbasedir, "files "):

a:

if not digestCheckFiles(mymfiles, mymdigests, pbasedir, "files ", strict):

 

Linea 1484 da:

return digestCheckFiles(myfiles, mydigests, basedir, "src_uri")

a:

return digestCheckFiles(myfiles, mydigests, basedir, "src_uri", strict)

 

 

 

2)  Caricamento del sistema (booting)

 

Attenzione: Leggete interamente questa sezione prima di continuare, specialmente le opzioni di boot disponibili. Ignorare questa parte potrebbe portare a configurazioni errate della tastiera, servizi pcmcia che non partono, ecc.

Cominciate avviando il Live CD che avete scelto. Dovreste vedere una bella schermata d'avvio con il logo di Gentoo Linux. In questa schermata potete premere Invio per iniziare il processo di boot (ndt, avvio del sistema), o avviare il Live CD con opzioni di boot personalizzate specificando un kernel seguito dalle opzioni di boot, quindi dando Invio. Per esempio: gentoo nousb nohotplug. Se state installando Gentoo Linux su un sistema con più di un processore ("SMP"), allora potete digitare al prompt smp al posto di gentoo. Ciò permetterà al Live CD di vedere tutti i processori presenti nel sistema, anzichè soltanto uno.

Consultate la seguente tabella per avere una lista parziale dei kernel e delle opzioni disponibili, oppure premete F2 e F3 per consultare le schermate d'aiuto.

Kernel disponbili

Descrizione

gentoo

il kernel gentoo standard (default)

nofb

modalità framebuffer disabilitata

smp

carica un kernel smp in modalità senza framebuffer

acpi

abilita acpi=on + carica i moduli acpi durante l'init

memtest

avvia il programma di controllo della memoria

 

Opzioni di boot disponibili

Descrizione

doataraid

carica i moduli ide raid da initrd

dofirewire

carica i moduli firewire in initrd (per firewire, cdroms, ecc.)

dokeymap

abilita la selezione della keymap per tastiere non americane

dopcmcia

avvia il servizio pcmcia

doscsi

ricerca le periferiche scsi (si blocca con certe schede ethernet)

noapm

disabilita il caricamento dei moduli apm

nodetect

non avvia hwsetup/kudzu e hotplug

nodhcp

dhcp non verrà avviato automaticamente nel caso venga rilevata una scheda di rete

nohotplug

disabilita il caricamento del servizio hotplug

noraid

disabilita il caricamento dei moduli evms

nousb

disabilita il caricamento dei moduli usb da initrd, disabilita hotplug

ide=nodma

Forza la disabilitazione del dma per periferiche ide malfunzionanti

cdcache

Memorizza nella ram l'intera porzione runtime del cd. Per questo saranno utilizzati 40mb di RAM, ma avrete la possibilità di smontare /mnt/cdrom e montare un altro cdrom.

Una volta che avrete premuto Invio, verrete accolti da una schermata d'avvio e una progress bar.

Quando il processo di boot sarà completato, verrete automaticamente loggati nel sistema Gentoo Linux "Live" come "root", il "super utente." Dovreste avere il prompt di root ("#") nella console corrente e dovreste poter passare alle altre console premendo Alt-F2, Alt-F3 e Alt-F4. Tornate in quella da cui siete partiti premendo Alt-F1.

Nota: Utenti avanzati: Quando si avvia il Live CD, la password di root del Live CD è impostata con una stringa casuale per motivi di sicurezza. Se avete intenzione di avviare sshd per abilitare il login remoto al vostro Live CD, dovrete impostare ora la passowrd di root del Live CD digitando passwd e seguendo le istruzioni. Altrimenti, non conoscerete la password corretta per loggarvi nel Live CD attraverso la rete.

Avrete probabilmente notato che sopra il vostro prompt # c'è un breve testo d'aiuto che vi spiega alcune cose quali configurare correttamente la vostra rete Linux e dove trovare i tarball degli stage Gentoo Linux e i pacchetti nei vostri CD.

 

 

3) Configurazione opzionale dell'hardware

Quando il Live CD viene avviato, prova a individuare tutti i vostri dispositivi hardware e caricare gli appropriati moduli del kernel per supportare il vostro hardware. Nella maggior parte dei casi, esso fa davvero un buon lavoro. Tuttavia, in alcuni casi, può non caricare i moduli del kernel di cui avete bisogno. Se l'auto-rilevazione dei dispositivi PCI dovesse dimenticare alcune delle vostre periferiche hardware, potete sempre caricare manualmente i moduli del kernel necessari. Per vedere una lista di tutti i moduli disponibili per le schede di rete, digitate ls /lib/modules/`uname -r`/kernel/drivers/net/*. Per caricare un particolare modulo date:

Esempio 1: Configurare i moduli PCI

               # modprobe pcnet32
               (sostituite pcnet32 con il modulo della vostra NIC)
               

Inoltre, se volete aver accesso a qualsiasi dispositivo hardware SCSI che non è stato rilevato durante la fase iniziale di auto-rilevazione, dovete caricare il modulo appropriato da /lib/modules, sempre servendovi di modprobe:

Esempio 2: Caricare i moduli SCSI

               # modprobe aic7xxx
               (sostituite aic7xxx con il modulo del vostro adattatore SCSI)
               # modprobe sd_mod
               (sd_mod è il modulo per il supporto ai dischi SCSI)
               

 

Nota: Il supporto per i CD-ROM e i dischi è compilato staticamente nel kernel.

 

Nota: Utenti avanzati: Il Live CD Gentoo dovrebbe aver abilitato il DMA per i vostri dischi in modo che il trasferimento dei dati sia il più veloce possibile, ma se così non fosse, hdparm può essere usato per impostare il DMA per le vostre periferiche come segue:

Esempio 3: Impostare il DMA

               (Sostituite hdX con il vostro dispositivo)
               # hdparm -d 1 /dev/hdX
               Abilita il DMA 
               # hdparm -d1 -A1 -m16 -u1 -a64 /dev/hdX
               (Abilita il DMA e altre opzioni sicure per incrementare le performance)
               # hdparm -X66 /dev/hdX
               (Forza l'abilitazione dell'Ultra-DMA -- pericoloso -- può causare danni alla periferica)
               

 

4) Impostare la data e l'ora del vostro sistema

E' necessario ora impostare la data e l'ora del vostro sistema. Potete farlo servendovi del comando date.

Esempio 4: Impostare la data del vostro sistema

               # date
               Thu Feb 27 09:04:42 CST 2003
               (Se la vostra data è sbagliata, correggetela con il seguente comando)
               # date 022709042003
               (date MMDDhhmmCCYY) (ndt, MM=mese DD=giorno hh=ora mm=minuti CCYY=anno)
               

 

 

5) Filesystems, partizioni e dispositivi a blocchi

Introduzione ai dispositivi a blocchi 

In questa sezione daremo un'occhiata approfondita agli aspetti relativi ai dischi in Gentoo Linux e Linux in generale, includendo i filesystems Linux, le partizioni e i dispositivi a blocchi. Quindi, una volta che avrete acquisito familiarità con i dischi e i filesystems, verrete guidati attraverso il processo di configurazione delle partizioni e dei filesystem per la vostra installazione di Gentoo Linux.

Per cominciare, introduciamo i "dispositivi a blocchi". Il dispositivo a blocchi più famoso è molto probabilmente quello che rappresenta la prima unità IDE in un sistema Linux:

Esempio 5: /dev/hda, il dispositivo a blocchi che rappresenta il disco master sul primo canale IDE del vostro sistema

               /dev/hda
               

Se il vostro sistema utilizza dischi SCSI, allora il vostro primo disco fisso dovrebbe essere:

Esempio 6: /dev/sda, il dispositivo a blocchi che rappresenta il primo disco logico SCSI del vostro sistema

               /dev/sda
               

I dispositivi a blocchi citati in precedenza rappresentano un'interfaccia astratta ai dischi. I programmi utente possono utilizzare questi dispositivi a blocchi per interagire con i vostri dischi senza doversi chiedere se si tratta di unita IDE, SCSI o di qualsiasi altro tipo. Il programma può semplicemente indirizzare la memorizzazione su disco attraverso dei blocchi contigui, accessibili casualmente e di dimensione pari a 512 byte ciascuno.

Partizioni e fdisk 

In Linux, possiamo creare filesystems utilizzando un comando speciale chiamato mkfs (o mke2fs, mkreiserfs, ecc.) specificando un particolare dispositivo a blocchi come argomento a linea di comando.

Nonostante sia teoricamente possibile utilizzare il dispositivo a blocchi "dell'intero disco" (cioè quello che rappresenta l'intero hard disk) come /dev/hda o /dev/sda per allocare un singolo filesystem, nella pratica non ci si serve mai di tale metodo. Al contrario, l'intero dispositivo a blocchi rappresentante il disco viene suddiviso in parti più piccole, dispositivi a blocchi più maneggevoli chiamati "partizioni". Le partizioni vengono create utilizzando un tool chimato fdisk, che serve per creare e modificare la tabella delle partizioni scritta su ciascun disco. La tabella delle partizioni definisce con precisione come è stato suddiviso l'intero disco.

Possiamo dare un'occhiata alla tabella delle partizioni di un disco eseguendo fdisk, specificando come argomento un dispositivo a blocchi che rappresenti un disco intero:

Nota: Esistono interfacce alternative per visualizzare la tabella delle partizioni, quali cfdisk, parted e partimage. Noi raccomandiamo fdisk poichè nel mondo Unix/Linux è certamente il più potente e conosciuto.

 

Esempio 7: Avviare fdisk

               # fdisk /dev/hda 
               

o

Esempio 8: Avviare fdisk per vedere la tabella delle partizioni di /dev/sda

               # fdisk /dev/sda
               

 

Importante: Si noti che non si dovrebbe salvare o modificare in alcun modo la tabella delle partizioni di un disco se ognuna delle sue partizioni contiene un filesystem in uso o contiene dati importanti. In caso contrario si causerà generalmente la perdita dei dati sul disco.

Una volta avviato fdisk, dovreste vedere un prompt che assomiglia a questo:

Esempio 9: Il prompt di fdisk

               Command (m for help): 
               

Digitate p per visualizzare la configurazione corrente delle partizioni del vostro disco:

Esempio 10: Un esempio di configurazione delle partizioni

               Command (m for help): p
               Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
               Units = cylinders of 15120 * 512 bytes
               Device Boot    Start       End    Blocks   Id  System
               /dev/hda1             1        14    105808+  83  Linux
               /dev/hda2            15        49    264600   82  Linux swap
               /dev/hda3            50        70    158760   83  Linux
               /dev/hda4            71      2184  15981840    5  Extended
               /dev/hda5            71       209   1050808+  83  Linux
               /dev/hda6           210       348   1050808+  83  Linux
               /dev/hda7           349       626   2101648+  83  Linux
               /dev/hda8           627       904   2101648+  83  Linux
               /dev/hda9           905      2184   9676768+  83  Linux
               Command (m for help): 
               

Questo disco in particolare è configurato per contenere sette filesystems Linux (ciascuno corrispondente ad un partizione elencata come "Linux") oltre ad una partizione di swap (elencata come "Linux swap").

Notate il nome della corrispondente partizione del dispositivo a blocchi nella colonna di sinistra, che inizia con /dev/hda1 e termina con /dev/hda9. Agli albori dell'era dei PC, il software di partizionamento poteva abilitare soltanto un massimo di quattro partizioni (chiamate "partizioni primarie"). Questo divenne presto un limite, quindi venne creata una soluzione chiamata partizionamento esteso. Una partizione estesa è davvero molto simile ad una partizione primaria e viene contata nel numero limite di quattro partizioni primarie. Tuttavia, una partizione estesa può contenere al suo interno un qualsiasi numero di partizioni definite logiche, fornendo così un metodo pratico per aggirare il limite di quattro partizioni primarie.

Tutte le partizioni da /dev/hda5 in poi sono partizioni logiche. I numeri tra 1 e 4 sono riservati per le partizioni primarie o quelle estese

Così, nel nostro esempio, da /dev/hda1 a /dev/hda3 abbiamo partizioni primarie. /dev/hda4 è una partizione estesa che contiene le partizioni logiche da /dev/hda5 fino a /dev/hda9. Non dovrete quindi mai utilizzare /dev/hda4 per memorizzare direttamente un qualsiasi filesystem -- serve semplicemente per contenere le partizioni tra /dev/hda5 e /dev/hda9.

Notate inoltre che ogni partizione possiede un "Id", chiamato anche "tipo di partizione". Quando creerete una nuova partizione, dovrete assicurarvi che il tipo di partizione sia impostato correttamente. '83' è il tipo di partizione corretto per contenere un filesystem Linux, '82' è il tipo di partizione corretto per la partizione Linux di swap e 'fd' è il tipo di partizione raccomandata per le partizioni Software RAID. Potete impostare il tipo di partizione usando l'opzione t in fdisk. Il kernel Linux utilizza il tipo di partizione impostato per rilevare automaticamente all'avvio i filesystems e il dispositivo di swap dei vari dischi.

Usare fdisk per impostare le partizioni 

Ora che avete avuto la vostra introduzione ai metodi di partizionamento in ambiente Linux, è il momento di passare in rassegna il processo di creazione delle partizioni per l'installazione del vostro sistema Gentoo Linux. Una volta che avremo concluso tale processo di partizionamento del disco, la vostra configurazione dovrebbe apparire simile alla seguente:

Esempio 11: La configurazione delle partizioni che dovreste avere dopo aver seguito questi passi

               Disk /dev/hda: 30.0 GB, 30005821440 bytes
               240 heads, 63 sectors/track, 3876 cylinders
               Units = cylinders of 15120 * 512 = 7741440 bytes
               
                  Device Boot    Start       End    Blocks   Id  System
               /dev/hda1   *         1        14    105808+  83  Linux
               /dev/hda2            15        81    506520   82  Linux swap
               /dev/hda3            82      3876  28690200   83  Linux
               Command (m for help):
               

Nella nostra configurazione delle partizioni per "newbie" (ndt, nuovi utenti, principianti), ci sono tre partizioni. La prima (/dev/hda1) si trova all'inizio del disco ed è una piccola partizione chiamata partizione di boot. Lo scopo della partizione di boot è contenere tutti i dati critici relativi all'avvio del sistema -- informazioni del boot loader GRUB (se state utilizzando GRUB) come pure i vostri kernel Linux. La partizione di boot vi fornisce un luogo sicuro per immagazzinare tutto ciò che è legato al processo di avvio di un sistema Linux. Durante il normale uso quotidiano di Gentoo Linux, la vostra partizione di boot dovrà rimanere unmounted (ndt, smontata) per motivi di sicurezza. Se state configurando un sistema SCSI, la vostra partizione di boot dovrebbe possibilmente essere /dev/sda1.

Si raccomanda di avere la partizione di boot (contenente tutto il necessario per il funzionamento del boot loader) all'inizio del disco. Benchè questo non sia più un requisito necessario, si tratta comunque di un'utile tradizione relativa ai tempi in cui il boot loader Lilo non era in grado di caricare il kernel da filesystems situati oltre il cilindro 1024 di un disco.

La seconda partizione (/dev/hda2) è utilizzata come spazio di swap (ndt, scambio). Il kernel usa lo spazio di swap come memoria virtuale quando la RAM scarseggia. Questa partizione, parlando approssimativamente, non dovrebbe essere molto grande, tipicamente dell'ordine dei 512MB circa. Se state configurando un sistema SCSI, questa partizione dovrebbe chiamarsi /dev/sda2.

La terza partizione (/dev/hda3) è generalmente ampia e occupa il resto dello spazio su disco. Questa partizione è chiamata partizione "root" (ndt, radice) e verrà utilizzata per memorizzare al suo interno il filesystem principale che ospiterà il vostro sistema Gentoo Linux. In un sistema SCSI, questa partizione verrà probabilmente rappresentata da /dev/sda3.

Prima di partizionare il disco, facciamo una rapida recensione tecnica delle partizioni suggerite e della configurazione del filesystem da utilizzare per installare Gentoo Linux:

Partizione

Dimensione

Tipo

Dispositivo d'esempio

partizione di boot, contiene i(l) kernel e le informazioni di boot

32 Megabytes

ext2/3 sono caldamente raccomandati (più semplici); se usate ReiserFS montate la partizione con l'opzione -o notail. Se volete usare ext3 o ReiserFS, dovete aggiungere la dimensione del journal (ndt, giornale) alla dimensione originale della partizione; in questo caso si raccomandano 64 Megabytes

/dev/hda1

partizione di swap (non c'è più il limite di 128 Megabyte, ora di 2GB)

Generalmente, si configura l'area di swap con una dimensione compresa tra una e due volte la dimensione della RAM fisica del proprio sistema

Linux swap

/dev/hda2

partizione root, contiene il filesystem principale (/usr, /home, etc.)

>=1.5 Gigabytes

ReiserFS, ext3 raccomandati; ext2 ok

/dev/hda3

Ok, ora per creare le partizioni seguiamo l'esempio e la tabella precedenti. Prima di tutto, entriamo in fdisk digitando fdisk /dev/hda o fdisk /dev/sda, a seconda che stiate usando un disco IDE o SCSI. Quindi, digitiamo p per vedere la configurazione attuale delle partizioni. Sono presenti su questo disco informazioni che vorreste mantenere? Se si, fermatevi ora. Se continuate in questa direzione, tutti i dati esistenti sul vostro disco saranno cancellati.

Importante: Seguire le istruzioni qui sotto porterà alla cancellazione di tutti i dati preesistenti sul vostro disco! Se sono presenti dati sul vostro disco, per favore assicuratevi che non siano informazioni critiche che non volete assolutamente perdere. Assicuratevi inoltre di aver scelto il dispositivo corretto in modo da non eliminare erroneamente i dati dal disco sbagliato.

Adesso è il momento di eliminare tutte le partizioni esistenti. Per fare ciò, digitate d e premete Invio. Dovrete a questo punto iserire al prompt il numero della partizione che volete eliminare. Per cancellare una preesistente /dev/hda1, dovete digitare:

Esempio 12: Cancellare una partizione

               Command (m for help): d
               Partition number (1-4): 1
               

La partizione è quindi programmata per la cancellazione. Non sarà più visibile se premete p, ma non verrà cancellata finchè le vostre modifiche non verranno salvate. Se avete commesso qualche errore e volete abortire i vostri cambiamenti senza salvare, digitate q immediatamente e premete Invio, così la vostra partizione non verrà eliminata.

Ora, supponendo che siate effettivamente intenzionati a cancellare ogni partizione dal vostro sistema, digitate ripetutamente p per vedere la lista delle partizioni e quindi d seguito dal numero della partizione da cancellare. Finalmente, vi ritroverete con una tabella delle partizioni vuota:

Esempio 13: Una tabella delle partizioni vuota

               Disk /dev/hda: 30.0 GB, 30005821440 bytes
               240 heads, 63 sectors/track, 3876 cylinders
               Units = cylinders of 15120 * 512 = 7741440 bytes
               
                  Device Boot    Start       End    Blocks   Id  System
               
               Command (m for help):
               

Ora che la tabella delle partizioni in memoria è vuota, siamo pronti per creare una partizione di boot. Per fare questo, digitate n per creare una nuova partizione, quindi p per avvertire fdisk che volete una partizione primaria. Digitate adesso 1 per creare la prima partizione primaria. Quando vi apparirà il prompt per il primo cilindro, premete Invio. Quando vi verrà mostrato il prompt per l'ultimo cilindro, digitate +32M per creare una partizione della dimensione di 32MB. Dovreste poter vedere l'output di questi comandi come segue:

Nota: I filesystems journaled richiedono uno spazio extra per il loro journal. Le impostazioni di default richiedono circa 32 Megabytes di spazio. Per questo, se state utilizzando un filesystem journaled per /boot, dovrete digitare +64M quando vi apparirà il prompt per l'ultimo cilindro.

 

Esempio 14: Passi per creare la partizione di boot

               Command (m for help): n
               Command action
                  e   extended
                  p   primary partition (1-4)
               p
               Partition number (1-4): 1
               First cylinder (1-3876, default 1):(Premere Invio)
               Using default value 1
               Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
               

Ora, quando digiterete p, dovreste vedere apparire il seguente output per le partizioni:

Esempio 15: La prima partizione è stata creata

               Command (m for help): p
               
               Disk /dev/hda: 30.0 GB, 30005821440 bytes
               240 heads, 63 sectors/track, 3876 cylinders
               Units = cylinders of 15120 * 512 = 7741440 bytes
               
                  Device Boot    Start       End    Blocks   Id  System
               /dev/hda1             1        14    105808+  83  Linux
               

Adesso andiamo a creare la prtizione di swap. Per fare ciò, digitate n per creare una nuova partizione, quindi p per avvertire fdisk che volete una partizione primaria. A questo punto digitate 2 per creare la seconda partizione primaria, /dev/hda2 nel nostro caso. Quando vedrete il prompt per il primo cilindro, premete Invio. Quando apparirà quello per l'ultimo cilindro, digitate +512M per creare una partizione di dimensione pari a 512MB. Dopo aver fatto tutto questo, digitate t per impostare il tipo di partizione, 2 per selezionare la partizione appena creata e quindi digitate 82 per impostare il tipo di partizione a "Linux Swap". Ultimati questi passaggi, premete p per visualizzare la tabella delle partizioni che apparirà simile alla seguente:

Esempio 16: La partizione di swap è stata creata

               Command (m for help): p
               
               Disk /dev/hda: 30.0 GB, 30005821440 bytes
               240 heads, 63 sectors/track, 3876 cylinders
               Units = cylinders of 15120 * 512 = 7741440 bytes
                  Device Boot    Start       End    Blocks   Id  System
               /dev/hda1             1        14    105808+  83  Linux
               /dev/hda2            15        81    506520   82  Linux swap
               

Infine, creiamo la partizione root. Per fare questo, digitate n per creare una nuova partizione, quindi p per avvertire fdisk che vogliamo una partizione primaria. Adesso digitate 3 per creare la terza partizione primaria, /dev/hda3 nel nostro caso. Quando vi apparirà il prompt per il primo cilindro, premete Invio. Quando avrete quello per l'ultimo cilindro, premete Invio per creare una partizione che occupi tutto lo spazio rimanente sul vostro hard disk. Dopo avere eseguito questi passi, digitate p per visualizzare la tabella delle partizioni, che ora apparirà simile alla seguente:

Esempio 17: La partizione root è stata creata

               Command (m for help): p
               Disk /dev/hda: 30.0 GB, 30005821440 bytes
               240 heads, 63 sectors/track, 3876 cylinders
               Units = cylinders of 15120 * 512 = 7741440 bytes
               
                  Device Boot    Start       End    Blocks   Id  System
               /dev/hda1             1        14    105808+  83  Linux
               /dev/hda2            15        81    506520   82  Linux swap
               /dev/hda3            82      3876  28690200   83  Linux
               

Per concludere, dobbiamo impostare la flag "bootable" (ndt, avviabile) per la nostra partizione di boot e quindi scrivere tutti i cambiamenti sul disco. Per rendere /dev/hda1 una partizione "bootable", digitate a nel menu e quindi premete 1 per il numero della partizione. Se ora digitate p, dovreste vedere che /dev/hda1 possiede un * nella colonna "Boot". Adesso andiamo a scrivere i nostri cambiamenti sul disco. Per fare questo, digitate w e premete Invio. Le vostre partizioni del disco sono ora adeguatamente configurate per un'installazione di Gentoo Linux.

Nota: Se fdisk o cfdisk vi dicono di farlo, per favore riavviate il sistema per permettergli di identificare correttamente la nuova configurazione delle partizioni.

Creare i filesystems 

Ora che le partizioni sono state create, è il momento di impostare i filesystem sulle partizioni di boot e root in modo tale che possano essere montate e usate per la memorizzazione dei dati. Configureremo anche la partizione di swap affinchè funga da memoria di scambio.

Gentoo Linux supporta una grande varietà di tipi differenti di filesystem; ciascuno di loro possiede i propri punti di forza e le proprie debolezze, oltre ad un proprio insieme di caratteristiche relative alle performance. Attualmente, supportiamo la creazione di filesystem ext2, ext3, XFS, JFS e ReiserFS.

ext2 è il vero e proprio filesystem di Linux ma non possiede il supporto per il "metadata journaling", il che significa che le routine che effettuano all'avvio i controlli sul filesystem ext2 possono occupare diverso tempo. C'è adesso una scelta abbastanza ampia di filesystem journaled di nuova generazione che sono in grado di effettuare controlli sulla consistenza molto velocemente e sono generalmente preferiti alle controparti non-journaled. I filesystem journaled prevengono i lunghi tempi di attesa che solitamente si riscontrano quando viene riavviato il sistema e il filesystem si trova in uno stato inconsistente.

ext3 è la versione journaled del filesystem ext2, fornisce il "metadata journaling" per un veloce recupero dei dati in aggiunta ad altre caratteristiche di journaling avanzate come "full data" e "ordered data journaling". ext3 è un filesystem davvero molto valido e affidabile. Offre generalmente performance accettabili in molte situazioni. Poichè non fa un uso estensivo di "trees" nel proprio design interno, non è in grado di scalare molto bene, il che significa che non rappresenta una scelta ideale per filesystem molto grandi o situazioni in cui è necessario manipolare grandi quantità di dati o file molto grandi in una singola directory. Ma se usato in condizioni che sfruttino le caratteristiche di design per cui è stato creato, ext3 è un eccellente filesystem.

ReiserFS è un filesystem basato su B*-tree che offre ottime performance generali e si dimostra notevolmente superiore a ext2 e ext3 con file di piccole dimensioni (file minori di 4k), spesso di un fattore 10x-15x. ReiserFS scala inoltre molto bene e supporta il metadata journaling. Dal kernel 2.4.18+, ReiserFS ha raggiunto la solidità che lo porta a essere caldamente raccomandato sia per un uso generico che per casi estremi come la creazione di grandi filesystem, l'uso su molti file piccoli, file molto grandi e directory contenenti decine di migliaia di file. ReiserFS è il filesystem che raccomandiamo di default per tutte le partizioni che non siano quella di boot.

XFS è un filesystem con tecnologia metadata journaling che è completamente supportato in Gentoo Linux dal kernel xfs-sources. Si presenta con un robusto insieme di caratteristiche ed è ottimizzato per la scalabilità. Ne raccomandiamo l'uso su sistemi Linux con high-end SCSI e/o unità di memorizzazione con canali in fibra e connessi a UPS. Data l'aggressività con la quale XFS si serve della cache in RAM per i dati in transito, programmi progettati in modo non adeguato (quelli che non prendono precauzioni quando scrivono file su disco, e ce ne sono abbastanza) possono perdere una discreta quantità di dati se il sistema si arresta in modo inaspettato.

JFS è il filesystem journaling ad alte prestazioni di IBM. E' stato recentemente giudicato pronto per il mercato, ma ad oggi non è stato sufficientemente testato per fare commenti positivi o negativi sulla sua stabilità generale.

Se state cercando il filesystem journaled più robusto, usate ext3. Se state invece cercando un filesystem ad alte prestazioni con il supporto al journaling, usate ReiserFS; sia ext3 che ReiserFS sono maturi, raffinati e raccomandati per un uso generale.

In base al nostro esempio precedente, useremo i seguenti comandi per inizializzare tutte le nostre partizioni:

Esempio 18: Inizializzare le partizioni (esempio)

               # mke2fs -j /dev/hda1
               # mkswap /dev/hda2
               # mkreiserfs /dev/hda3
               

Abbiamo scelto ext3 per la partizione di boot /dev/hda1 perché si tratta di un robusto filesystem con il journaling supportato dalla maggior parte dei boot loaders. Abbiamo usato mkswap per la partizione di swap /dev/hda2 -- qui la scelta è ovvia. Per il nostro filesystem principale root /dev/hda3 abbiamo scelto ReiserFS, dato che è un solido filesystem journaled che offre eccellenti performance. Ora andate avanti e inizializzate le vostre partizioni.

Come vostro riferimento, ecco i vari comandi mkfs-like disponibili durante il processo di installazione:

mkswap è il comando che va usato per inizializzare le partizioni di swap:

Esempio 19: Inizializzare la Swap

               # mkswap /dev/hda2
               

Potete usare il comando mke2fs per creare un filesystem ext2:

Esempio 20: Creare un filesystem ext2

               # mke2fs /dev/hda1
               

Se preferite utilizzare ext3, potete creare un filesystem ext3 usando mke2fs -j:

Esempio 21: Creare un filesystem ext3

               # mke2fs -j /dev/hda3
               

 

Nota: Potete trovare maggiori informazioni circa l'uso di ext3 in Linux 2.4 su http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html.

Per creare un filesystem ReiserFS, usate il comando mkreiserfs:

Esempio 22: Creare un filesystem ReiserFS

               # mkreiserfs /dev/hda3
               

Per creare un filesystem XFS, usate il comando mkfs.xfs:

Esempio 23: Creare un filesystem XFS

               # mkfs.xfs /dev/hda3
               

 

Nota: Potreste voler aggiungere un paio di flag facoltative al comando mkfs.xfs: -d agcount=3 -l size=32m. Il comando -d agcount=3 abbassa il numero dei gruppi di allocazione. XFS insiste ad usare almeno 1 gruppo di allocazione per ogni 4 GB di partizione, così, per esempio, se avete una partizione di 20 GB avrete bisogno di almeno 5 gruppi (agcount). Il comando -l size=32m porta a 32 MB la grandezza del journal, incrementando le performance.

Per creare un filesystem JFS, usate il comando mkfs.jfs:

Esempio 24: Creare un filesystem JFS

               # mkfs.jfs /dev/hda3
               

 

6) Montare le partizioni

 

Ora è il momento di attivare la nostra nuova partizione di swap, poichè in seguito avremo certamente bisogno della memoria virtuale aggiuntiva che essa ci fornirà:

Esempio 25: Attivare la Swap

               # swapon /dev/hda2
               

Successivamente, andremo a creare i "mount points" (ndt, punti di montaggio, di innesto) /mnt/gentoo e /mnt/gentoo/boot, quindi vi monteremo i nostri filesystem. Una volta che i nostri filesystem di boot e root saranno montati, qualsiasi file copieremo o creeremo all'interno di /mnt/gentoo verrà sistemato nei nostri nuovi filesystems. Notate che nel caso abbiate deciso di creare per il vostro sistema Gentoo Linux /usr o /var come filesystem separati, dovrebbero essere rispettivamente montati in /mnt/gentoo/usr e /mnt/gentoo/var.

Importante: Se la vostra partizione /boot (quella in cui risiede il kernel) è ReiserFS, dovrete essere sicuri di montarla con l'opzione -o notail in modo tale che GRUB possa essere installato correttamente. Assicuratevi che notail termini la riga riferita alla partizione di boot in /etc/fstab. Ritorneremo brevemente su questo punto. Se state utilizzando LILO con ReiserFS, allora l'opzione -o notail non è necessaria. E' comunque consentito specificare l'opzione -o notail con ReiserFS se siete incerti sul da farsi.

 

Esempio 26: Creare i Mount Points (punti di montaggio, innesto)

               # mount /dev/hda3 /mnt/gentoo
               # mkdir /mnt/gentoo/boot
               # mount /dev/hda1 /mnt/gentoo/boot
               

 

Importante: Se riscontrate problemi nel montare la vostra partizione di boot con ext2, provate utilizzando mount /dev/hXX /mnt/gentoo/boot -t ext2

 

7) Montare il dispositivo in cui avete inserito i sorgenti e lo snapshot del portage necessari

 

Esempio 27: Creare i Mount Points  e montare dispositivo contentente i sorgenti

               # mkdir /mnt/gentoo/risorse
               # mount /dev/hdd /mnt/gentoo/risorse
               

 

8) Decomprimere il tarball dello stage 

E' ora il momento di estrarre in /mnt/gentoo il tarball compresso dello stage 1. Decomprimete il tarball dello stage come segue:

Importante: Assicuratevi di usare l'opzione p con tar. Dimenticarsene può portare ad avere permessi errati per alcuni file.

 

Esempio 28: Decomprimere lo Stage

               # cd /mnt/gentoo
               # tar -xvjpf /mnt/cdrom/stages/stage1-*.tar.bz2

 

9) Decomprimere lo snapshot e copiare i sorgenti nel sistema

 

Esempio 29

   # tar -xvjf /mnt/gentoo/risorse/snapshots/portage*.tar.bz2 -C /mnt/gentoo/usr
   # cp /mnt/gentoo/risorse/distfiles/* /mnt/gentoo/usr/portage/distfiles/
               

 

10) Entrare nel sistema

Il passo successivo sarà il chroot dell'ambiente di installazione, che ci permetterà di "entrare" nel nostro nuovo sistema Gentoo Linux.

Nota: Durante l'esecuzione di env-update potreste essere avvisati che /etc/make.profile/make.defaults non è disponibile: ignoratelo. Quando eseguirete emerge sync più avanti in questo documento, questo problema verrà risolto.

 

Esempio 30: Preparazione e ingresso nell'ambiente chroot

               # mount -t proc proc /mnt/gentoo/proc
               # cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
               # chroot /mnt/gentoo /bin/bash
               # env-update
               Regenerating /etc/ld.so.cache...
               # source /etc/profile
               (I passi precedenti aggiornano i percorsi di ricerca e i binari della vostra shell)
               

Dopo aver eseguito questi comandi, sarete "dentro" il vostro nuovo ambiente Gentoo Linux in /mnt/gentoo. Eseguiremo il resto dell'installazione all'interno del chroot.

 

11) Impostare le ottimizzazioni di Gentoo (make.conf)

Ora che state lavorando su una copia del Portage tree, è giunto il momento di personalizzare le ottimizzazioni e le impostazioni build-time opzionali da utilizzare nel vostro sistema Gentoo Linux. Portage userà queste impostazioni quando compilerà un qualsiasi programma per voi. Per fare questo, modificate il file /etc/make.conf. In questo file, dovrete impostare le vostre flag USE, che specificano quali funzionalità aggiuntive si vogliono includere nella compilazione dei pacchetti, se disponibili; generalmente, le impostazioni di default sono accettabili (una variabile USE vuota o non impostata). Maggiori informazioni sulle flag USE possono essere trovate qui. Una lista completa delle flags USE correnti può essere trovata qui.

Se state partendo dal tarball dello stage1, dovreste inoltre impostare in modo appropriato le variabili CHOST, CFLAGS e CXXFLAGS per farle coincidere con il tipo di sistema che state creando (esempi commentati possono essere trovati poco più in basso nel file). Se state usando un tarball stage2 o stage3, queste impostazioni saranno già state correttamente configurate e non dovrebbero richiedere modifica alcuna.

Importante: Utenti avanzati: Le impostazioni di CFLAGS e CXXFLAGS sono utilizzate per informare i compilatori C e C++ su come ottimizzare il codice che verrà generato per il vostro sistema. E' comune, per esempio, tra gli utenti con processori Athlon XP specificare nelle proprie variabili CFLAGS e CXXFLAGS impostazioni tipo "-march=athlon-xp" in modo che tutti i pacchetti compilati vengano ottimizzati per il set di istruzioni e secondo le caratteristiche di performance disponibili nelle loro CPU. Il file /etc/make.conf contiene una guida generale relativa alle impostazioni più adeguate di CFLAGS e CXXFLAGS.

Se necessario, potete impostare a questo punto annche le informazioni relative al proxy nel caso vi trovaste dietro un firewall. Utilizzate il seguente comando per modificare /etc/make.conf servendovi di nano, un semplice editor visuale:

Esempio 31: Impostare le opzioni di make.conf

               # nano -w /etc/make.conf
               

 

Nota: Utenti avanzati: Coloro che necessitano di personalizzare in modo sostanziale il processo di compilazione dovrebbero dare un'occhiata al file /etc/make.globals. Questo file comprende i parametri di default di Gentoo e non dovrebbe mai essere toccato. Se le impostazioni di default non fossero sufficienti, i nuovi valori devono essere messi in /etc/make.conf, i valori in /etc/make.conf sovrascrivono infatti gli equivalenti in /etc/make.globals. Se siete interessati a personalizzare le impostazioni USE, guardate /etc/make.profile/make.defaults. Se volete disabilitare un qualsiasi valore di USE che avete trovato, aggiungete l'appropriato USE="-foo" in /etc/make.conf per disabilitare ogni valore di USE foo abilitato di default in /etc/make.globals o /etc/make.profile/make.defaults.

 

Attenzione: Assicuratevi di non aggiungere 'static' alla vostra variabile USE fin dopo lo stage1.

 

 

12) Bootstrap

Adesso è il momento di avviare il processo di "bootstrap". Questo processo dura circa due ore sul mio sistema AMD Athlon 1200MHz. Durante questo lasso di tempo, verranno compilati le librerie GNU C, la suite del compilatore e altri programmi chiave del sistema. Per dare il via al bootstrap fate come segue:

Esempio 32: Bootstrapping

               # cd /usr/portage
               # scripts/bootstrap.sh
               

Il processo di "bootstrap" avrà ora inizio.

Nota: Portage per default si serve di /var/tmp durante la fase di compilazione dei pacchetti, usando spesso centinaia di megabyte come area di memorizzazione temporanea. Se preferite cambiare la directory in cui Portage memorizza i propri file temporanei, impostate una nuova variabile PORTAGE_TMPDIR prima di far partire il processo di bootstrap, come segue:

 

Esempio 33: Cambiare la directory temporanea di Portage

               # export PORTAGE_TMPDIR="/altradir/tmp"
               

bootstrap.sh compilerà binutils, gcc, gettext e glibc, ricompilando nuovamente gettext dopo glibc. Inutile dirlo, questo processo durerà un bel po' di tempo. Una volta che questo processo sarà completato, il vostro sistema si troverà in uno stato equivalente allo "stage2", ciò significa che potrete proseguire seguendo le istruzione relative allo stage2.

 

13) Emerge system

 

Esempio 34: Installare il resto del sistema

               # emerge -p system
               (elenca i pacchetti che devono essere installati)
               # emerge system
               

Anche questo passaggio richiederà un bel po' di tempo per poter compilare l'intero sistema di base. La cosa positiva è che alla fine avrete sicuramente un sistema veramente ottimizzato. L'altro lato della medaglia è che dovrete trovare qualcosa che vi tenga occupati in tutto questo tempo. L'autore suggerisce "Star Wars - Super Bombad Racing" per PS2.

La compilazione è ora completata. Proseguite oltre e saltate alla sezione "Configurazione della vostra time zone".

14) Configurazione della vostra time zone

Adesso è necessario impostare la vostra time zone.

Cercate la vostra time zone (o GMT se state usando il Greenwich Mean Time) in /usr/share/zoneinfo. Quindi create un link simbolico a /etc/localtime digitando:

Esempio 35: Creare un link simbolico per la time zone

               # ln -sf /usr/share/zoneinfo/path/to/timezonefile /etc/localtime
               

15) Modificare /etc/fstab per la vostra macchina

Importante: Per modificare i file, ricordatevi di usare nano -w "filename".

Il vostro sistema Gentoo Linux è quasi pronto per l'uso. Tutto ciò che dobbiamo fare adesso è configurare alcuni importanti file di sistema e installare il boot loader. Il primo file che dobbiamo configurare è /etc/fstab. Ricordatevi di utilizzare l'opzione notail per la vostra partizione di boot nel caso abbiate scelto di utilizzare per essa un filesystem di tipo ReiserFS. Ricordatevi inoltre di specificare appropriatamente il tipo di filesystem ext2, ext3 o reiserfs per ogni partizione.

Usate qualcosa di simile al file /etc/fstab mostrato qui sotto, ma naturalmente provvedete a sostituite "BOOT", "ROOT" e  "SWAP" con i dispositivi a blocchi che avete scelto di utilizzare (come hda1, etc.):

Esempio 36: Modificare fstab

               # /etc/fstab: static file system information.
               #
               # noatime turns off atimes for increased performance (atimes normally aren't
               # needed; notail increases performance of ReiserFS (at the expense of storage
               # efficiency).  It is safe to drop the noatime options if you want and to 
               # switch between notail and tail freely.
        
               # <fs>           <mount point>   <type>   <opts>          <dump/pass>
        
               # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
               
               /dev/BOOT           /boot       ext2   noauto,noatime  1 2
               /dev/ROOT           /           ext3   noatime         0 1
               /dev/SWAP           none        swap   sw              0 0
               /dev/cdroms/cdrom0  /mnt/cdrom  iso9660        noauto,ro       0 0
               proc                /proc       proc   defaults        0 0
               

 

Attenzione: Per favore fate attenzione che /boot NON viene montata all'avvio. Questo per proteggere i dati contenuti in /boot dal pericolo di corruzione. Se avete bisogno di accedere a /boot ricordatevi di montarla!

 

16) Installare il kernel e il system logger

 

Scegliere il kernel 

Ci sono due opzioni per installare il kernel. Potete configurare da soli il vostro kernel personale oppure utilizzare l'utility genkernel per configurare e compilare il kernel automaticamente.

Sia che configuriate manualmente un kernel o che vi serviate di genkernel, avrete comunque bisogno di emergere i sorgenti del kernel Linux che avete intenzione di usare. Gentoo fornisce diversi ebuilds per vari tipi di kernel; potete trovarne una lista qui. Se siete incerti su quali sorgenti del kernel scegliere, vi consigliamo di utilizzare i gentoo-sources. Se desiderate il supporto a XFS, dovreste scegliere xfs-sources o gs-sources. Il Live CD di Gentoo utilizza gs-sources e xfs-sources. Esiste anche un kernel gaming-sources ottimizzato per le esigenze dei videogiocatori che necessitano di un sistema reattivo, a questo scopo è abilitata l'opzione "Preemptible kernel".

Scegliete un kernel ed emergetelo come segue:

Esempio 37: Emergere i sorgenti del kernel

               # emerge -k sys-kernel/gentoo-sources
               

Il link simbolico /usr/src/linux punterà al vostro nuovo albero dei sorgenti del kernel. Portage si serve del link simbolico /usr/src/linux per scopi speciali. Ogni ebuild che installate contenete dei moduli per il kernel sarà configurato per funzionare con l'albero dei sorgenti del kernel puntato da /usr/src/linux. /usr/src/linux è creato quando emergete il vostro primo pacchetto con i sorgenti del kernel, ma dopo che esso esiste Portage non andrà più a modificare questo link simbolico (ndt, si dovrà provvedere manualmente a modificarlo qualora si aggiorni il kernel).

Usare genkernel per compilare il kernel 

Ora che il vostro albero dei sorgenti del kernel è installato, è giunto il momento di compilarlo. Ci sono due modi per farlo. Il primo metodo consiste nell'utilizzare il nostro nuovo script genkernel che costruisce automaticamente un kernel per voi. genkernel opera creando una configurazione del kernel quasi identica a quella con cui è stato creato il kernel del nostro Live CD. Ciò significa che quando utilizzate genkernel per costruire il kernel, il vostro sistema rileverà generalmente tutto il vostro hardware in fase d'avvio, come fa il nostro Live CD. Poichè genkernel non richiede alcuna configurazione manuale, è la soluzione ideale per quegli utenti che non si trovano a loro agio compilando da soli il proprio kernel.

Adesso scopriamo come si usa genkernel. Prima di tutto, emergete l'ebuild genkernel:

Esempio 38: Emergere genkernel

               # emerge -k genkernel
               

Quindi compilate i sorgenti del vostro kernel eseguendo genkernel:

Nota: Utenti avanzati: potete altrimenti digitare genkernel --config, che permetterà a genkernel di lasciarvi modificare la configurazione di default del kernel prima di procedere con la compilazione.

 

Esempio 39: Eseguire genkernel

               Se state utilizzando genkernel 1.2 (incluso nel set di CD GRP 1.4-20030803 x86/i686), 
               usate il seguente comando:
               # genkernel gentoo-sources
               Se state utilizzando genkernel 1.4 o successivi, non è necessario specificare il kernel:
               # genkernel
               Gentoo Linux genkernel, version 1.4
               Copyright 2003 Gentoo Technologies, Inc., Bob Johnson, Daniel Robbins
               Distributed under the GNU General Public License version 2
               Settings:
               compile optimization: 1 processor(s)
               source tree: /usr/src/linux-2.4.20-gaming-r3
               config: gentoo (customized)
               config loc: /etc/kernels/config-2.4.20-gaming-r3
               initrd config: (default) /etc/kernels/settings
               
               * Running "make oldconfig"...                                                                     [ ok ]
               * Logging to /var/log/genkernel.log...                                                            [ ok ]
               * Starting 2.4.20-gaming-r3 build...                                                              [ ok ]
               * Running "make dep"...                                                                           [ ok ]
               * Running "make bzImage"...                                                                       [ ok ]
               * Running "make modules"...                                                                       [ ok ]
               * Running "make modules_install"...                                                               [ ok ]
               * Moving bzImage to /boot/kernel-2.4.20-gaming-r3...                                              [ ok ]
               * Building busybox...                                                                             [ ok ]
               * Creating initrd...                                                                              [ ok ]
               
               * Build completed successfully!
               
               * Please specify /boot/kernel-2.4.20-gaming-r3 and /boot/initrd-2.4.20-gaming-r3
               * when customizing your boot loader configuration files.
               

Una volta che genkernel avrà concluso, verranno creati il kernel, un set completo di moduli e l'initial root disk (initrd). Utilizzeremo il kernel e l'initrd quando più avanti in questo documento andremo a configurare un boot loader. L'initrd verrà caricato immediatamente dopo l'avvio per gestire l'autorilevazione dell'hardware (proprio come per il Live CD) prima che il vostro sistema "reale" venga avviato.

Andiamo ora ad eseguire un altro passo per rendere il nostro sistema ancora più simile al Live CD -- emergendo hotplug. Mentre l'initrd rileva automaticamente l'hardware richiesto per avviare il vostro sistema, hotplug rileva tutto il resto. Per emergere e abilitare hotplug, scrivete ciò che segue:

Esempio 40: Emergere e abilitare hotplug

               # emerge -k hotplug
               # rc-update add hotplug default
               

Ora che avete eseguito e configurato il vostro sistema utilizzando genkernel, potete saltare la seguente sezione "configurazione manuale del kernel".

Configurazione manuale del kernel 

Se non avete optato per l'utilizzo di genkernel per compilare il vostro kernel, questa sezione vi guiderà attraverso il processo manuale di configurazione e compilazione. Notate che /usr/src/linux è un symlink ai sorgenti del kernel che avete emerso ed è impostato automaticamente da Portage durante l'emersione del pacchetto stesso. Se avete installato pacchetti con sorgenti di kernel diversi tra loro, è necessario che impostiate il symlink /usr/src/linux in modo che punti a quello corretto prima di procedere.

Attenzione: Se state configurando il vostro kernel personale, fate attenzione all'opzione grsecurity. Un'eccessiva aggressività nell'impostazione dei parametri di sicurezza può causare problemi nell'esecuzione di alcuni programmi (come X). Se avete dubbi, non utilizzatela.

 

Nota: Se volete utilizzare la stessa configurazione del kernel presente sul Live CD o basare la vostra configurazione su di essa, dovete eseguire cd /usr/src/linux && cat /proc/config > .config && make oldconfig. Se non state utilizzando xfs-sources, vi verranno poste alcune domande relative alle differenze tra il kernel che avete scelto e quello xfs-sources.

 

Esempio 41: Configurare il kernel Linux

               # cd /usr/src/linux
               # make menuconfig
               

 

Attenzione: Affinché il vostro kernel funzioni correttamente, ci sono diverse opzioni che dovrete assicurarvi siano integrate nel vostro kernel -- ciò vuol dire che devono essere abilitate staticamente e non compilate come modulo. Assicuratevi di abilitare "ReiserFS" se avete partizioni ReiserFS; la stessa cosa vale per "Ext3". Se state usando XFS, abilitate l'opzione "SGI XFS filesystem support". E' sempre una scelta saggia lasciare il supporto per ext2 abilitato, che lo usiate o meno.

Quelle che seguono sono opzioni comuni di cui avrete bisogno:

Esempio 42: Opzioni di make menuconfig

               Code maturity level options --->
               [*] Prompt for development and/or incomplete code/drivers"
               (Avrete bisogno di questa per abilitare alcune delle opzioni seguenti)
               ...     
               File systems --->
               <*> Reiserfs support
               (Richiesta solo se state utilizzando reiserfs)
               ... 
               <*> Ext3 journalling file system support
               (Richiesta solo se state utilizzando ext3)
               ...
               [*] Virtual memory file system support (former shm fs)
               (Richiesta da Gentoo Linux)
               ...
               <*> JFS filesystem support
               (Richiesta solo se state utilizzando JFS)
               ...
               [*] /proc file system support
               (Richiesta da Gentoo Linux)
               [*] /dev file system support (EXPERIMENTAL)
               [*]   Automatically mount at boot          
               (Richiesta da Gentoo Linux)
               [ ] /dev/pts file system for Unix98 PTYs
               (Deselezionatela, NON è necessaria)
               ...
               <*> Second extended fs support
               (Richiesta solo se state utilizzando ext2)
               ...
               <*> XFS filesystem support
               (Richiesta solo se state utilizzando XFS)
                

Se usate PPPoE per connettervi a internet, avrete bisogno delle seguenti opzioni nel kernel (built-in o preferibilmente come moduli): "PPP (point-to-point protocol) support", "PPP support for async serial ports", "PPP support for sync tty ports". Le due opzioni relative alla compressione non guastano ma non sono propriamente necessarie, così come l'opzione "PPP over Ethernet", che potrebbe essere usata solamente da rp-pppoe quando configurate il kernel in modalità PPPoE.

Se avete un masterizzatore IDE, allora avrete bisogno di abilitare l'emulazione SCSI nel kernel. Abilitate "ATA/IDE/MFM/RLL support" ---> "IDE, ATA and ATAPI Block devices" ---> "SCSI emulation support" (Compilati normalmente come moduli), poi sotto "SCSI support" abilitate "SCSI support", "SCSI CD-ROM support" e "SCSI generic support" (ancora, compilati normalmente come moduli). Se avete scelto di usare i moduli, allora date echo -e "ide-scsi\nsg\nsr_mod" >> /etc/modules.autoload.d/kernel-2.4 per averli aggiunti automaticamente all'avvio.

Nel caso ne abbiate bisogno, non dimenticatevi di includere il supporto per la vostra scheda ethernet nel kernel.

Nota: Per coloro che lo preferiscono, è possibile installare Gentoo Linux con un kernel 2.2. Tuttavia questa scelta ha un prezzo: perderete le ottime caratteristiche che sono prerogativa della serie 2.4 del kernel (come il supporto ai filesystems XFS e tmpfs, iptables e altro), anche se comunque i sorgenti del kernel 2.2 possono essere patchati con il supporto a ReiserFS e a devfs. Gli script di avvio di Gentoo Linux richiedono il supporto nel kernel per tmpfs o ramdisk, così coloro che vogliono usare il kernel 2.2 devono essere sicuri di avere il supporto per il ramdisk incluso (non come modulo quindi) nel kernel. E' vitale che la flag gentoo=notmpfs sia aggiunta alla linea del kernel in /boot/grub/menu.lst o in /etc/lilo.conf per i kernel della serie 2.2, in modo tale che gli script di avvio montino il ramdisk invece di tmpfs. Se scegliete di non usare devfs, allora dovrete usare la riga gentoo=notmpfs,nodevfs al posto della precedente.

 

Esempio 43: Compilare e installare il kernel

               # make dep && make clean bzImage modules modules_install
               # cp /usr/src/linux/arch/i386/boot/bzImage /boot
               

Installare ebuilds addizionali per hardware specifico 

Infine, dovrete emergere eventuali ebuilds per ogni tipo di hardware addizionale presente nel vostro sistema. Qui trovate una lista degli ebuilds legati al kernel che potete emergere:

Ebuild

Finalità

Comando

nvidia-kernel

Accelerazione grafica NVIDIA per XFree86

emerge -k nvidia-kernel

nforce-net

Controller ethernet integrato nelle schede madri con chip NVIDIA NForce(2)

emerge nforce-net

nforce-audio

Audio integrato nelle schede madri con chip NVIDIA NForce(2)

emerge nforce-audio

e100

Adattatori Intel e100 Fast Ethernet

emerge e100

e1000

Adattatori Intel e1000 Gigabit Ethernet

emerge e1000

emu10k1

Supporto per Creative Sound Blaster Live!/Audigy

emerge emu10k1

ati-drivers

Accelerazione grafica ATI Radeon 8500+/FireGL per XFree86

emerge ati-drivers

xfree-drm

Accelerazione grafica per ATI Radeon fino alla 9200, Rage128, Matrox, Voodoo e altre schede per XFree86

VIDEO_CARDS="vostrascheda" emerge xfree-drm

I pacchetti nvidia-kernel, ati-drivers e xfree-drm richiederanno una configurazione aggiuntiva per poter essere abilitati. Tutti gli altri ebuilds elencati in precedenza dovrebbero essere rilevati automaticamente all'avvio dal pacchetto hotplug. Se non state usando hotplug, assicuratevi di aggiungere i moduli appropriati in /etc/modules.autoload.d/kernel-2.4.

Maggiori informazioni su xfree-drm possono essere trovate nella nostraDirect Rendering Guide.

Installare un system logger 

Il vostro nuovo kernel (e i moduli) sono ora installati. Adesso vi è richiesto di scegliere il system logging (ndt, si occupa della gestione dei vari log del vostro sistema) che volete installare. Offriamo sysklogd, che è il tradizionale insieme di demoni per il logging di sistema. Abbiamo però anche msyslog e syslog-ng così come metalog. Gli utenti esperti che gravitavano attorno a sysklogd (che non brilla per prestazioni) sembra si stiano spostando verso le nuove alternative. Se siete in dubbio, potete provare metalog, che sembra essere abbastanza popolare. Per emergere il logger che avete scelto, digitate uno dei seguenti quattro comandi:

Esempio 44: Emergere il System Logger scelto

               # emerge -k app-admin/sysklogd
               # rc-update add sysklogd default
               o
               # emerge -k app-admin/syslog-ng
               # rc-update add syslog-ng default
               o
               # emerge -k app-admin/metalog
               # rc-update add metalog default
               o
               # emerge -k app-admin/msyslog
               # rc-update add msyslog default
               

 

Importante: Metalog scrive l'output su disco in blocchi, così i messaggi non vengono immediatamente registrati nei log di sistema. Se state tentando di fare il debug di un demone, questa caratteristica, volta a migliorare le prestazioni, risulta più dannosa che utile. Una volta che il vostro sistema Gentoo Linux sta girando, potete mandare a metalog un segnale USR1 che dovrebbe temporaneamente disabilitare questo buffering dei messaggi (ciò significa che tail -f /var/log/everything/current dovrebbe ora funzionare in tempo reale, come ci aspetteremmo) e un segnale USR2 per ripristinare nuovamente il buffering. Se volete disabilitare permanentemente il buffering, potete cambiare l'opzione METALOG_OPTS="-B" in METALOG_OPTS="-B -s" in /etc/conf.d/metalog.

Esempio 45: Attivare/Disattivare il buffering di metalog

               // Per disattivare il buffering:
               # killall -USR1 metalog
               // Per attivare il buffering:
               # killall -USR2 metalog
               

Adesso se volete potete facoltativamente scegliere il pacchetto cron che preferite usare. Per ora offriamo dcron, fcron e vcron. Se non sapete quale scegliere tra questi, potete orientarvi verso vcron.

Esempio 46: Scegliere un demone CRON

               # emerge -k sys-apps/dcron
               # rc-update add dcron default
               # crontab /etc/crontab
               o
               # emerge -k sys-apps/fcron
               # rc-update add fcron default
               # crontab /etc/crontab
               o
               # emerge -k sys-apps/vcron
               # rc-update add vcron default
               Non è richiesta l'esecuzione di crontab /etc/crontab se usate vcron.
               

Per maggiori informazioni sull'avvio di programmi e sui demoni da avviare, date un'occhiata alla rc-script guide.

 

17) Installazione di vari pacchetti necessari

 

Se avete bisogno di rp-pppoe per connettervi alla rete, siate consapevoli che a questo punto non è stato ancora installato. Potrebbe essere un buon momento per farlo:

Esempio 47: Installare rp-pppoe

               # USE="-X" emerge rp-pppoe
               Gli utenti GRP dovrebbero digitare quanto segue:
               # USE="-X bindist" emerge -K rp-pppoe
               

 

Nota: La variabile USE="-X" previene l'installazione da parte di pppoe dell'interfaccia grafica per X opzionale, che è buona cosa visto che verrebbero emersi anche X e le sue dipendenze. Potete sempre ricompilare rp-pppoe con il supporto per X in seguito.

 

Nota: Notate che rp-pppoe è installato ma non configurato. Dovrete provvedere voi a farlo usando adsl-setup dopo aver avviato il vostro sistema Gentoo per la prima volta.

Potreste aver bisogno di installare altri pacchetti addizionali del Portage tree nel caso stiate usando qualsiasi funzionalità aggiuntiva come XFS, ReiserFS o LVM. Se state usando XFS, dovreste emerge il pacchetto xfsprogs:

Esempio 48: Emergere i tools per i vari Filesystem

               # emerge -k sys-apps/xfsprogs
               Se state usando ReiserFS, dovreste emergere i tool di ReiserFS: 
               # emerge -k sys-apps/reiserfsprogs
               Se state usando JFS, dovreste emergere i tool di JFS: 
               # emerge -k jfsutils
               Se state usando LVM, dovreste emergere il pacchetto lvm-user: 
               # emerge -k sys-apps/lvm-user
               

Se state utilizzando un laptop e volete usare i vostri slot PCMCIA al primo vero riavvio, dovrete assicurarvi di installare il pacchetto pcmcia-cs.

Esempio 49: Emergere PCMCIA-cs

               # emerge -k sys-apps/pcmcia-cs
               

 

18) Gestione degli utenti

 

Impostare una password per root 

Prima di dimenticarvene, impostate la password per root digitando:

Esempio 50: Impostare la password per root

               # passwd
               

Aggiungere un utente per l'uso quotidiano 

Lavorare come root in un sistema Unix/Linux è pericoloso e andrebbe evitato per quanto possibile. Per questo è fortemente raccomandata l'aggiunta di un utente per il normale uso quotidiano:

Esempio 51: Aggiungere un utente

               # useradd vostro_utente -m -G users,wheel,audio -s /bin/bash
               # passwd vostro_utente
               

Sostituite vostro_utente con il vostro username.

Ogni volta che dovrete eseguire un qualche task gestibile solo come root, usate su - per cambiare i vostri privilegi assumendo quelli di root, o date un'occhiata al pacchetto sudo.

 

19) Impostare il vostro Hostname

 

Modificate /etc/hostname in modo che contenga il vostro hostname su una singola linea, p.e. mymachine.

Esempio 52: Configurare l'Hostname

               # echo mymachine > /etc/hostname
               

Quindi modificate /etc/dnsdomainname in modo che contenga il vostro nome di dominio DNS, p.e. mydomain.com.

Esempio 53: Configurare il nome di dominio

               # echo mydomain.com > /etc/dnsdomainname
               

Se possedete un dominio NIS, dovreste impostarlo in /etc/nisdomainname.

Esempio 54: Configurare il nome di dominio NIS

               # echo nis.mydomain.com > /etc/nisdomainname
               

 

20) Modifiche a /etc/hosts

 

Questo file contiene una lista di indirizzi IP e di hostname ad essi associati. E' utilizzato dal sistema per risolvere gli indirizzi IP di quelle macchine che non possono trovarsi nei vostri nameservers. Segue un esempio per questo file:

Esempio 55: Template di Hosts

               127.0.0.1      localhost
               # la prossima linea contiene il vostro IP relativo alla LAN locale in cui vi trovate e il nome 
               della macchina ad esso associato
               192.168.1.1    mymachine.mydomain.com mymachine
               

 

Nota: Se vi trovate in una rete DHCP, potrebbe risultarvi utile aggiungere il nome attuale della vostra macchina dopo localhost. Ciò aiuterà GNOME e diversi altri programmi nella risoluzione dei nomi.

21) Configurazione finale della rete

Aggiungete i nomi di tutti i moduli necessari al corretto funzionamento del vostro sistema al file /etc/modules.autoload.d/kernel-2.4 (potete anche aggiungere tutte le opzioni necessarie sulla stessa riga). All'avvio di Gentoo Linux, questi moduli verranno automaticamente caricati. Di particolare importantanza è il modulo relativo al supporto per la vostra scheda di rete, se avete scelto di compilarlo come modulo:

Esempio 56: /etc/modules.autoload.d/kernel-2.4

               Si assume qui che stiate utilizzando una scheda 3com. 
               Controllate /lib/modules/`uname -r`/kernel/drivers/net per la vostra scheda. 
               3c59x
               

Modificate lo script /etc/conf.d/net per ottenere che la vostra rete venga configurata all'avvio:

Esempio 57: Configurazione della rete all'avvio

               # nano -w /etc/conf.d/net
               Solo per schede di rete non-PCMCIA:
               # rc-update add net.eth0 default
               

Se possedete schede di rete multiple o interfacce tokenring, avrete bisogno di creare script net.ethx o net.trx aggiuntivi per ogni scheda (con x = 1, 2, ...):

Esempio 58: Interfacce di rete multiple

               # cd /etc/init.d
               # cp net.eth0 net.ethx
               Solo per schede di rete non-PCMCIA:
               # rc-update add net.ethx default
               

Se avete installato una scheda PCMCIA, date una rapida occhiata in /etc/init.d/pcmcia per verificare se corrisponde alla vostra configurazione, quindi eseguite i seguenti comandi:

Esempio 59: Avere i servizi PCMCIA avviati automaticamente

               # rc-update add pcmcia boot
               

Questo vi assicurerà che i driver PCMCIA vengano caricati automaticamente ogni volta che la vostra rete è attivata. I servizi /etc/init.d/net.eth* appropriati verranno avviati automaticamente dal servizio pcmcia.

22) Passi finali: configurare le impostazioni di base (inclusa l'impostazione internazionale della keymap)

Esempio 60: Configurazione di base

               # nano -w /etc/rc.conf
               

Scorrendo le varie voci in questo file potrete configurare le impostazioni di base. Tutti gli utenti vorranno essere sicuri che la variabile CLOCK sia impostata come desiderano. Gli utenti con tastiere internazionali vorranno impostare correttamente la variabile KEYMAP (cercate in /usr/share/keymaps per trovare le varie possibilità).

23) Configurare un Bootloader

Note 

Nello spirito che caratterizza Gentoo, gli utenti possono ora scegliere tra più di un bootloader. Utilizzando il nostro sistema di pacchetti virtuale, gli utenti possono scegliere tra GRUB e LILO come loro bootloader.

Tenete bene a mente che non è necessario avere installati entrambi i bootloaders. A conti fatti ciò può essere d'ostacolo, quindi sceglietene uno soltanto.

In più, dovrete configurare il vostro bootloader in modo differente a seconda di come avete compilato il vostro kernel, se utilizzando genkernel (con kernel e initrd) o manualmente. Assicuratevi di tenere nota di queste importanti differenze.

Importante: Se state installando Gentoo Linux su un sistema con scheda madre basata sul chipset nForce o nForce2 con scheda grafica GeForce integrata, dovreste usare LILO ed evitare GRUB. Con il video on-board abilitato, l'area di memoria più bassa della vostra RAM potrebbe essere usata come RAM video. Dato che anche GRUB usa la stessa area di memoria all'avvio, si potrebbe verificare una condizione di "out of memory". Quindi se avete una nForce o eventualmente altre schede con video integrato, usate LILO. Inoltre se adesso state usando schede grafiche non integrate, sarebbe carino avere la possibilità di rimuovere la scheda grafica e usare quella on-board in caso di bisogno, non è vero? :)

Configurare GRUB 

La parte più critica da capire di GRUB è quella necessaria per prendere confidenza con la notazione che GRUB usa per riferirsi ai dischi e alle partizioni. La vostra partizione Linux /dev/hda1 è chiamata da GRUB (hd0,0). Notate che le parentesi che racchiudono hd0,0 - sono richieste. I dischi vengono contati a partire da zero invece che da "a" e le partizioni partono da zero invece che da uno. Ugualmente sappiate che vengono considerati come periferiche hd solo gli hard disk e non le periferiche atapi-ide come lettori cdrom, masterizzatori e che lo stesso principio vale anche per le periferiche SCSI. (Normalmente queste prendono numeri alti rispetto alle periferiche ide eccetto quando il bios è configurato per fare il boot da periferiche SCSI). Assumendo che abbiate un disco in /dev/hda, un lettore cdrom in /dev/hdb, un masterizzatore in /dev/hdc, un secondo disco fisso in /dev/hdd e nessun disco SCSI, /dev/hdd7 viene trasformato in (hd1,6). Potrebbe suonare complicato e complicato in effetti è, ma come vedrete, GRUB offre un meccanismo di completamento col tasto TAB che si dimostra comodo per coloro che hanno un numero notevole di hard disk e partizioni e sono un po' a disagio con lo schema numerico di GRUB. Avendo preso coscienza di questo, è il momento di installare GRUB.

Il modo più semplice per installare GRUB è semplicemente quello di digitare grub al prompt della vostra shell chrooted:

Esempio 61: Installare GRUB

               # emerge -k grub
               # grub
               

Vi verrà presentato il prompt della linea di comando di GRUB, grub>. Ora dovrete digitare i comandi corretti per installare il boot record di GRUB sul vostro hard disk. Nella mia configurazione d'esempio, voglio installare il boot record di GRUB nell'MBR (master boot record, il primo settore del disco fisso) del mio disco rigido, in modo che la prima cosa che vedo quando accendo il mio computer è il prompt di GRUB. Nel mio caso, i comandi che devo digitare sono:

Esempio 62: GRUB nell'MBR

               grub> root (hd0,0) (La vostra partizione di boot)
               grub> setup (hd0) (Dove il boot record deve essere installato; in questo caso, 
               nell'MBR)
               

 

Esempio 63: GRUB non nell'MBR

               Alternativamente, se volete installare il bootloader in qualche altro posto che non
               sia l'MBR:
               grub> root (hd0,0) (La vostra partizione di boot)
               grub> setup (hd0,4) (Dove il boot record deve essere installato; in questo caso
               in /dev/hda5)
               grub> quit
               

Vediamo come funzionano i due comandi. Il primo comando root ( ) dice a GRUB la locazione della vostra partizione di boot (nel nostro esempio, /dev/hda1 o (hd0,0) nella terminologia GRUB). Quindi il secondo comando, setup ( ), dice a GRUB dove installare il boot record - sarà configurato per cercare i suoi file speciali nella locazione root ( ) che avete specificato. Nel mio caso, voglio che il boot record venga installato nell'MBR del disco rigido, così ho semplicemente specificato /dev/hda (conosciuto anche come (hd0)). Se stessi usando un altro boot loader e volessi installare GRUB come boot loader secondario, dovrei installare GRUB nel boot record di una partizione particolare. In questo caso, dovrei specificare una particolare partizione invece dell'intero disco. Una volta che il boot record di GRUB è stato installato con successo, potete digitare quit per uscire da GRUB.

Nota: Il meccanismo del completamento di GRUB attraverso tab può essere usato all'interno di GRUB; assumiamo che abbiate scritto root ( e che ora premiate il tasto TAB, vi dovrebbe essere mostrata una lista di periferiche disponibili (non solo dischi fissi), premendo nuovamente il tasto TAB dopo aver scritto root (hd, GRUB vi dovrebbe mostrare solo gli hard disk e premendo ancora TAB dopo aver scritto root (hd0, dovreste avere la lista delle partizioni del primo disco. Controllare la sintassi delle locazioni con il completamento di GRUB dovrebbe veramente contribuire a fare la scelta giusta.

Gentoo Linux è ora installato, ma dobbiamo creare il file /boot/grub/grub.conf che serve per mostrare il bel menu di GRUB quando viene riavviato il sistema. Trovate di seguito come fare.

Importante: Per assicurarsi la retrocompatibilità con GRUB, assicuratevi di creare un link da grub.conf a menu.lst. Potete provvedere a ciò digitando ln -s /boot/grub/grub.conf /boot/grub/menu.lst.

Adesso create il file grub.conf (nano -w /boot/grub/grub.conf) e aggiungetevi quanto segue:

Esempio 64: grub.conf per GRUB

               default 0
               timeout 30
               splashimage=(hd0,0)/boot/grub/splash.xpm.gz
               # Se avete compilato il vostro kernel personale, usate qualcosa di simile a questo:
               title=My example Gentoo Linux
               root (hd0,0) 
               kernel (hd0,0)/boot/bzImage root=/dev/hda3 
               
               # Se avete usato genkernel, usate qualcosa di simile a quanto segue:
               title=My example Gentoo Linux (genkernel)
               root (hd0,0)
               kernel (hd0,0)/boot/kernel-KV root=/dev/hda3
               initrd (hd0,0)/boot/initrd-KV
               
               # Questo è richiesto solo per coloro che hanno un sistema dual-boot
               title=Windows XP
               root (hd0,5) 
               chainloader (hd0,5)+1
               

Sostituite KV con la versione del kernel che avete installato.

Nota: (hd0,0) dovrebbe essere scritto senza alcuno spazio tra le parentesi.

 

Importante: Se avete impostato l'emulazione SCSI per un eventuale masterizzatore IDE, allora per renderlo attivo avrete bisogno di aggiungere hdx=ide-scsi alla linea del kernel in grub.conf (dove "hdx" dovrebbe essere il device che indica il vostro masterizzatore).

Dopo aver salvato questo file, l'installazione di Gentoo Linux è completata. Scegliendo la prima opzione diremo a GRUB di avviare Gentoo Linux. La seconda parte del file grub.conf è opzionale e mostra come usare GRUB per fare il boot di una partizione Windows avviabile.

Nota: Sopra, (hd0,0) dovrebbe puntare alla vostra partizione di "boot" (/dev/hda1 nella nostra configurazione d'esempio) e /dev/hda3 dovrebbe puntare al vostro filesystem root. (hd0,5) contiene il boot loader di NT.

 

Nota: Il percorso all'immagine del kernel è legato alla partizione di boot. Se per esempio avete una partizione di boot separata (hd0,0) e una partizione root (hd0,1), tutti i percorsi nel file grub.conf precedente diventeranno tipo /bzImage.

Se avete bisogno di passare qualsiasi opzione aggiuntiva al kernel, aggiungetela semplicemente alla fine del comando kernel. Stiamo già passandogli un'opzione (root=/dev/hda3), ma possiamo passargliene anche delle altre. In particolare, potreste disabilitare di default il supporto a devfs (non raccomandato a meno che sappiate cosa state facendo) aggiungendo l'opzione gentoo=nodevfs al comando kernel.

Nota: A differenza delle versioni iniziali di Gentoo Linux, non è più necessario aggiungere devfs=mount alla fine della riga del kernel per abilitare devfs. Ora devfs è abilitato per default.

Configurare LILO 

Mentre GRUB può rappresentare una nuova alternativa per molte persone, non sempre è la scelta migliore. LILO, il LInuxLOader, è il più testato e vero cavallo da tiro tra i bootloader di Linux. Ecco come installare LILO se lo volete usare al posto di GRUB:

Il primo passo è emergere LILO:

Esempio 65: Emergere LILO

               # emerge -k lilo
               

Ora è il momento di configurare LILO. Trovate di seguito un file di configurazione /etc/lilo.conf d'esempio:

Esempio 66: Esempio di lilo.conf

               boot=/dev/hda
               map=/boot/map
               install=/boot/boot.b
               prompt
               timeout=50
               lba32
               default=linux
               # Utilizzate qualcosa di simile alle seguenti 4 linee se compilate da soli il vostro 
               kernel
               
               image=/boot/bzImage
                       label=linux
                       read-only
                       root=/dev/hda3
               # Se usate genkernel, servitevi di qualcosa simile a questo:
               image=/boot/kernel-KV
                       label=gk_linux
                       root=/dev/hda3
                       initrd=/boot/initrd-KV
                       append="root=/dev/ram0 init=/linuxrc"
               
               # Per il dual boot con windows/altri OS
               other=/dev/hda1
                       label=dos
               

Sostituite KV con la versione del kernel che avete installato e assicuratevi che default= punti alla label (ndt, etichetta) corretta (gk_linux se usate genkernel).

Dopo aver modificato il vostro file lilo.conf, è il momento di eseguire LILO per caricare le informazioni nell'MBR:

Esempio 67: Eseguire LILO

               # /sbin/lilo
               

LILO è configurato e ora la vostra macchina è pronta per avviare Gentoo Linux!

Usare il framebuffer 

Coloro che hanno selezionato il framebuffer nel loro kernel dovrebbero aggiungere vga=xxx al file di configurazione del loro bootloader. xxx è uno dei valori della seguente tabella:

 

640x480

800x600

1024x768

1280x1024

8 bpp

769

771

773

775

16 bpp

785

788

791

794

32 bpp

786

789

792

795

Gli utenti di LILO dovranno aggiungere vga=xxx in cima al loro file di configurazione.

Gli utenti di GRUB dovranno aggiungere vga=xxx alla linea kernel (hd0,0)....

24) Creare un dischetto d'avvio

Dischetto d'avvio di GRUB 

Importante: Non dimenticatevi di inserire un floppy nel vostro lettore prima di procedere.

E' sempre una buona idea creare un dischetto di avvio la prima volta che installate una qualsiasi distribuzione Linux. Questa per motivi di sicurezza e perchè normalmente non è una cattiva idea farlo. Se il vostro hardware non vi permette di installare un bootloader funzionante dall'ambiente chrooted, potreste avere la necessità di creare un dischetto d'avvio di GRUB. Se vi trovate in questa situazione, create un disco d'avvio di GRUB e quando riavvierete per la prima volta potrete installare GRUB nell'MBR. Create il vostro dischetto di avvio in questo modo:

Esempio 68: Creare un dischetto d'avvio di GRUB

               # cd /usr/share/grub/i386-pc/
               # cat stage1 stage2 > /dev/fd0
               

Ora riavviate e caricate il floppy. Al prompt grub> del floppy, potrete finalmente eseguire i comandi root e setup necessari per l'installazione.

Dischetto d'avvio di LILO 

Importante: Non dimenticatevi di inserire un floppy nel vostro lettore prima di procedere.

Se state usando LILO, è comunque una buona idea creare un disco d'avvio:

Esempio 69: Creare un dischetto d'avvio

               # dd if=/boot/your_kernel of=/dev/fd0 
               (Ciò funzionerà solo se il vostro kernel è più piccolo di 1.4MB)
               

25) Installare xfree e kde

Potete a questo punto installare xfree e kde

Esempio 70: Installare dalla xfree e kde

               # emerge -k xfree 
               # emerge –k kde
               

26) L'installazione è completa!

Adesso Gentoo Linux è installato. Il solo passo che rimane da fare è aggiornare i file di configurazione necessari, uscire dalla shell chrooted, quindi smontare le vostre partizioni e riavviare il sistema:

Attenzione: etc-update vi può fornire una lista dei file di configurazione a vostra disposizione più recenti di quelli attualmente installati. Controllate che nessuno dei file di configurazione abbia un forte impatto sul sistema (come /etc/fstab, /etc/make.conf, /etc/rc.conf, ...). Fate il merge dei file che non sortiranno un forte impatto sul sistema, rimuovete gli aggiornamenti degli altri o guardatene le differenze e aggiornateli manualmente.

 

Esempio 84: Riavviare il sistema

               # etc-update
               # exit 
               (Questo per uscire dalla shell chrooted; potete anche digitare ^D)
               # cd / 
               # umount /mnt/gentoo/boot
               # umount /mnt/gentoo/proc
               # umount /mnt/gentoo
               # reboot
               (Non dimenticatevi di rimuovere il CD avviabile)
               

 

Nota: Dopo il riavvio, è sicuramente una buona idea eseguire il comando update-modules per creare il file /etc/modules.conf. Invece di modificare questo file direttamente, potrete fare le vostre modifiche al file /etc/modules.d.