computer,hardware,software,gaming,notebook,portatile,home theater,htpc,windows,overclock
    Ricerca avanzata
 
pecora nera
 

 categorie categorie del sito
 Schede madri separatore
 Processori separatore
 Bios separatore
 Schede video e monitor separatore
 Chipset separatore
 Memorie RAM separatore
 Storage separatore
 Dissipazione separatore
 Accessori, case e sistemi separatore
 HTPC e alta definizione separatore
 Notebook, netbook e phone separatore
 Sicurezza e reti separatore
 Software e videogame separatore
 Web e gossip separatore
 Overclock e modding separatore
 HowTo separatore
 Elettronica e informatica separatore
 
 Guida al bios separatore
 FAQs separatore
 Windows Vista FAQ & Tips separatore
||
 servizi servizi del sito
 Iscrizione ai servizi separatore
 Iscrizione a Daily Dinox's separatore
 Informazioni newsletter separatore
 Pubblicità su Dinox PC separatore
Tool ricerca per Firefox 2 Tool ricerca per Firefox 2 separatore
Tool ricerca per IE7 Tool ricerca per IE7 separatore
Preferiti Dinox PC nei preferiti separatore
Imposta come homepage Dinox PC come homepage separatore
Links utili
 Aziende ITC separatore
 Partners di Dinox PC separatore
 Mr.Webmaster separatore
 Neo Hardware separatore
 DevSpy.com separatore
 MPEGX.com separatore

www.aruba.it
www.
Corso Introduzione a GNU/Linux - Livello base
Prodotta da Dinox PC Team

Devices e Filesystem

Vai a 

3.1 La struttura del filesystem

Il filesystem è diviso in molte parti: di solito insieme a root ci sono /bin, /lib, /etc, /dev che formano un singolo filesystem e poi ce ne possono essere altri, come /usr con i programmi ed i dati che non vengono modificati, /var con i dati che vengono modificati (come i file di log) e /home con i file personali dei vari utenti. A seconda dell’hardware e delle decisioni dell’amministratore di sistema, la divisione può cambiare e potrebbero essere anche tutti un singolo filesystem:

/usr/lib
/dev /etc
/usr/bin
/usr/sbin
/usr/games /lib
/bin
/usr/include
/sbin
/usr
/
/usr/local
/usr/X11R6 /proc
/tmp
/usr/src
/usr/share
/home
/var

 

3.2 Device file e comandi correlati

La maggior parte dei file dei device (dispositivi) sono creati durante l’installazione della distribuzione. La lista dei file di device supportati dal kernel Linux si trova in /usr/src/linux/Documentation/devices.txt.

Nel caso fosse necessario creare un nuovo file di device, si può usare lo script MAKEDEV. Questo script si trova in /dev/MAKEDEV; la sintassi del comando è:

\# /dev/MAKEDEV -v ttyS0 create ttyS0 c 4 64 root:dialout 0660

Questo esempio crea il file di device /dev/ttyS0 con major node 4 e minor node 64, come device a caratteri e permessi di accesso 0660; il proprietario sarà root ed il gruppo dialout. ttyS0 è una porta seriale. Il numero di node major e minor sono numeri interpretati dal kernel. Il kernel riconosce i dispositivi hardware come numeri.

Per creare device sconosciuti a MAKEDEV si usa il comando mknod. Per poterlo usare proficuamente bisogna conoscere il major number ed il minor number del device da creare. Per saperlo bisogna cercare nel file devices.txt nella documentazione dei sorgenti del kernel. Per esempio, si può creare /dev/ttyS0 con mknod eseguendo i comandi:

  1. \# mknod /dev/ttyS0 c 4 64
  2. \# chown root.dialout /dev/ttyS0
  3. \# chmod 0644 /dev/ttyS0
  4. \# ls -l /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 Oct 23 18:23 /dev/ttyS0

3.3 Amministrazione di filesystem e dispositivi di archiviazione

I compiti di base nell’amministrazione dei dischi sono:

  • La formattazione che fa diverse cose per preparare il disco all’uso, come controllare se ci sono settori danneggiati (oggigiorno non e’ necessario formattare la maggior parte degli hard disk).
  • Il partizionamento, se volete usare il disco per diverse attività che non dovrebbero interferire l’una con l’altra. Una ragione per ripartizionare il disco è se volete usare diversi sistemi operativi sullo stesso disco, un’altra è di tenere i file degli utenti separati dai file di sistema, cosa che semplifica i backup ed aiuta a proteggere i file di sistema.
  • La creazione di un filesystem (di tipo adatto) su ciascun disco o partizione. I dischi non sono utilizzabili da Linux finchè non ci create un filesystem: a quel punto potete memorizzarci file, ed accedere a quelli presenti.
  • Il montaggio di diversi filesystem per formare una singola struttura ad albero, sia automaticamente che manualmente, a seconda delle circostanze (dovete fare l’unmount manuale dei filesystem montati manualmente).

