Capitolo 4. Il primo boot

Sommario
4.1. Se qualcosa è andato storto
4.2. Login
4.3. Cambiare la disposizione della tastiera
4.4. Il comando più importante
4.5. Cambiare la password di root
4.6. Cambiare la shell
4.7. Cambiare l'ora di sistema
4.8. Configurare /etc/rc.conf
4.9. Impostare il nome dell'host
4.10. Riavvio del sistema

Al termine dell'installazione si procede al primo avvio del sistema da disco fisso: se tutto è andato bene ci si troverà di fronte al prompt di login. Chi è abituato a trovarsi un sistema preconfigurato al termine dell'installazione del sistema operativo, con NetBSD può sentirsi un po' spaesato: seguendo le istruzioni di questa guida si potrà configurare rapidamente il sistema imparando nel contempo come funziona.

4.1. Se qualcosa è andato storto

Se qualcosa è andato storto nell'installazione può darsi che il sistema non si riavvii. Uno dei problemi più comuni è l'errata installazione del boot manager. In questo caso, inserire il floppy di installazione nel lettore e riavviare la macchina; quando compare la scritta

booting fd0a:netbsd - starting in ...    

premere la barra spazio durante il conto alla rovescia di 5 secondi; il boot si interrompe e compare un prompt. Con il punto di domanda si visualizza l'aiuto.

type "?" or "help" for help.
> ?
commands are:
boot [xdNx:][filename] [-adrs]
     (ex. "sd0a:netbsd.old -s")
ls [path]
dev xd[N[x]]:
help|?
quit
> boot wd0a:netbsd
    

Con il comando precedente si indica al sistema di avviarsi dal disco fisso anziché dal floppy. Se il sistema si avvia regolarmente dal disco fisso si tratta solo di un problema di boot manager, in caso contrario bisognerà probabilmente ripetere l'installazione. Per installare nuovamente il boot manager o modificarne la configurazione si usa il comando fdisk con l'opzione -B (vedere la Sezione 20.4 per una spiegazione dettagliata).

4.2. Login

Per il primo login bisogna utilizzare l'utente root (l'account dell'amministratore di sistema), l'unico definito sul sistema al termine dell'installazione. Se durante l'installazione è stata definita la password di root, bisogna inserirla, altrimenti è sufficiente dare invio alla richiesta della password.

NetBSD/i386 (Amnesiac) (ttyE0)
login: root
password
...
We recommend creating a non-root account and using su(1) for root access.
#
    

4.3. Cambiare la disposizione della tastiera

A questo punto la disposizione della tastiera è rimasta ancora quella dell'installazione, cioè quella della tastiera americana. Prima di cominciare a configurare il sistema conviene cambiare la disposizione per utilizzare la tastiera italiana dando il comando

# wsconsctl -k -w encoding=it
encoding -> it    

La lista completa delle configurazioni di tastiera supportate si trova in /sys/dev/wscons/wsksymdef.h (cercare KB_ENCTAB), ma le più comuni sono:

de
dk
fr
it
jp
sv
uk
us
no
es

Questo settaggio durerà fino al prossimo boot, il che non è comodo. Per ripristinarlo automaticamente si deve modificare il file /etc/wscons.conf: un'occhiata ai commenti contenuti nel file dovrebbe essere sufficiente a capirne il meccanismo di funzionamento. Per approfondire l'argomento: wscons.conf(5). Per esempio, per utilizzare la tastiera italiana basta aggiungere la riga seguente al file /etc/wscons.conf:

encoding it    

Possiamo anche personalizzare alcuni tasti, per aggiungere le parentesi graffe, il carattere tilde, ecc. creando il file /etc/itmap.it (il nome è a piacere) con il seguente contenuto:

keycode 12 = apostrophe question grave
keycode 13 = igrave asciicircum asciitilde
keycode 8 = 7 slash braceleft
keycode 9 = 8 parenleft bracketleft
keycode 10 = 9 parenright bracketright
keycode 11 = 0 equal braceright    

Infine aggiungere la riga per caricare la mappa nel solito file /etc/wscons.conf:

mapfile /etc/itmap.it    

Nel seguito vedremo come fare in modo che NetBSD usi di default la tastiera italiana compilando un nuovo kernel e anche come personalizzare il layout della tastiera.

4.4. Il comando più importante

Anche se può apparire strano, il comando più importante in questo momento è man, che visualizza una pagina di manuale.

man comando per avere informazioni su un comando e man -k argomento per avere un elenco di comandi che hanno a che fare con 'argomento' (si può anche usare apropos argomento).

Naturalmente il primo comando da dare è

# man man    

Il manuale è suddiviso in nove sezioni che non contengono solo informazioni sui comandi, ma anche descrizioni di alcune caratteristiche del sistema. Per esempio si provi a consultare la pagina di hier(7), che descrive dettagliatamente il layout del filesystem di NetBSD

# man hier    

Per chi fosse un po' perplesso, hier è l'abbreviazione di hierarchy. Altre pagine informative di questo tipo sono, per esempio, release(7) e packages(7); ogni sezione del manuale ha poi una pagina intro che ne descrive il contenuto. Provare, per esempio

# man 8 intro    

Talvolta un argomento è presente in più di una sezione del manuale; per visualizzare l'argomento della sezione che interessa è necessario indicare il numero di sezione nel comando man. Per esempio, time è presente nella sezione 1 (il comando utente time), nella sezione 3 (la funzione time della libreria C) e nella sezione 9 (la variabile di sistema time). Se ci interessa la funzione, dobbiamo specificare

# man 3 time    

Per visualizzare tutte le sezioni

# man -a time    

