Installazione di Linux

Loris Tissino

19 giugno 2009

Verifica della configurazione hardware

A volte capita, per la risoluzione di problemi hardware, di dover verificare la configurazione, magari confrontandola con quella di una macchina simile. A tale scopo si possono usare:

La directory /proc

Alcune informazioni utili che si trovano in /proc:

$ cat /proc/interrupts 
$ cat /proc/ioports 
$ cat /proc/dma
$ cat /proc/usb
$ cat /proc/pci

I comandi ls*

Alcuni comandi utili:

$ whatis lsmod lspci lsdev lsusb lshal lspcmcia
lsmod (8)            - program to show the status of modules in the Linux Kernel
lspci (8)            - list all PCI devices
lsdev (8)            - display information about installed hardware
lsusb (8)            - list USB devices
lsusb (1)            - list USB devices
lshal (1)            - List devices and their properties
lspcmcia (8)         - PCMCIA card control utility

Nomi dei dispositivi

I dispositivi hardware di un sistema Linux vengono visti come file:

Partizioni

I dischi possono essere partizionati da riga di comando (es. con fdisk) o con strumenti grafici.

Per essere utilizzate, le partizioni devono essere formattate con i comandi mkfs.*. Ci si può esercitare con un file creato appositamente:

$ dd if=/dev/zero of=discosimulato.dsk bs=512 count=100000
100000+0 records in
100000+0 records out
51200000 bytes (51 MB) copied, 0,867508 seconds, 59,0 MB/s
$ fdisk discosimulato.dsk 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
[snip]
$ mkfs.ext3 -F discosimulato.dsk 
$ sudo mount -t ext3 -o loop discosimulato.dsk /media/cdrom

Controllo del filesystem

Il controllo del filesystem può essere fatto con i comandi appropriati (a seconda del tipo di filesystem):

$ sudo umount /media/cdrom
$ fsck.ext3 discosimulato.dsk 
e2fsck 1.40-WIP (14-Nov-2006)
discosimulato.dsk: clean, 11/12544 files, 6499/50000 blocks

Il controllo va fatto su un filesystem non innestato (unmounted).

Impostazioni del filesystem (tuning)

Per controllare in maniera fine come un filesystem ext2 o ext3 deve essere gestito, si può usare il comando tune2fs, che permette ad esempio di:

Debug

Un filesystem ext2 o ext3 può essere ispezionato con il programma interattivo debugfs.

Il file /etc/fstab

Il file /etc/fstab contiene le indicazioni su quali filesystem devono essere innestati nel filesystem principale all'avvio del sistema (o possono essere innestati successivamente in forma semplificata).

Si veda fstab(5) per ulteriori dettagli.

Innesto di filesystem

Un filesystem secondario può essere innestato (mounted) nel filesystem principale tramite il comando mount e disinnestato tramite umount (operazioni privilegiate).

Il file /etc/fstab può prevedere la possibilità di innesto da parte di utenti non privilegiati.

Per i dispositivi hotplug si possono usare i comandi pmount e pumount, a patto di appartenere al gruppo plugdev.

Sync

Normalmente le operazioni di scrittura su disco vengono ritardate per questioni di efficienza, sfruttando meccanismi di caching. Se si desidera forzare le operazioni di scrittura, si può impartire il comando sync.

Il Filesystem Hierarchy Standard

Il FHS ha lo scopo di fornire una serie di indicazioni vincolanti (requirements) e di linee guida per la posizione di file e directory nei sistemi operativi UNIX-like.

L'intenzione è di supportare l'interoperabilità tra applicazioni, strumenti di sviluppo e script, nonché di garantire una maggior uniformità sulla documentazione per questi sistemi.

Contenuto del FHS

Il FHS contiene:

Distinzioni tra file

Il FHS prevede le seguenti distinzioni tra tipologie di file:

Shareable vs. Unshareable

I file condivisibili sono quelli che possono risiedere su un calcolatore ed essere usati su di un altro (ad esempio, i documenti degli utenti).

I file non condivisibili sono quelli che ha senso vengano usati solo sul calcolatore in cui risiedono (ad esempio, i file di lock relativi ai dispositivi).

In pratica, mentre i primi possono essere in directory condivise in rete, (es. via NFS), i secondi saranno file locali.

Static vs. Variable

I file statici sono quelli che non cambiano senza l'intervento dell'amministratore di sistema (ad esempio, i programmi eseguibili, le librerie, i file di documentazione).

I file variabili sono gli altri.

In pratica, i primi, a differenza dei secondi, potrebbero essere posti in filesystem montati in sola lettura (salvo le operazioni di aggiornamento); inoltre, il loro backup ha un rilievo minore.

Esempio di organizzazione

UseShareableUnshareable
static/usr, /opt/etc, /boot
variable/var/mail, /var/spool/news/var/run, /var/lock

In linea di massima, in ogni directory dovrebbero essere posti file della medesima categoria (individuata in base ai due criteri esposti). In realtà esistono delle eccezioni per questioni di compatibilità storica.

Le directory principali

Per avere informazioni specifiche sulle linee guida, è consigliabile leggere il documento nella sua interezza (esistono anche delle sintesi in italiano).

È particolarmente importante prestare attenzione alla differenza tra le directory: