|
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).
PREMESSA:
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).
PRIMA PARTE:
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.
SECONDA PARTE:
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).
boot=/dev/hda dice a LILO di installarsi sul primo hard disk del primo controller IDE.
map=/boot/map specifica il file map. Per un uso normale, questo non andrebbe modificato.
install=/boot/boot.b dice a LILO di installare il file specificato come nuovo settore di boot. In un normale uso, questo non andrebbe modificato. Se la linea di installazione è omessa, LILO assumerà di default che il file da usare sia /boot/boot.b.
La presenza di prompt dice a LILO di visualizzare il classico prompt lilo: all'avvio. Nonostante non sia raccomandata la rimozione della linea di prompt, se doveste rimuoverla, potrete ancora ottenere un prompt premendo il tasto [Shift] mentra la vostra macchina si sta avviando.
timeout=50 imposterà la durata dell'intervallo di tempo in cui LILO attenderà l'input dell'utente prima di procedere avviando il sistema indicato dalla linea di default. Questo valore è misurato in decimi di secondo, con 50 come default.
lba32 descrive la geometria del disco fisso a LILO. Un altro valore comune è "linear". Non dovete cambiare questa linea a meno che non siate veramente sicuri di ciò che fate. Altrimenti potreste portare il vostro sistema in uno stato non avviabile.
default=linux fa riferimento al sistema operativo di default che LILO avvierà tra le quelli elencati di seguito. Il nome linux si riferisce a una delle linee label che si trovano in ciascuna delle successive opzioni di boot.
image=/boot/bzImage specifica il kernel linux da avviare con le relative opzioni di boot.
label=linux è il nome dell'opzione di boot relativa a un sistema operativo che LILO visualizzerà. In questo caso, è anche il nome cui fa riferimento la linea default.
read-only specifica che la partizione root (guardate la seguente linea root) è in sola lettura e non può essere alterata durante il processo di boot.
root=/dev/hda3 dice a LILO quale partizione del disco usare come partizione root.
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. |