3.3.1 La formattazione

La formattazione e’ il processo con cui si segnano sul mezzo magnetico le tracce e i settori. Prima che venga formattato, il disco ha una superficie in cui i segnali magnetici si sovrappongono creando un vero caos. Quando viene formattato si porta un certo ordine nel caos essenzialmente tracciando delle linee dove vanno le tracce e dove vengono suddivise in settori. I dettagli reali non sono proprio questi, ma è irrilevante; quello che è importante è che un disco non può essere usato se non è stato formattato.

La terminologia a questo proposito è piuttosto confusa: nell’MS-DOS, la parola formattazione viene usata anche per il processo di creazione di un filesystem (che verrà discusso più avanti); qui i due processi sono spesso combinati, specialmente per i floppy. Quando sarà necessaria una distinzione, la formattazione reale viene chiamata formattazione a basso livello, mentre la creazione del filesystem si chiama formattazione ad alto livello. Nei circoli UNIX, i due processi vengono chiamati formattazione e creazione di un filesystem, quindi in questo contesto verranno usati questi termini. Per i dischi IDE ed alcuni dischi SCSI la formattazione viene fatta in realtà in fabbrica e non c’è bisogno di ripeterla.

I floppy vengono formattati con fdformat . Il file di device del floppy da usare viene dato come parametro; ad esempio, il comando seguente formatterebbe un dischetto ad alta densità, da 3.5 pollici nel primo drive del floppy:

\$ fdformat /dev/fd0H1440

Doppio-completo, tracce 80 , 18 sec/traccia.

Capacità totale 1440 kB

Formattazione ... fatto

Verifica in corso ... fatto

Come precauzione è una buona idea scrivere su carta la tabella delle partizioni, in modo che se si corrompesse ci sarebbe una speranza di non perdere tutti i file.

3.3.2 Partizionamento di dischi rigidi

Ci sono molti programmi per creare e rimuovere partizioni. La maggior parte dei sistemi operativi ne ha uno proprio, ed è una buona idea usare quello del sistema che si usa, in caso faccia qualcosa di insolito che gli altri non fanno. La maggior parte di questi programmi, compreso quello per Linux, si chiamano fdisk o variazioni sul tema.

Ciascuna partizione e partizione estesa ha il proprio file di device. La convenzione per i nomi di questi file e’ che il numero della partizione viene fatto seguire al nome del disco, con la convenzione che da 1 a 4 sono partizioni primarie (non tenendo conto di quante partizioni primarie ci sono in realtà) e da 5 a 8 sono partizioni logiche (non tenendo conto di quale è la partizione primaria che le contiene). Ad esempio, /dev/hda1 è la prima partizione primaria sul primo disco IDE e /dev/sdb7 è la terza partizione estesa sul secondo disco SCSI.

Oltre allo storico fdisk, un altro programma per creare, modificare, verificare e copiare partizioni è GNU Parted. Parted è utile anche per creare spazio per nuovi sistemi operativi, riorganizzare l’uso dei dischi, copiare dati tra dischi e creare immagini di dischi.

3.3.3 I filesystem

Prima che si possa usare un disco o una partizione come filesystem, deve essere inizializzato, e bisogna scriverci sopra le strutture di dati per l’archiviazione. Questo processo si chiama creazione di un filesystem.

La gamma di file system disponibili per i sistemi operativi basati su Linux diventa davvero ampia se si considerano gli innumerevoli driver prodotti da singoli sviluppatori o aziende. IBM e Silicon Graphics, ad esempio, includono Linux fra le piattaforme supportate dai loro nuovi file system journaled, JFS ed XFS.

I più diffusi filesystem usati sono:

  • ext2. Il classico filesystem nativo di Linux e, al momento, anche il più usato. E’ disegnato per essere compatibile in avanti, in modo che nuove versioni del codice del filesystem non abbiano bisogno di rifare i filesystem esistenti.
  • ext3. Evoluzione journaled del filesystem ext2.
  • ReiserFS. E' un filesystem journaled puro, molto veloce e affidabile.
  • msdos. Compatibile con i filesystem FAT di MS-DOS (e OS/2 e Windows NT).
  • iso9660. Il filesystem standard per i CD-ROM. Viene supportata automaticamente l’estensione Rock Ridge allo standard per i CD-ROM, che permette di avere i nomi dei file lunghi.
  • nfs. Un filesystem di rete che permette di condividere un filesystem tra vari computer per avere da essi un accesso più facile ai file.
  • hpfs. Il filesystem di OS/2.

Il supporto per i filesystem di Windows NT e’ stabile solo in lettura, dato che il reverse engineering dell'NTFS e’ stato bloccato dagli avvocati di Microsoft.

