Torna a Metodo di installazione

Prima di procedere con il setup vero e proprio è necessario eseguire alcuni piccoli step preliminari:

  • Partizionare e formattare la scheda di memoria
  • Aggiungere un repository YUM "fittizio" a quelli conosciuti dalla macchina virtuale.

Iniziamo quindi con le operazioni sulla scheda di memoria: se la configurazione di Virtualbox è stata fatta correttamente, non appena si inserisce la Compact Flash il sistema dovrebbe immediatamente trovare il nuovo disco:
 

detect cf

La compact flash viene vista come un disco al quale viene assegnato un identificatore: Linux utilizza dei driver SCSI per parlare con tutti i dischi collegati tramite USB e per questo il device assegnato avrà la forma sdx; nell'esempio evidenziato, la mia CF è stata vista come sda.

Il primo passo da fare è quello di creare almeno una partizione sulla scheda e renderla attiva per poterci fare il boot sopra: il comando da usare in questo caso è fdisk seguito dal device corrispondente alla scheda di memoria:
 

# fdisk /dev/sda


FDISK è un programma "interattivo" ovvero presenta all'utente un prompt sul quale digitare le operazioni da fare sul disco indicato: nel nostro caso è necessario:

  1. creare una nuova partizione (comando N),
  2. specificare che si tratta di una partizione primaria (P),
  3. Specificare il numero della partizione primaria (1 essendo appunto la prima)
  4. Specificare il cilindro di inizio (lasciare pure il valore predefinito)
  5. Specificare il cilindro di fine oppure la dimensione della partizione (soluzione che ho preferito: quindi ho specificato +3800M alla richiesta sul valore del cilindro finale)
  6. Rendere la partizione attiva con il comando a (viene nuovamente richiesta la conferma di quale partizione attivare)
  7. Salvare le configurazioni sul disco con il comando w
A questo punto è necessario formattare la partizione ovvero, usando i termini del mondo Linux, creare un file system con il comando:

 

# mkfs.ext3 /dev/sda1


Che possiamo tradurre in "crea un file system di tipo EXT3 sulla partizione 1 del disco identificato come /dev/sda). Se tutto è stato correttamente specificato, il sistema inizierà a creare il file system (a me ha impiegato circa 1 minuto).

Per poter accedere alla scheda è necessario montare la scheda stessa in una posizione della struttura ad albero: personalmente ho deciso di montare la partizione dentro /mnt/cf (/mnt è già presente mentre cf è stata creata per l'occasione):

# mkdir /mnt/cf
# mount /dev/sda1 /mnt/cf


Da questo momento in poi la scheda è accessibile spostandosi sul percorso /mnt/cf.


Concentriamo adesso la nostra attenzione sulla macchina virtuale ed in particolare sul sistema YUM, ovvero il package manager del "mondo" RedHat, il cui compito è appunto l'installazione (risolvendo tutte le necessarie dipendenze) delle varie componenti presenti nella distribuzione. Analogamente ad altri package manager, YUM definisce dei "repository" dai quali attingere il software: normalmente i repository sono siti Internet ma è possibile anche specificare il CDROM oppure percorsi disco. L'elenco dei repository si trova all'interno della directory /eyc/yum.repos.d/ ed è formato da una serie di files (con estensiopne .repo) ciascuno contenente la definizione di un o più repository. Il file principale è CentOS-Base e nella prima parte contiene il repository "fondamentale" per l'installazione di CentOS:

 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep$
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br


Si puè notare come il file utilizzi alcune "variabili" per specificare la versione ($releasever) e l'architettura ($basearh) che vengono rimpiazzate con la versione e la piattaforma della macchina dove sta girando YUM.
Se provassimo a fare l'installazione senza modificare in qualche modo i reposotory, YUM darebbe errore perchè non sarebbe in grado di "espandere" le variabili sopra elencate dato che nella Compact Flash non c'è ancora niente!

E' quindi necessario creare un file "fittizio" che non contenga le variabili di ambiente ma dei valori fissi per quanto riguarda la versione (5.5 al momento della scrittura) e l'architettura (i386). Per fare questo consiglio di copiare il file CentOS-Base:

# cd /etc/yum.repos.d
# cp CentOS-Base.repo alix.repo

E modificarlo come segue (le modifiche sono in rosso):

[alix]
name=CentOS-alix
mirrorlist=
http://mirrorlist.centos.org/?release=5&arch=i386&rep$
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br< a="">>
Spendiamo due parole su quanto è stato fatto. Il contenuto tra parentesi quadre è il nome del repository (quello che poi dovremo usare durante l'installazione) mentre  la variabile name è solo descrittiva. Nel campo mirrorlist sono state sostituite le variabili di ambiente con i valori fissi relativi alla versione e alll'architettura. La voce gpgcheck è stata disabilitata (effettua una verifica della chiave dei pacchetti durante l'installazione, operazione che non è possibile dato che nella CF non c'è niente!)
Una nota importante è l'aggiunta della voce enabled=0 che fa si che normalmente questo repository non venga considerato durante le normali operazioni di YUM (utile per non "sporcare" la VM che state usando).

Dopo aver partizionato e montato la scheda come /mnt/cf e fatte le opportune modifiche su YUM, siano quindi pronti ad installare il sistema operativo con il comando:

# yum --installroot=/mnt/cf --disablerepo=* --enablerepo=alix install kernel rpm grub passwd nano vi yum sysklogd

Vediamo nel dettaglio il comando:

  • installroot: con questa opzione specifichiamo a YUM che l'installazione dei componenti di seguito specificati dovrà essere fatta sulla scheda di memoria e non sulla normale "root" del disco.
  • disablerepo e enablerepo: con il primo comando disabilitiamo tutti i repository (tanto per evitare confusione con le altre definizioni che NON sono state modificate come indicato precedentemente) e con il secondo attiviamo esclusivamente il repository "modificato".
  • install: questo è il vero e proprio comando che dice quali moduli installare sulla macchina:
    • kernel: non credo servano spiegazioni
    • grub: è il boot manager necessario per caricare il S.O.
    • rpm e yum: direi fondamentali per installare e gestire i pacchetti successivamente
    • passwd: la gestione delle password
    • sysklogd: è il syslog per i messaggi dai moduli kernel (vedi /var/log/messages e simili)
    • nano e vi: almeno un paio di editor conviene averli!

YUM si occuperà di risolvere tutte le dipendenze necessarie ed al termine proporrà di installare un centinaio di pacchetti (a me ne ha installati 106) che provvederà a scaricare direttamente da Internet: al contrario di quello che si potrebbe pensare, la fase più lunga non è tanto il download da Internet (ovviamente dipende anche dal tipo di connessione!) quanto il tempo necessario ad installare i pacchetti sulla scheda CF (ricordiamoci che la scheda CF è vista tramite un adattatore USB e quindi la velocità non sarà eccezionale). Non rimane quindi che attendere la fine del setup.

Al termine dell'installazione troveremo, in /mnt/cf, un sistema CentOS completo di tutti i binari, ma mancante di alcune componenti importanti:
  1. Il Boot Manager
  2. il file delle partizioni /etc/fstab
  3. La redirezione in seriale della console
  4. Un appropriato file di init
  5. il file delle password.

Nel 
Prossimo articolo affronteremo tutti questi punti