Table of Contents
Questo capitolo raccoglie vari argomenti, in ordine sparso:
Sysinst, il programma di installazione di NetBSD generalmente installa il gestore di boot di NetBSD sull'disco rigido. Il gestore di boot può anche essere installato o riconfigurato in qualsiasi momento successivo, se necessario, con il comando fdisk. Per esempio:
#
fdisk -B wd0
Se NetBSD non effettua il boot dal disco rigido, lo si pò fare dal floppy di installazione e avviando il kernel sul disco rigido. Inserire il disco di installazione e, al prompt di boot, dare il seguente comando:
>
boot wd0a:netbsd
Questo avvia il kernel sul disco rigido (usare il device corretto, per esempio sd0a for un disco SCSI).
Probabilmente se si installano/rimuovono altri sistemi operativi come Windows 95 o Linux con LILO, talvolta fdisk -B non dà il risultato atteso (almeno così è successo a me). In questo caso, bisogna provare ad eseguire fdisk -i (il quale è noto come fdisk /mbr sul DOS) e quindi ancora fdisk da NetBSD.
Sebbene questa non sia un'operazione che bisogna effettuare frequentemente, può essere utile sapere come farla in caso di bisogno. Assicurarsi di sapere esattamente cosa si stà andando a fare prima di effettuare questo genere di operazione. Per esempio:
#
dd if=/dev/zero of=/dev/rwd0c bs=8k count=1
Il comando precedente elimina la label del disco (non la tabella della
partizione MBR). Per eleminare completamente il disco, dev'essere utilizzato
il device wd0d
. Per esempio:
#
dd if=/dev/zero of=/dev/rwd0d bs=8k
Ho trovato questo trucco in una lista di discussione (non ricordo l'autore).
Per generare un suono dall'altoparlante (per esempio alla fine di un lungo
script) può essere usato il driver spkr nella
configurazione del kernel, il quale è mappato su
/dev/speaker
. Per esempio:
echo 'BPBPBPBPBP' > /dev/speaker
Il device spkr non è abilitato nel kernel generico; è necessario un kernel personalizzato.
Se si dimentica la password di root, non tutto è perso e si può ancora “recuperare” il sistema con i seguenti passi: avviare in modalità singolo utente, montare / e cambiare la password di root. In dettaglio:
Avviare l'utente singolo: quando compare il prompt di boot e comincia il conto alla rovescia di 5 secondi, dare il seguente comando:
>
boot -s
Al seguente prompt
Enter pathname of shell or RETURN for sh:
premere Enter.
Scrivere i seguenti comandi:
#
fsck -y /
#
mount -u /
#
fsck -y /usr
#
mount /usr
Cambiare la password di root:
#
passwd root
Changing local password for root. New password:(non mostrata)
Retype new password:(non mostrata)
#
Uscire dalla shell per andare in modalità multiutente
#
exit
Questa sezione descrive come aggiungere un nuovo disco rigido su
un sistema NetBSD già funzionante. Nel seguente esempio sarà
aggiunto un nuovo controller SCSI e un nuovo disco rigido, connesso al
controller. Se non si necessita di aggiungere un nuovo controller saltare
la parte rilevante e passare alla configurazione del disco rigido.
L'installazione di un disco rigido IDE è identica; l'unica
differenza sarà il nome del device (wd#
anzichè sd#
).
Come sempre, prima di acquistare nuovo hardware, consultare la lista di compatibilità hardiware di NetBSD e assicurarsi che la nuova periferica sia supportata dal sistema.
Quando il controller SCSI è stato fisicamente installato nel sistema e il nuovo disco rigido è stato connesso, è tempo di riavviare il computer e controllare che la periferica sia correttamente rilevata, utilizzando il comando dmesg. Questo è un esempio di output per un controller NCR-875:
ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi ncr0: interrupting at irq 10 ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo ncr0: single-ended, open drain IRQ driver, using on-chip SRAM ncr0: restart (scsi reset). scsibus0 at ncr0: 16 targets, 8 luns per target sd0(ncr0:2:0): 20.0 MB/s (50 ns, offset 15) sd0: 2063MB, 8188 cyl, 3 head, 172 sec, 512 bytes/sect x 4226725 sectors
Se la periferica non compare nell'output, controllare che sia supportata dal kernel che si stà utilizzando; se necessario compilare un kernel personalizzato (see Chapter 31, Compiling the kernel).
Adesso le partizioni possono essere create utilizzando il comando fdisk. Prima, controllare lo stato corrente del disco:
#
fdisk sd0
NetBSD disklabel disk geometry: cylinders: 8188 heads: 3 sectors/track: 172 (516 sectors/cylinder) BIOS disk geometry: cylinders: 524 heads: 128 sectors/track: 63 (8064 sectors/cylinder) Partition table: 0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB)) start 63, size 4225473 (2063 MB), flag 0x0 beg: cylinder 0, head 1, sector 1 end: cylinder 523, head 127, sector 63 1: <UNUSED> 2: <UNUSED> 3: <UNUSED>
In questo esempio il disco rigido contiene già una partizione DOS, la quale verrà rimossa e rimpiazzata con una partizione NetBSD nativa. il comando fdisk -u sd0 consente di modificare interattivamente la partizione. I dati modificati saranno scritti nel disco solo dopo l'uscita e fdisk richiederà una conferma prima della scrittura, così da poter lavorare rilassati.
Per creare le partizioni del BIOS dev'essere utilizzato il comando fdisk -u; il risultato è il seguente:
Partition table: 0: sysid 169 (NetBSD) start 63, size 4225473 (2063 MB), flag 0x0 beg: cylinder 0, head 1, sector 1 end: cylinder 523, head 127, sector 63 1: <UNUSED> 2: <UNUSED> 3: <UNUSED>
Ora è tempo di creare la disklabel per la partizione NetBSD. I passi corretti per farlo sono:
#
disklabel sd0 > tempfile
#
vi tempfile
#
disklabel -R -r sd0 tempfile
Adesso creiamo qualche partizione disklabel, modificando
tempfile
come già spiegato. Il
risultato è:
# size offset fstype [fsize bsize cpg] a: 2048004 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 3969*) c: 4226662 63 unused 0 0 # (Cyl. 0*- 8191*) d: 4226725 0 unused 0 0 # (Cyl. 0 - 8191*) e: 2178658 2048067 4.2BSD 1024 8192 16 # (Cyl. 3969*- 8191*)
Quando la partizione disklabel è stata creata è possibile ottimizzarla studiando l'output del comando newfs -N /dev/rsd0a, il quale avvisa dell'esistetnza di settori non allocati alla fine della partizione disklabel. I valori riportati da niwfs possono essere utilizzati per aggiustare la dimensione delle partizioni con un processo iterativo.
L'operazione finale è la creazione di un sistema di file (file system, NdT) per le nuove partizioni definite (a ed e).
#
newfs /dev/rsd0a
#
newfs /dev/rsd0e
Adesso il disco è pronto per l'uso e le due partizioni possono essere montate. Per esempio:
#
mount /dev/sd0a /mnt
Se si ha successo, si può voler mettere una voce per la
partizione in /etc/fstab
.
Si si prova a modificare una password e si ottiene il misterioso
messaggio “Password file is busy”, questo probabilmente
vuol dire che il file /etc/ptmp
non è
stato cancellato dal sistema. Questo è una copia temporanea
del file /etc/master.passwd
: controllare che
non si stiano perdendo informazioni importanti, dunque cancellarlo:
#
rm /etc/ptmp
Se il file /etc/ptmp
esiste si possono anche
ricevere messaggi di avviso all'avvio del sistema. Per esempio:
root: password file may be incorrect - /etc/ptmp exists
Innanzi terminare il singolo utente, le partizioni sono ancora
montate “rw” (read-write); si può farlo
digitando semplicemente shutdown now metre
si è in modalità multi utente, o riavviare con
l'opzione -s
e rendere /
e /dev
leggi-scrivibile (read-writable, NdT).
#
mount -u /
#
mount -u /dev
Allora:
#
mkdir /newdev
#
cd /newdev
#
cp /dev/MAKEDEV* .
#
sh ./MAKEDEV all
#
cd /
#
mv dev olddev
#
mv newdev dev
#
rm -r olddev
O se si sono scaricati tutti i sorgenti in /usr/src
:
#
mkdir /newdev
#
cd /newdev
#
cp /usr/src/etc/MAKEDEV.local .
#
( cd /usr/src/etc ; make MAKEDEV )
#
cp /usr/src/etc/obj*/MAKEDEV .
#
sh ./MAKEDEV all
#
cd /
#
mv dev olddev; mv newdev dev
#
rm -r olddev
É possibile determinare $arch da
#
uname -m
or
#
sysctl hw.machine_arch