Esiste anche il filesystem proc, di solito accessibile nella directory /proc, che in realtà non è per niente un filesystem, anche se gli assomiglia. Il filesystem proc permette di avere facile accesso ad alcune strutture di dati del kernel, come la lista dei processi (da cui il nome). Fa apparire queste strutture di dati come un filesystem, e quel filesystem può essere manipolato con i normali strumenti di manipolazione di file. Ad esempio, per avere un elenco di tutti i processi si può usare il comando:

ls -l /proc

3.3.4 Creare un filesystem

I filesystem vengono creati, cioè inizializzati, con il comando mkfs. In realtà esiste un programma separato per ciascun tipo di filesystem e mkfs è solo un’interfaccia che avvia il programma adatto a seconda del tipo di filesystem desiderato. Il tipo viene selezionato con l’opzione -t tipofs.

I programmi richiamati da mkfs hanno interfacce su linea di comando leggermente diverse. Le opzioni più comuni ed importanti sono riassunte qui sotto; per altri dettagli consultare la pagina man.

  • -t tipofs. Seleziona il tipo di filesystem.
  • -c. Attiva la ricerca dei blocchi danneggiati e ne inizializza di conseguenza la lista.
  • -l nomefile. Legge la lista di blocchi daneggiati iniziale dal file nomefile.

3.3.5 Montare e smontare

Prima che si possa usare un filesystem, bisogna montarlo (mount); così il sistema operativo fa delle operazioni di archiviazione in modo da essere sicuri che tutto funzioni. Dato che tutti i file in UNIX si trovano in un singolo albero di directory, l’operazione di mount farà sembrare che il nuovo filesystem sia contenuto in una sottodirectory esistente di qualche filesystem già montato.

Il comando mount accetta due argomenti: il file di device corrispondente al disco o alla partizione che contiene il filesystem, e la directory sotto cui montarlo.

mount /dev/hda2 /home

mount /dev/hda3 /usr

Dopo questi comandi i contenuti dei due filesystem sembrano essere in /home e /usr. Si può dire che "/dev/hda2 è montato su /home" e la stessa cosa per /usr. Per vedere i due filesystem basta guardare nella directory su cui è stato montato, come se fosse una qualsiasi altra directory. Notate la differenza tra il file di device /dev/hda2 e la directory su cui viene montato, /home. Il file di device dà accesso ai contenuti fisici del disco, la directory su cui viene montato dà accesso ai file che vi si trovano. La directory su cui viene montato un filesystem si chiama punto di mount.

La directory di mount può anche non essere vuota, ma deve esistere. Qualsiasi file vi si trovi non potrà essere richiamato per nome mentre il filesystem è montato (qualsiasi file già aperto sarà ancora accessibile. I file a cui puntano hard link da altre directory possono essere accessibili usando quei nomi). Con questo procedimento non viene perso nessun dato, e può anche essere utile: ad esempio, alcuni vogliono avere /tmp e /var/tmp sinonimi, e rendere /tmp un link simbolico a /var/tmp. Quando si avvia il filesystem, prima che venga montato /usr, viene usata una directory /var/tmp che risiede sul filesystem di root. Quando viene montato /usr, la directory /var/tmp sul filesystem di root diventa inaccessibile. Se non esistesse /var/tmp sul filesystem di root, sarebbe impossibile usare i file temporanei prima del mount di /var.

Quando non serve più che un filesystem sia montato, può essere smontato usando umount 4.8. umount accetta un argomento o il file di device o il punto di mount. Ad esempio, per smontare le directory dell’esempio precedente, si possono usare i comandi:

umount /dev/hda2

umount /usr

I filesystem sono creature complesse, e come tali tendono ad essere in qualche modo propense ad avere errori. Si possono controllare la correttezza e la validità di un filesystem usando il comando fsck, che può essere usato per riparare i piccoli errori che trova, e per avvisare l’utente se ci sono problemi irreparabili.

Il filesystem ext2 tenta di mantenere la frammentazione al minimo, tenendo tutti i blocchi di un file vicini, anche se non possono essere immagazzinati in settori consecutivi. L’ext2 in effetti alloca sempre il blocco libero che si trova più vicino agli altri blocchi di un file. Per l’ext2, quindi, è molto raro doversi preoccupare della frammentazione come accade, invece, per i filesystem di Windows.

Non tutti i dischi o le partizioni vengono usati come filesystem: ad esempio le partizioni di swap non hanno filesystem. Molti floppy vengono usati come fossero dei nastri, scrivendo direttamente un tar o un altro file sul disco vuoto, senza un filesystem. I floppy di boot di Linux non contengono filesystem, ma solo un kernel nudo e crudo.

Indietro
Avvio del sistema e login

Avanti
Login