4.5. Cambiare la password di root

Al termine dell'installazione l'unico utente definito sul sistema è root, l'amministratore del sistema. Se nel corso dell'installazione non è stata definita una password per root (il che non era possibile con le versioni precedenti la 1.5) è arrivato il momento di farlo, usando il comando passwd.

# passwd
Changing local password for root.
New password:
Retype new password:    

Le password non vengono visualizzate sullo schermo mentre vengono scritte. Nel seguito vedremo come aggiungere altri utenti.

4.6. Cambiare la shell

La shell di default di root è csh; se questo non vi dice niente vi conviene mantenerla e cominciare a studiarne il funzionamento (man csh): si tratta di un'ottima shell per l'uso interattivo anche se manca della history editing (mancanza rimediata da tcsh, bash, ksh e dalla stessa /bin/sh di NetBSD). Se invece csh non vi piace potete cambiare la shell dell'utente root con il comando chsh.

Le shell disponibili sul sistema al termine dell'installazione sono

csh
sh
ksh

La nuova shell verrà utilizzata al prossimo login.

Naturalmente è possibile installare molte altre shell (tcsh, bash, zsh, ecc.) utilizzando il sistema dei package, che vedremo più avanti.

Questo è un buon momento per creare/copiare i file di configurazione della shell (.cshrc, .login, ecc... a seconda della shell scelta).

4.7. Cambiare l'ora di sistema

NetBSD, come tutti i sistemi Unix, utilizza un orologio di sistema impostato sull'ora di Greenwich (UTC). Pertanto, per il funzionamento corretto del sistema è necessario impostare l'orologio CMOS sull'ora di Greenwich e non sull'ora locale. Purtroppo ciò non è possibile se si usa un sistema dual-boot con, per esempio, Windows, che richiede che l'orologio di sistema sia impostato sull'ora locale. Per risolvere questo problema bisogna informare NetBSD, agendo sulla variabile rtc_offset del kernel. Si può ricompilare il kernel dopo aver modificato il file di configurazione oppure modificare direttamente il kernel esistente (la modifica diventerà effettiva al prossimo riavvio), operazione illustrata dal prossimo esempio.

# gdb --write /netbsd
GNU gdb 4.17
Copyright 1998 Free Software Foundation, Inc.
...
This GDB was configured as "i386--netbsd"...(no debugging symbols found)...
(gdb) set rtc_offset=-60
(gdb) quit
    

Si noti che il valore indicato è in minuti; se è in vigore l'ora legale utilizzare -120 al posto di -60.

Per visualizzare il corrente valore della variabile:

# sysctl kern.rtc_offset
kern.rtc_offset = -60    

A questo punto abbiamo semplicemente indicato al kernel come fare a convertire in UTC l'ora dell'orologio di sistema. Se durante l'installazione non è stato impostato il fuso orario, lo si deve fare adesso (o comunque conviene controllare che l'impostazione sia corretta). Per l'Italia l'impostazione è la seguente:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime
    

Una volta che il sistema è impostato correttamente si possono cambiare la data e l'ora con il comando seguente:

# date [[[[[cc]yy]mm]dd]hh]mm    

4.8. Configurare /etc/rc.conf

Nei sistemi BSD il file /etc/rc.conf è quello che controlla cosa viene eseguito in automatico all'avvio del sistema: in un certo senso si può dire che è il cuore della configurazione del sistema.

Il meccanismo di funzionamento di questo file è cambiato con la versione 1.5 di NetBSD. Nelle versioni precedenti la 1.5 tutti i valori da definire si trovavano nel file /etc/rc.conf: inizialmente contenevano le impostazioni di default che l'utente doveva poi personalizzare modificando direttamente il file stesso. A partire dalla versione 1.5 le impostazioni di default sono definite nel file /etc/defaults/rc.conf: /etc/rc.conf contiene solamente le opzioni modificate dall'utente rispetto ai default. Le opzioni modificate vanno pertanto definite in /etc/rc.conf, usando /etc/defaults/rc.conf (che non deve essere modificato) come riferimento.

Un esame di questo file è altamente istruttivo e la lettura della relativa pagina di manuale, che descrive tutte le opzioni, è caldamente consigliata.

# man rc.conf    

Al termine dell'installazione sysinst dovrebbe avere già effettuato le modifiche fondamentali al file. Controllare che siano presenti le seguenti linee:

rc_configured=YES
wscons=YES    

Se "rc_configured" non è YES il sistema entra in modalità mono utente alla fine del boot. La direttiva "wscons" configura il driver di console. Già che ci siamo, se si desidera stampare, conviene inserire la direttiva:

lpd=YES    

per attivare il demone di stampa.

4.9. Impostare il nome dell'host

È venuto il momento di indicare al sistema il nome del nostro host; vi sono due semplici modi per farlo. Se la macchina fa parte di una rete, il nome della rete sarà obbligato e il nome dell'host ci verrà probabilmente indicato dall'amministratore. Se invece si tratta di una postazione isolata (per esempio il computer di casa) si può scegliere un nome di fantasia; per esempio: ape.insetti.net. Per ulteriori approfondimenti vedere il Capitolo 9.

Il primo modo per indicare il nome dell'host è quello di inserire la seguente direttiva nel file /etc/rc.conf:

hostname=ape.insetti.net    

Anziché indicare il nome dell'host direttamente nel file di configurazione, lo si può scrivere nel file /etc/myname. I due metodi sono del tutto equivalenti.

# echo ape.insetti.net > /etc/myname    

4.10. Riavvio del sistema

In questa prima sessione abbiamo:

Al termine di queste prime operazioni bisogna riavviare il sistema:

# reboot