Web Analytics Made Easy - Statcounter


https://www.amazon.it/dp/B0CT9YL557

We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
a2 --- Gestione di dischi e file system

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 83.   Gestione di dischi e file system

I sistemi Unix gestiscono sempre un solo file system globale. Questo può essere anche composto da più file system di dimensioni inferiori, uno principale (radice) e gli altri secondari, collegati fra loro in modo da formare un'unica struttura.

La tabella 83.1 elenca i programmi e i file a cui si accenna in questo capitolo.

Tabella 83.1. Riepilogo dei programmi e dei file per la gestione dei dischi e dei file system.

Nome Descrizione
fdformat Inizializzazione a basso livello dei dischetti.
superformat Inizializzazione a basso livello dei dischetti.
badblocks Controllo dell'integrità di un disco o di una partizione.
fdisk Creazione e modifica delle partizioni.
cfdisk Creazione e modifica delle partizioni (programma più amichevole).
sfdisk Creazione e modifica delle partizioni in modo non interattivo.
mke2fs,
mkfs.ext2,
mkfs.ext3
Creazione di un file system Second-extended Ext2 o Ext3.
mkdosfs,
mkfs.msdos
Creazione di un file system Dos-FAT.
mkfs programma frontale per l'utilizzo dei programmi di creazione dei file system.
disktype Fornisce informazioni sulla struttura di un disco: le sue partizioni, il file system, il sistema di avvio.
gpart Ricostruisce la suddivisione in partizioni di un disco.
e2fsck,
fsck.ext2,
fsck.ext3
Controllo di un file system Second-extended Ext2 o Ext3.
dosfsck,
fsck.msdos
Controllo di un file system Dos-FAT.
fsck Programma frontale di controllo dei file system.
parted Gestione completa delle partizioni di un disco.
mount Collegamento (innesto) di un file system in quello globale.
umount Distacco di un file system da quello globale.
/etc/fstab Elenco di file system e punti di innesto predefiniti.
/etc/mtab Elenco degli innesti attivi.
df Utilizzo del disco.
di Utilizzo del disco.
stat Situazione di un file o di un file system.
update
(bdflush)
Programma demone per lo scarico periodico della memoria cache dei dischi.
sync Scarico manuale della memoria cache dei dischi.
mkntfs Crea un file system NTFS.
ntfsresize Modifica la dimensione di un file system NTFS.
doschk Verifica la compatibilità dei nomi di file e directory da copiare in un file system con possibilità limitate.

83.1   Preparazione dei file system

Prima di poter utilizzare un file system, occorre costruirlo. Quando si parla di dischi si distinguono tre fasi fondamentali:

  1. l'inizializzazione a basso livello;

  2. l'eventuale suddivisione in partizioni;

  3. la creazione della struttura iniziale del tipo di file system che si intende utilizzare.

L'inizializzazione a basso livello è spesso compito di programmi residenti nel firmware (o nel BIOS se si preferisce il termine), a eccezione dei dischi rimovibili. In questo ultimo caso, a parte i dischetti, si deve quasi sempre utilizzare quanto fornito insieme alle unità di memorizzazione, anche se si tratta di programmi fatti per altri sistemi operativi.

Per l'inizializzazione a basso livello dei dischetti si può utilizzare fdformat, per la suddivisione in partizioni dei dischi più grandi si può utilizzare fdisk (o cfdisk), per creare i vari file system si devono utilizzare programmi diversi a seconda del tipo di file system.

Tutte queste operazioni vengono svolte facendo riferimento ai file di dispositivo relativi. Di conseguenza, possono essere compiute solo dagli utenti che hanno i permessi di accesso in lettura e scrittura per questi file. Generalmente, solo l'utente root può intervenire in questo modo.

83.1.1   Utilizzo di «fdformat»

Il programma fdformat (1) esegue un'inizializzazione a basso livello di un dischetto. Il nome del file di dispositivo indica l'unità a dischetti in cui si vuole compiere l'operazione e anche il formato che si vuole ottenere. Per questo motivo è meglio evitare di utilizzare semplicemente nomi di dispositivo generici come /dev/fd0 e /dev/fd1. Molto probabilmente si utilizzano maggiormente i formati relativi a /dev/fd0u1440 e /dev/fd1u1440 che si riferiscono al formato da 1 440 Kibyte dei dischetti da 3,5 pollici.

Vale la pena di ricordare che i nomi di dispositivo relativi ai dischetti possono cambiare leggermente da una distribuzione GNU/Linux a un'altra. A volte, il formato dei dischetti da 1 440 Kibyte corrisponde al file /dev/fd0H1440.

fdformat [-n] dispositivo

L'opzione -n serve a saltare la fase di controllo successiva all'inizializzazione: in generale è meglio non utilizzarla in modo da verificare la riuscita dell'inizializzazione.

Se si vuole consentire agli utenti comuni di compiere questa operazione occorre regolare i permessi dei file di dispositivo dei dischetti in modo da permettere loro l'accesso in lettura e scrittura.

Segue la descrizione di alcuni esempi.

  • fdformat /dev/fd0u1440[Invio]

    Inizializza un dischetto da 1 440 Kibyte nella prima unità a dischetti.

  • fdformat /dev/fd1u1440[Invio]

    Inizializza un dischetto da 1 440 Kibyte nella seconda unità a dischetti.

83.1.2   Utilizzo di «superformat»

Il programma superformat (2) è alternativo a fdformat, rispetto al quale permette di definire molti dettagli in più che riguardano l'inizializzazione dei dischetti. In generale, si possono ignorare tutte queste caratteristiche speciali, utilizzando superformat con la sola indicazione del file di dispositivo del dischetto da inizializzare: è sufficiente fare riferimento al dispositivo generico, senza le informazioni sulla capacità dello stesso. Alla fine dell'inizializzazione a basso livello, superformat utilizza mformat per inserire nel dischetto un file system Dos-FAT, che se non serve può essere semplicemente ignorato.

superformat [opzioni] dispositivo [descrizione_del_supporto]

Prima di eseguire l'inizializzazione, superformat controlla le caratteristiche dell'unità a dischetti. È possibile predisporre il file /etc/driveprm con una direttiva che viene suggerita dallo stesso programma mentre è in funzione, per evitare che venga ripetuto questo controllo. Se si interviene in questo modo, occorre ricordare di eliminare la direttiva quando si cambia unità a dischetti, o quando si cambia l'unità di controllo. In generale, non è il caso di preoccuparsi di questo file, a meno che l'inizializzazione dei dischetti sia un'attività frequente.

Questo valore potrebbe essere influenzato anche dalle variazioni climatiche, pertanto è meglio non predisporre il file /etc/driveprm, nonostante la perdita di tempo iniziale.

Le opzioni di superformat sono utili soprattutto quando si vuole inizializzare un dischetto utilizzando un formato insolito, ma in tal caso conviene leggere la pagina di manuale relativa: superformat(1). Comunque, vale la pena di ricordare che con l'opzione -f, o --noverify, si esclude qualunque controllo sul risultato dell'inizializzazione.

L'esempio seguente inizializza un dischetto nell'unità corrispondente al file di dispositivo /dev/fd0, utilizzando il formato standard massimo per quel tipo di unità:

superformat /dev/fd0[Invio]

83.1.3   Utilizzo di «badblocks»

Il programma badblocks (3) è in grado di verificare l'integrità di un disco o di una partizione. Il controllo è fatto a basso livello senza considerare la struttura del file system.

badblocks [opzioni] dispositivo dimensione_in_blocchi [blocco_iniziale] 

Normalmente i programmi di inizializzazione, sia a basso livello che a livello superiore, sono in grado di fare questo controllo da soli. Per questo badblocks viene usato raramente.

Il tipo di controllo può essere in lettura oppure anche in scrittura. È evidente che, se si specifica attraverso le opzioni l'intenzione di effettuare un controllo in scrittura, i dati contenuti nel disco o nella partizione sono perduti.

Tabella 83.2. Alcune opzioni.

Opzione Descrizione
-b dimensione_dei_blocchi
Permette di definire la dimensione dei blocchi espressa in byte. Il valore predefinito è 1 024.
-w
Esegue una prova di scrittura controllando successivamente l'esito. Questa opzione deve essere usata con prudenza dal momento che, così facendo, si cancellano i dati del disco o della partizione da controllare.

L'esempio seguente esegue il controllo del dischetto, in sola lettura, per tutta la sua estensione: 1 440 blocchi di 1 Kibyte. Trattandosi di un controllo in sola lettura, badblocks può essere eseguito da un utente comune (sempre che tali utenti abbiano i permessi di lettura per il dispositivo che si va a leggere).

badblocks /dev/fd0u1440 1440[Invio]

83.1.4   Utilizzo di «fdisk»

Il programma fdisk (4) permette la modifica della tabella delle partizioni di un disco che possa essere organizzato in questo modo. Il nome del file di dispositivo fa riferimento all'intero disco, quindi si possono utilizzare nomi come /dev/hda, /dev/hdb, /dev/hdc,... /dev/sda, /dev/sdb,... a seconda che si tratti di dischi ATA o SCSI.

fdisk [opzioni] [dispositivo]

Una volta avviato fdisk, si interagisce con questo attraverso comandi composti da una sola lettera. In particolare, la lettera m richiama l'elenco dei comandi disponibili.

[m]

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatiblity flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   p   print the partition table
   q   quit without saving changes
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Quando viene creata una nuova partizione, questa viene definita automaticamente del tipo Linux-nativa, ma in certi casi può essere necessario modificare il tipo di partizione creato attraverso il comando t. Ogni tipo di partizione ha un codice (espresso in esadecimale) che può essere conosciuto anche attraverso fdisk stesso, durante il suo funzionamento.

[t]

...

 0  Vuoto           1c  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid 
 1  FAT12           1e  Hidden W95 FAT1 75  PC/IX           be  Solaris boot    
 2  XENIX root      24  NEC DOS         80  Vecchio Minix   c1  DRDOS/sec (FAT- 
 3  XENIX usr       39  Plan 9          81  Minix / vecchio c4  DRDOS/sec (FAT- 
 4  FAT16 <32M      3c  Recupero Partit 82  Linux swap      c6  DRDOS/sec (FAT- 
 5  Esteso          40  Venix 80286     83  Linux           c7  Syrinx          
 6  FAT16           41  PPC PReP Boot   84  C nascosto OS/2 da  Non-FS data     
 7  HPFS/NTFS       42  SFS             85  Linux esteso    db  CP/M / CTOS / . 
 8  AIX             4d  QNX4.x          86  set volume NTFS de  Dell Utility    
 9  AIX avviabile   4e  QNX4.x 2a parti 87  set volume NTFS df  BootIt          
 a  OS/2 Boot Manag 4f  QNX4.x 3rd part 8e  Linux LVM       e1  accesso DOS     
 b  W95 FAT32       50  OnTrack DM      93  Amoeba          e3  DOS R/O         
 c  W95 FAT32 (LBA) 51  OnTrack DM6 Aux 94  Amoeba BBT      e4   SpeedStor      
 e  W95 FAT16 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs         
 f  W95 Ext'd (LBA) 53  OnTrack DM6 Aux a0  Ibernazione IBM ee  EFI GPT         
10  OPUS            54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/ 
11  FAT12 nascosto  55   EZ-Drive       a6  OpenBSD         f0  Linux/PA-RISC b 
12  Diagnostica Com 56  Golden Bow      a7  NeXTSTEP        f1   SpeedStor      
14  FAT16 nascosto  5c  Priam Edisk     a8  Darwin UFS      f4   SpeedStor      
16  FAT16 nascosto  61   SpeedStor      a9  NetBSD          f2  DOS secondario  
17  HPFS/NTFS nasco 63  GNU HURD o SysV ab  Darwin boot     fd  Autorilevamento 
18  AST SmartSleep  64  Novell Netware  b7  BSDI fs         fe  LANstep         
1b  Hidden W95 FAT3 65  Novell Netware  b8  BSDI swap       ff  BBT             

Le modifiche alla tabella delle partizioni vengono registrate solo nel momento in cui si termina l'esecuzione del programma con il comando w. Se fdisk segnala qualche tipo di errore in questo momento, potrebbe essere necessario riavviare il sistema prima di utilizzare il disco su cui sono state apportate le modifiche.

[w]

Tabella 83.5. Alcune opzioni.

Opzione Descrizione
-l
Emette l'elenco delle partizioni esistenti nelle unità ATA e SCSI. Non inizia alcuna attività interattiva.
La lettera «l» sta per list.
-s partizione
Utilizzando questa opzione seguita dal nome del file di dispositivo che fa riferimento a una partizione (/dev/hda1, /dev/hda2, ecc.) si ottiene la sua dimensione. Questa informazione è importante nel momento in cui si vuole creare al suo interno un file system e il programma utilizzato non è in grado di determinarla da solo.
La lettera «s» sta per size.

83.1.5   Utilizzo di «cfdisk»

Il programma cfdisk (5) serve a modificare la suddivisione in partizioni di un disco che possa essere organizzato in questo modo. Si tratta di un programma che svolge le stesse funzioni di fdisk offrendo un sistema di interazione meno spartano.

cfdisk [opzioni] [dispositivo]

Dal momento che richiede delle librerie particolari per la gestione dello schermo (ncurses), è poco indicato il suo utilizzo in presenza di sistemi estremamente ridotti o di emergenza. Ciò significa che il programma fdisk tradizionale non può essere abbandonato per adottare esclusivamente cfdisk.

83.1.6   Utilizzo di «sfdisk»

Il programma sfdisk (6) consente la modifica delle partizioni in modo non interattivo, pertanto è utile in particolare per la realizzazione di script.

sfdisk [opzioni] dispositivo
sfdisk -s [partizione]
sfdisk dispositivo < file_di_comandi

L'utilizzo normale di questo programma di servizio prevede la preparazione di un file contenente le istruzioni sulle partizioni da creare all'interno di un disco specificato espressamente. Anche se è prevista una sintassi apposita per queste istruzioni, può essere conveniente l'utilizzo di quanto ottenuto da un'interrogazione con lo stesso sfdisk, come viene mostrato in seguito. Prima di arrivare a vedere in che modo si possono definire le partizioni, conviene prendere confidenza con l'uso di sfdisk, attraverso delle operazioni non distruttive; pertanto si comincia subito con alcuni esempi.

  • sfdisk -s /dev/hda1[Invio]

    Questo comando si limita a restituire un numero attraverso lo standard output, corrispondente alla quantità di blocchi della prima partizione del primo disco fisso ATA.

  • sfdisk -s /dev/hda[Invio]

    In questo caso si ottiene la quantità di blocchi complessiva del primo disco fisso ATA.

  • sfdisk -V /dev/hda[Invio]

    Verifica la coerenza delle partizioni nel primo disco fisso ATA. Di solito, sfdisk viene usato in questo modo per ottenere il valore restituito, che è Vero (zero) solo se tutto è in ordine.

  • sfdisk -d /dev/hda[Invio]

    Genera un rapporto sulle partizioni del primo disco fisso ATA, emesso attraverso lo standard output. Questo potrebbe essere ridiretto in un file, da conservare da qualche parte; in seguito, questo stesso file potrebbe essere usato per rigenerare la stessa situazione:

    sfdisk -d /dev/hda > /mnt/floppy/partizioni[Invio]

    ...

    sfdisk /dev/hda < /mnt/floppy/partizioni[Invio]

Un esempio del rapporto che si ottiene con l'opzione -d potrebbe essere quello del listato seguente:

# partition table of /dev/hda
unit: sectors

/dev/hda1 : start=       63, size=  612801, Id= 6
/dev/hda2 : start=   612864, size= 2721600, Id= 5, bootable
/dev/hda3 : start=        0, size=       0, Id= 0
/dev/hda4 : start=        0, size=       0, Id= 0
/dev/hda5 : start=   612927, size=   20097, Id=83
/dev/hda6 : start=   633087, size=  205569, Id=82
/dev/hda7 : start=   838719, size= 2495745, Id=83

Con questo sistema, se si dispone di una serie di elaboratori con gli stessi dischi fissi che si vogliono suddividere nello stesso modo, è facile utilizzare sfdisk per copiare la struttura di uno negli altri. Se si sa quello che si fa, si può modificare uno di questi file prima di darlo in pasto a sfdisk.

Il programma sfdisk permette anche di utilizzare una sintassi differente e più approssimativa per definire le partizioni che si vogliono creare. Tuttavia, per questo conviene leggere la documentazione originale, che dovrebbe essere accessibile attraverso la pagina di manuale sfdisk(8).

Tabella 83.7. Alcune opzioni.

Opzione Descrizione
-s
--show-size
Mostra la dimensione di una partizione.
-l
--list
Mostra l'elenco delle partizioni di un disco.
-d
--dump
Scarica le informazioni sulle partizioni di un disco. Quello che si ottiene può essere riutilizzato per rigenerare la stessa struttura, utilizzandolo come file di comandi per sfdisk.
-V
--verify
Verifica se le partizioni sembrano organizzate correttamente.

83.1.7   Salvataggio e recupero delle informazioni sulle partizioni principali

Un disco suddiviso in partizioni secondo il modello originario dei sistemi Dos, che prevede quattro partizioni primarie, contiene tali informazioni all'interno del primo settore, noto con il nome «MBR». È molto semplice salvare tale suddivisione, anche senza servirsi di programmi specifici (come potrebbe essere sfdisk), purché il proprio interesse sia limitato alle sole partizioni principali. Per salvare il settore MBR si procede così:

dd if=file_di_dispositivo of=file_da_creare bs=512 count=1

In questo modo, il file di dispositivo deve essere quello del disco intero, dal quale si vuole leggere il primo settore di 512 byte; il file da creare è quel file nel quale si vuole salvare l'informazione.

Nel caso dovesse essere necessario recuperare la tabella delle partizioni, se si copia tale e quale il file salvato in precedenza nel primo settore, si sovrascrive anche il codice di avvio; se questo va bene, basta procedere così:

dd if=file_mbr of=file_di_dispositivo

Se invece si vuole copiare soltanto la tabella di partizione, senza sovrascrivere il codice di avvio, il comando diventa più articolato:

dd if=file_mbr of=file_di_dispositivo bs=1 count=64 skip=446 seek=446

Naturalmente, un errore nella scrittura del comando di recupero, sia nei valori, sia nell'indicazione corretta del file di dispositivo di destinazione, è irreversibile.

83.1.8   Sistemazione delle partizioni Dos-FAT

Quando si predispongono partizioni Dos, può essere opportuno ripulire il primo settore (i primi 512 byte) della partizione, per evitare dei problemi con i programmi come FORMAT.EXE, i quali potrebbero leggerlo prima di iniziare il loro lavoro, restando confusi nel caso ci fossero lì dei dati casuali. Come si intuisce, il problema non esiste se il file system Dos-FAT viene generato attraverso strumenti di GNU/Linux, ma se si realizza uno script che deve costruire automaticamente una serie di partizioni, tra cui anche di tipo Dos, forse è il caso di provvedere a ripulire il primo settore di ogni partizione del genere.

Supponendo di avere definito la partizione /dev/hda1 per il Dos, si dovrebbe agire nel modo seguente:

dd if=/dev/zero of=/dev/hda1 bs=512 count=1[Invio]

Si intuisce che anche solo un piccolo sbaglio, in un'operazione del genere, comporta la cancellazione di dati in modo incontrollabile.

83.1.9   Utilizzo di «mke2fs», «mkfs.ext2» e «mkfs.ext3»

Il programma mke2fs (7) permette di creare un file system di tipo Ext2 o Ext3 in un'unità di memorizzazione. Questa viene indicata nel modo consueto, attraverso il nome del file di dispositivo corrispondente (/dev/...).

mke2fs [opzioni] dispositivo [dimensione_in_blocchi]
mkfs.ext2 [opzioni] dispositivo [dimensione_in_blocchi]
mkfs.ext3 [opzioni] dispositivo [dimensione_in_blocchi]

La dimensione è espressa in blocchi. Se questo valore non viene specificato, mke2fs cerca di determinarlo da solo, ma non sempre il valore risulta corretto, quindi conviene fornire questa indicazione.

Vedere mke2fs(8).

Tabella 83.8. Alcune opzioni.

Opzione Descrizione
-j
Richiede espressamente di generare un file system con le estensioni Ext3.
La lettera «j» sta per journal.
-b dimensione_del_blocco
Permette di definire la dimensione dei blocchi, espressa in byte.
La lettera «b» sta per block.
-c
Prima di creare il file system controlla i blocchi in modo da isolare quelli difettosi. Il controllo viene eseguito in sola lettura.
La lettera «c» sta per check.
-i byte_per_inode
Definisce il rapporto byte/inode. mke2fs crea un inode a ogni intervallo stabilito espresso in byte. Il valore predefinito è di 4 Kibyte (4 096 byte) e non può essere inferiore a 1 Kibyte (1 024 byte).
La lettera «i» sta per inode.
-q
Esegue l'operazione senza emettere informazioni di alcun tipo, in modo da poter essere utilizzato agevolmente all'interno di script.
La lettera «q» sta per quiet.
-S
Scrive solo il superblocco e il descrittore di gruppo. Ciò può essere utile se, sia il superblocco principale che quelli di riserva sono rovinati e si intende tentare, come ultima risorsa, un recupero dei dati. In questo modo, la tabella degli inode e altre informazioni non vengono modificate. Subito dopo è necessario utilizzare il programma e2fsck (83.2.3), ma non c'è alcuna garanzia che il recupero funzioni.
La lettera «S» sta per superblock.

83.1.10   Utilizzo di «mkdosfs» e «mkfs.msdos»

Il programma mkdosfs (8) permette di creare un file system Dos-FAT. Può essere usato per tutti i tipi di unità a disco, compresi i dischetti.

mkdosfs [opzioni] dispositivo [dimensione_in_blocchi]
mkfs.msdos [opzioni] dispositivo [dimensione_in_blocchi]

Vedere mkdosfs(8).

Tabella 83.9. Alcune opzioni.

Opzione Descrizione
-c
Prima di creare il file system controlla i blocchi in modo da isolare quelli difettosi. Il controllo viene eseguito in sola lettura.
La lettera «c» sta per check.
-i numero_id
Permette di specificare il numero di identificazione. Si tratta di un numero a 32 bit, rappresentato in esadecimale (precisamente si tratta di otto cifre esadecimali), che diversamente verrebbe determinato in base alla data.
La lettera «i» sta per id (identity).
-I
Quando si utilizzano dischi paragonabili a dischi fissi, con questa opzione è consentito inizializzare un disco intero che non sia diviso in partizioni.
-C
Consente di creare e inizializzare un file-immagine. Quando si utilizza questa opzione è indispensabile fornire la dimensione in blocchi alla fine della riga di comando.
La lettera «C» sta per create.

L'esempio seguente crea un file system Dos-FAT nel dischetto inserito nella prima unità, dopo aver controllato la sua superficie e determinando automaticamente la dimensione in blocchi:

mkdosfs -c /dev/fd0[Invio]

83.1.11   Utilizzo di «mkfs»

Il programma mkfs (9) serve a rendere uniforme l'utilizzo degli altri programmi specifici per la creazione dei vari tipi di file system. In questi casi si può parlare anche di programma frontale oppure si usa il termine inglese front-end.

mkfs [-t tipo_di_file_system] [opzioni_specifiche] dispositivo [dimensione_in_blocchi]

L'opzione -t serve per specificare il tipo di file system da creare, in questo modo mkfs sa a quale programma deve rivolgersi. Le opzioni specifiche dipendono dal tipo di file system, ovvero dal programma che si prende cura effettivamente dell'inizializzazione.

Segue la descrizione di alcuni esempi.

  • mkfs -t msdos -c /dev/fd0[Invio]

    Crea un file system Dos-FAT nel dischetto inserito nella prima unità, dopo aver controllato la sua superficie e determinando automaticamente la dimensione in blocchi.

  • mkfs -t ext2 -c /dev/fd0 1440[Invio]

    Crea un file system Ext2 nel dischetto inserito nella prima unità, dopo aver controllato la sua superficie. La dimensione in blocchi viene indicata in modo esplicito.

83.2   Controllo dei file system

I dati contenuti all'interno di un file system sono organizzati in una struttura articolata e delicata. A volte, specie se succedono incidenti, conviene controllare questa struttura attraverso un programma che si occupa di risistemare le cose.

Tutte queste operazioni vengono svolte facendo riferimento ai file di dispositivo relativi. Di conseguenza, possono essere compiute solo dagli utenti che hanno i permessi di accesso necessari al tipo di operazione da compiere.

83.2.1   Utilizzo di «disktype»

Il programma disktype (10) permette di individuare facilmente le caratteristiche di un disco, comprese le partizioni presenti ed eventualmente il tipo di file system contenuto. Si utilizza senza opzioni:

disktype file...

I file da indicare come argomento di disktype possono essere file di dispositivo, oppure file-immagine di un qualche disco. Vengono mostrati alcuni esempi molto semplici, che dovrebbero rendere l'idea delle informazioni che si possono ottenere con questo programma:

disktype /dev/hdb[Invio]

--- /dev/hdb
Block device, size 76.34 GiB (81964302336 bytes)
GRUB boot code, compat version 3.2, boot drive 0xff
DOS partition map
Partition 1: 8.066 GiB (8661187584 bytes, 16916382 sectors from 63)
  Type 0x82 (Linux swap / Solaris)
  Linux swap, version 2, subversion 1, 4 KiB pages, little-endian
    Swap size 8.066 GiB (8661176320 bytes, 2114545 pages of 4 KiB)
Partition 2: 13.04 GiB (13999426560 bytes, 27342630 sectors from 16916445)
  Type 0x83 (Linux)
  Ext3 file system
    UUID 6137A3BD-D45C-46ED-ACF2-668046292FEC (DCE, v4)
    Volume size 13.04 GiB (13999423488 bytes, 3417828 blocks of 4 KiB)
Partition 3: 21.10 GiB (22652421120 bytes, 44243010 sectors from 44259075)
  Type 0x83 (Linux)
  Ext3 file system
    UUID 316F72A3-3501-4260-A438-8873608E4CC4 (DCE, v4)
    Volume size 21.10 GiB (22652420096 bytes, 5530376 blocks of 4 KiB)
Partition 4: 34.13 GiB (36643622400 bytes, 71569575 sectors from 88502085)
  Type 0x83 (Linux)
  Ext3 file system
    UUID CFDEA76D-72E4-4775-81C8-2860FBAB2037 (DCE, v4)
    Volume size 34.13 GiB (36641439744 bytes, 8945664 blocks of 4 KiB)

disktype /dev/sr0[Invio]

--- /dev/sr0
Block device, size 158.2 MiB (165918720 bytes)
CD-ROM, 1 track, CDDB disk ID 02043801
Track 1: Data track, 158.2 MiB (165918720 bytes)
  ISO9660 file system
    Volume name "nanoLinux II"
    Application "nanoLinux II"
    Data size 158.2 MiB (165918720 bytes, 81015 blocks of 2 KiB)
    El Torito boot record, catalog at 79733
      Bootable non-emulated image, starts at 79736, preloads 2 KiB

83.2.2   Utilizzo di «gpart»

Il programma gpart (11) consente di scandire un disco o un file-immagine per ricostruire la sua suddivisione in partizioni:

gpart [opzioni] file_di_dispositivo
gpart -C cilindri,testine,settori -g [altre_opzioni] file_immagine

Per poter fornire informazioni corrette, il programma deve conoscere la geometria del disco da controllare, cosa che ottiene normalmente dal sistema operativo; tuttavia, quando il valore ottenuto automaticamente non è valido, oppure quando si tratta di un file-immagine, tale informazione deve essere fornita attraverso le opzioni della riga di comando, come si vede nel modello proposto a proposito della lettura di un file-immagine.

Si osservi che la ricerca eseguita da gpart è più semplice e più attendibile se la suddivisione in partizioni del disco da scandire non prevede la presenza di partizioni «logiche»; in pratica, va meglio se ci sono solo partizioni primarie, che si annotano nel primo settore di avvio.

Viene mostrato un solo esempio, molto semplice, di un disco che ha una tabella delle partizioni coerente con la suddivisione reale; per un approfondimento dell'uso del programma si può consultare la pagina di manuale gpart(8).

gpart /dev/hdb[Invio]

Si richiede la scansione del secondo disco ATA; in questo caso si ottiene il risultato seguente:

Begin scan...
Possible partition(Linux swap), size(8259mb), offset(0mb)
Possible partition(Linux ext2), size(13350mb), offset(8259mb)
Possible partition(Linux ext2), size(21603mb), offset(21610mb)
Possible partition(Linux ext2), size(34944mb), offset(43213mb)
End scan.

Checking partitions...
Partition(Linux swap or Solaris/x86): primary 
Partition(Linux ext2 filesystem): primary 
Partition(Linux ext2 filesystem): primary 
Partition(Linux ext2 filesystem): primary 
Ok.

Guessed primary partition table:
Primary partition(1)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 8259mb #s(16916376) s(63-16916438)
   chs:  (0/1/1)-(1023/15/63)d (0/1/1)-(16782/2/57)r

Primary partition(2)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 13350mb #s(27342624) s(16916445-44259068)
   chs:  (1023/15/63)-(1023/15/63)d (16782/3/1)-(43907/12/57)r

Primary partition(3)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 21603mb #s(44243008) s(44259075-88502082)
   chs:  (1023/15/63)-(1023/15/63)d (43907/13/1)-(87799/10/61)r

Primary partition(4)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 34944mb #s(71565312) s(88502085-160067396)
   chs:  (1023/15/63)-(1023/15/63)d (87799/11/1)-(158797/0/21)r

83.2.3   Utilizzo di «e2fsck», «fsck.ext2» e «fsck.ext3»

Il programma e2fsck (12) permette di eseguire un controllo in un file system di tipo Ext2 e Ext3, applicando le correzioni ritenute necessarie. In generale, è opportuno che il file system da controllare non sia innestato, o almeno, se è innestato, è necessario che sia accessibile in sola lettura.

e2fsck [opzioni] dispositivo
fsck.ext2 [opzioni] dispositivo
fsck.ext3 [opzioni] dispositivo

Vedere e2fsck(8).

Tabella 83.13. Alcune opzioni.

Opzione Descrizione
-c
Avvia a sua volta il programma badblocks in modo da ricercare e segnare eventuali blocchi difettosi.
La lettera «c» sta per check.
-f
Forza il controllo anche se il file system sembra in ordine (un file system che sembra non contenere errori viene definito «pulito»: clean).
La lettera «f» sta per force.
-F
Prima di procedere, fa in modo di scaricare la memoria cache del file system su cui si vuole intervenire.
La lettera «F» sta per flush.
-n
Esegue il controllo in sola lettura, rispondendo automaticamente n (no), a tutte le domande che potrebbero essere fatte.
-p
Ripara automaticamente il file system senza fare alcuna domanda.
La lettera «p» sta per preen.
-y
Risponde automaticamente y (yes), a tutte le domande che potrebbero essere fatte, in modo da permetterne l'utilizzo non interattivo attraverso uno script.

Il valore restituito da e2fsck è il risultato della somma delle condizioni seguenti:

  • 0   conclusione normale senza errori;

  • 1   errori nel file system;

  • 2   errori del sistema: se il file system risulta innestato, è necessario riavviare il sistema;

  • 4   errori nel file system rimasti inalterati;

  • 8   errore operativo;

  • 16   errore nell'utilizzo o nella sintassi;

  • 128   errore nella libreria condivisa.

83.2.4   Utilizzo di «dosfsck» e «fsck.msdos»

Il programma dosfsck (13) permette di eseguire il controllo di un file system di tipo Dos-FAT e di applicare le correzioni ritenute necessarie. In generale, è opportuno che il file system da controllare non sia innestato.(14)

dosfsck [opzioni] dispositivo
fsck.msdos [opzioni] dispositivo

Per conoscere maggiori dettagli conviene consultare dosfsck(8).

Tabella 83.14. Alcune opzioni.

Opzione Descrizione
-a
Esegue automaticamente la riparazione del file system. Se esiste più di una possibilità per eseguire una correzione, viene scelta la meno distruttiva.
La lettera «a» sta per automatic.
-r
Esegue la riparazione del file system in modo interattivo, richiedendo all'utente la scelta sul tipo di correzione da attuare quando esiste più di una scelta.
La lettera «r» sta per repair.
-t
Marca i cluster illeggibili come difettosi.
La lettera «t» sta per tag.

Il valore restituito da dosfsck viene descritto nell'elenco seguente.

  • 0   Non sono stati riscontrati errori nel file system.

  • 1   Sono stati riscontrati errori risolvibili.

  • 2   Errore nell'utilizzo o nella sintassi.

83.2.5   Utilizzo di «fsck»

Il programma fsck rende uniforme l'utilizzo dei programmi specifici per il controllo e la correzione dei vari tipi di file system. Si tratta di un programma frontale.

fsck  [opzioni] [-t tipo_di_fs] [opzioni_specifiche] dispositivo...

L'opzione -t serve per specificare il tipo di file system da analizzare, in questo modo fsck sa a quale programma deve rivolgersi. Le opzioni specifiche dipendono dal tipo di file system, ovvero dal programma che si prende cura effettivamente dell'operazione.

Vedere fsck(8).

83.3   Parted

La gestione delle partizioni di un disco, in un sistema GNU/Linux, può essere fatta con Parted, (15) che consente anche il loro spostamento, il ridimensionamento e l'inizializzazione, con i file system comuni nei sistemi GNU/Linux. L'utilizzo di Parted richiede comunque una buona conoscenza del problema e di conseguenza conviene prima fare esperienza con gli strumenti tradizionali.

Per svolgere il suo compito, Parted richiede di specificare inizialmente il file di dispositivo corrispondente al disco nel quale vanno gestite le partizioni (può trattarsi anche di un file-immagine che rappresenta un disco suddiviso o da suddividere in partizioni); successivamente, attraverso dei comandi si fa riferimento alle partizioni indicando un numero, che rappresenta precisamente il numero secondario (minor number) del file di dispositivo corrispondente. Per esempio, volendo fare riferimento a una partizione, il cui file di dispositivo è normalmente /dev/hda2, con i comandi di Parted si deve specificare il numero 2, che corrisponde al numero secondario di tale file:

ls -l /dev/hda2[Invio]

brw-rw----  1 root disk 3, 2 2005-01-01 13:15 /dev/hda2

Parted si avvia attraverso l'eseguibile parted, che ha due modalità di funzionamento: una interattiva e l'altra no.

parted [opzioni] [file_di_dispositivo]
parted [opzioni] file_di_dispositivo comando_e_argomenti

Nel primo modello sintattico si vede l'avvio di Parted per funzionare in modo interattivo; nel secondo, aggiungendo in coda il comando desiderato, il programma smette di funzionare al termine dell'esecuzione dello stesso.

È da osservare che il file di dispositivo, che appare formalmente come facoltativo nella riga di comando, serve a specificare su quale disco si intende lavorare; se non viene specificato all'avvio, occorre poi usare il comando select per indicarlo durante il funzionamento in modalità interattiva.

Le opzioni previste per l'avvio di Parted sono utili sono in poche occasioni; in particolare, merita di essere ricordata solo l'opzione -s, ovvero --script, con la quale si vuole precisare che il programma non deve tentare di interagire con l'utente (presumibilmente perché viene avviato all'interno di uno script.

Diversi comandi di Parted fanno riferimento a una porzione del disco, individuata come un punto iniziale e un punto finale. Per delimitare questi intervalli, si fa riferimento a dimensioni espresse in mebibyte (simbolo «Mibyte», ovvero multipli di 1 048 576 byte). Al contrario, con programmi tradizionali per la gestione delle partizioni, si deve fare riferimento ai cilindri, ma questo approccio è stato evitato volutamente nella realizzazione del programma.

Tabella 83.16. Alcuni comandi di Parted.

Comando Descrizione
quit
Termina il funzionamento del programma.
help [comando]
Mostra l'elenco dei comandi disponibili, oppure mostra la sintassi del comando specificato.
select file
Seleziona l'oggetto su cui intervenire; potrebbe trattarsi di un file di dispositivo che fa riferimento a un disco, oppure un file-immagine di un disco. In ogni caso, con questo comando, si individua qualcosa che viene suddiviso in partizioni.
print
Mostra l'elenco delle partizioni presenti nell'oggetto selezionato (già nella riga di comando oppure attraverso il comando select).
mklabel loop|msdos|pc98|...
Crea una tabella di partizioni secondo lo schema specificato dall'argomento del comando. La parola chiave loop fa riferimento a un disco senza tabella di partizioni; il tipo pc98 è una versione un po' più evoluta della tabella tradizionale per sistemi Dos. Sono disponibili altre parole chiave per altrettante tabelle di partizione differenti, che però sono state omesse nel modello.
mkpart tipo [file_system] inizio fine
Crea una partizione. Il tipo è rappresentato da una parola chiave come primary, extended o logical, tenendo conto che non tutti gli schemi di partizionamento prevedono partizioni estese e logiche. Il file system, facoltativo, viene specificato con una parola chiave, come per esempio ext2, fat32, fat16, HFS, linux-swap.
mkfs n file_system
Inizializza una partizione, specificata attraverso il numero secondario (n), con il file system indicato alla fine del comando da una parola chiave analoga a quella di mkpart.
mkpartfs tipo file_system inizio fine
Crea una partizione e la inizializza. Si utilizza come il comando mkpart, con la differenza che la partizione viene inizializzata.
check n
Controlla che il file system contenuto nella partizione individuata dal numero secondario n sia privo di errori.
set n opzione on|off
Consente di attivare (on) o disattivare (off) una certa opzione booleana, associata alla partizione del numero secondario n. Le opzioni disponibili dipendono dal tipo di schema di partizionamento usato.
set n boot on|off
Attiva o disattiva l'opzione di «avvio». Con i sistemi Dos, l'attivazione di questa opzione rende avviabile la partizione relativa.
set n lba on|off
Attiva o disattiva l'opzione con cui si specifica che lo schema di accesso al disco è di tipo LBA (Linear block addressing).
resize n inizio fine
Ridimensiona la partizione individuata dal numero secondario n, in modo che inizi e finisca nell'intervallo indicato. Il ridimensionamento può avvenire solo se la partizione contiene un file system compatibile, tenendo conto che in alcuni casi, può essere impossibile modificare il punto di inizio della partizione, rispetto alla sua collocazione precedente.
move n inizio [fine]
Sposta la partizione individuata dal numero secondario n, in modo che inizi e finisca nell'intervallo indicato. Se la posizione finale viene indicata, si ottiene un ridimensionamento della partizione, altrimenti questa rimane tale e quale. Con alcuni file system è necessario che la destinazione sia più grande dell'origine.
rm n
Cancella la partizione individuata dal numero secondario n (temporaneamente il contenuto della partizione rimane presente, anche se non più raggiungibile). Si osservi che in alcuni casi, la cancellazione di una partizione provoca la rinumerazione di quelle successive.
cp m n
cp file_origine m n
Copia la partizione m nella partizione n. Nel secondo modello, si specifica il file, o il file di dispositivo, che contiene la partizione di origine, così da consentire la copia da un disco diverso o da un file-immagine diverso.

I comandi di Parted sono «semplici», ma richiedono la conoscenza di ciò che si sta facendo, soprattutto delle caratteristiche dello schema di partizionamento utilizzato. Tanto per fare un esempio, il comando mkpart richiede, eventualmente, l'indicazione di un tipo di file system, ma questa informazione serve in modo indiretto, per determinare il codice da attribuire al tipo di partizione. Per esempio, se con il comando mkpart si indicasse un file system di tipo ext3, si otterrebbe una partizione di tipo 8316, ovvero di tipo «Linux».

Vengono descritti alcuni esempi, che fanno parte di una sequenza coerente di operazioni, dove Parted viene usato in modo interattivo. Questi esempi non esauriscono le potenzialità di Parted; per maggiori dettagli e per conoscere lo stato dello sviluppo di questo programma, occorre fare riferimento alla documentazione originale.

  • parted /dev/sda[Invio]

    Si avvia il programma specificando di intervenire con i comandi nel disco corrispondente al file di dispositivo /dev/sda.

    GNU Parted 1.6.11 with HFS shrink patch 12.5
    Copyright (C) 1998 - 2004 Free Software Foundation, Inc.
    This program is free software, covered by the GNU General Public License.
    
    This program is distributed in the hope that it will be useful, but WITHOUT ANY
    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    
    Using /dev/sda
    

    Inizia quindi il funzionamento interattivo di Parted, caratterizzato dall'invito seguente:

    (parted) 

  • (parted) mklabel msdos[Invio]

    Crea uno schema di partizionamento conforme a quello usato dal sistema operativo Dos.

  • (parted) mkpartfs primary fat16 0 100[Invio]

    Crea una partizione primaria con un file system di tipo Dos-FAT 16, dall'inizio (zero) fino ai primi 100 Mibyte circa. La partizione viene inizializzata.

  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    1          0.016    100.000  primary   fat16       lba
    
  • (parted) mkpartfs primary ext2 100 159[Invio]

    Crea una partizione primaria di tipo Ext2, subito dopo i primi 100 Mibyte, fino a raggiungere la posizione di 159 Mibyte circa. Questo esempio è collegato a quelli precedenti, pertanto la seconda partizione occupa tutto lo spazio rimanente nel disco.

  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    1          0.016    100.000  primary   fat16       lba
    2        100.000    158.250  primary   ext2
    
  • (parted) rm 1[Invio]

    Cancella la prima partizione.

  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    2        100.000    158.250  primary   ext2
    
  • (parted) move 2 0[Invio]

    Sposta la seconda partizione, nella posizione iniziale del disco, lasciando intendere che la posizione finale sia quella necessaria a contenere la dimensione originale:

    End? [58.2495]? [Invio]

    raw block copying...
    
  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    2          0.016     58.312  primary   ext2
    
  • (parted) resize 0 70[Invio]

    Ingrandisce la partizione, estendendola fino ai primi 70 Mibyte circa.

  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    2          0.016     70.000  primary   ext2
    
  • (parted) mkpart primary 70 159[Invio]

    Crea una partizione primaria, senza specificare il tipo di file system che si vuole usare al suo interno, nello spazio rimanente del disco.

  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    2          0.016     70.000  primary   ext2
    1         70.000    158.250  primary
    
  • (parted) cp 2 1[Invio]

    Copia la partizione 2 nella partizione 1, estendendo il file system nella destinazione.

    raw block copying...
    growing file system...
    
  • (parted) print[Invio]

    Mostra lo stato attuale delle partizioni:

    Disk geometry for /dev/sda: 0.000-158.277 megabytes
    Disk label type: msdos
    Minor    Start       End     Type      Filesystem  Flags
    2          0.016     70.000  primary   ext2
    1         70.000    158.250  primary   ext2
    
  • (parted) quit[Invio]

    Termina il funzionamento del programma.

83.4   Attivazione dei file system

Per poter accedere ai dati di un'unità di memorizzazione organizzata con un file system, è necessario prima innestare o inserire (mount), il suo file system in quello globale.

Prima di estrarre una di queste unità, o comunque, prima di poter spegnere un elaboratore, occorre eseguire l'operazione opposta di distacco (unmount).

In un sistema GNU/Linux devono essere necessariamente innestati il file system principale (root) e il file system virtuale /proc/, che però non fa capo ad alcuna unità fisica.

Se si utilizzano partizioni di scambio per la gestione della memoria virtuale, queste devono essere attivate con un'operazione concettualmente simile a quella dell'innesto di un file system, anche se poi non appaiono nella struttura generale del file system globale.

83.4.1   Tipi di file system

Quando si innesta un file system è necessario che il modo con cui questo è organizzato (cioè il tipo) sia riconoscibile e gestito dal kernel. Nella tabella 83.27, sono elencati i nomi che identificano i tipi di file system riconoscibili da un kernel Linux.

Tabella 83.27. Elenco dei nomi di file system utilizzabili.

Tipo di file system Descrizione
minix
Minix
ext2
Ext2
ext3
Ext3
hpfs
umsdos
GNU/Linux su Dos-FAT
msdos
Dos-FAT (nomi 8.3)
vfat
Dos-VFAT (nomi lunghi)
nfs
NFS o file system di rete
coda
iso9660
CD-ROM
smbfs
SMB (rete NetBIOS-TCP/IP)
ncpfs
affs
adfs
sysv
cramfs
file system compresso, accessibile in sola lettura
devpts
efs
hfs
hpfs
jfs
ntfs
qnx4
ramfs
reiserfs
romfs
tempfs
file system in un disco RAM, che si estende e si contrae automaticamente.
xfs
udf
ufs
proc
file system virtuale /proc
swap
partizione di scambio

83.4.2   Implicazioni legate all'innesto di un file system

L'innesto di un file system implica l'acquisizione di un file system estraneo in quello generale. Questo fatto può far sorgere problemi di sicurezza e di compatibilità con il sistema. L'elenco seguente dovrebbe dare l'idea di alcuni dei problemi connessi.

  • Il file system estraneo potrebbe non essere sicuro, di conseguenza si pone il problema di:

    • decidere se permettere l'avvio dei file eseguibili, infatti potrebbe trattarsi di cavalli di Troia;

    • decidere se considerare validi o meno i permessi SUID e SGID che potrebbero dare ai programmi privilegi indesiderabili;

    • decidere se gli utenti comuni possono eseguirne l'innesto di un file system.

  • Il file system estraneo potrebbe contenere dati che non devono essere modificati; in tal caso conviene utilizzarlo in sola lettura per impedire l'alterazione del suo contenuto, anche solo accidentalmente.

  • Il file system estraneo potrebbe essere incompatibile con la struttura di un file system Unix. In tal caso, occorre trovare il modo di farlo assomigliare a questo, per esempio attribuendo a tutti i file gli stessi permessi e la proprietà a un utente e a un gruppo particolare.

Un'altra cosa da considerare sono i permessi della directory radice del disco che si va a innestare. Di per sé non c'è nulla di strano, se il file system che si innesta è in grado di gestire tali informazioni, basta usare i comandi normali, come chmod e chown per cambiarli, ma questo può confondere il principiante. In breve: quando si cambia la proprietà e i permessi di una directory sulla quale è stato innestato un altro file system, questi cambiamenti hanno effetto in quel file system.

83.4.3   Opzioni

In occasione dell'innesto di un file system si possono definire alcune opzioni allo scopo di modificarne il comportamento predefinito. Quello che segue è un elenco parziale delle opzioni disponibili. Inizialmente vengono mostrate le opzioni che riguardano generalmente i file system compatibili con i sistemi operativi Unix e possono essere utilizzate anche in presenza di file system differenti quando ciò può avere significato.

Vedere mount(8) e nfs(5).

Tabella 83.28. Opzioni valide per i file system Unix.

Opzione Descrizione
remount
Si tratta di un'opzione speciale che può essere usata solo quando il file system in questione è già innestato, allo scopo di reinnestarlo con delle opzioni differenti (quelle che vengono definite assieme a remount).
default
Utilizza le impostazioni predefinite: rw, suid, dev, exec, auto, atime, nouser, async.
sync
async
Esegue gli I/O sui file system in modo sincrono o asincrono. La modalità sincrona è più sicura, ma il suo utilizzo rallenta e appesantisce l'attività del disco.
atime
noatime
Aggiorna o meno la data di accesso ai file. Può essere utile eliminare questo tipo di aggiornamento per ridurre l'attività del disco.
auto
noauto
Permette o impedisce l'innesto automatico quando si utilizza il file /etc/fstab.
dev
nodev
Considera validi, o esclude la validità dei file di dispositivo che dovessero essere contenuti nel file system.
exec
noexec
Permette o impedisce l'esecuzione di file binari.
suid
nosuid
Consente o impedisce che i bit SUID (Set user ID) e SGID (Set group ID) abbiano effetto. Disattivando questa possibilità (cioè utilizzando l'opzione nosuid), si vuole evitare che gli eseguibili contenuti nel file system che si intende innestare, possano ottenere privilegi particolari.
user
nouser
Permette o impedisce all'utente comune di innestare e staccare il file system. L'opzione user implica l'attivazione automatica di noexec, nosuid e nodev, a meno che queste siano annullate da successive indicazioni contrarie come nella lista seguente: user,exec,suid,dev.
ro
Richiede un accesso in sola lettura.
rw
Richiede un accesso in lettura e scrittura.

La tabella successiva riguarda i file system FAT, ovvero ciò che è alla base dei file system umsdos, msdos e vfat. Tuttavia, occorre ricordare che un file system UMSDOS emula un file system Unix, quindi non sono valide le opzioni seguenti nel caso specifico di questo tipo di file system.

Tabella 83.29. Opzioni valide per i file system FAT.

Opzione Descrizione
uid=identificativo_utente
Permette di stabilire il proprietario dei file e delle directory contenute nel file system. Se non viene specificato, si intende appartengano all'utente che esegue l'innesto.
gid=identificativo_gruppo
Permette di stabilire il gruppo proprietario dei file e delle directory contenute nel file system. Se non viene specificato, si intende appartengano al gruppo dell'utente che esegue l'innesto.
umask=maschera
Permette di stabilire quali permessi inibire nel file system. Si tratta del solito numero ottale, composto da tre cifre numeriche, dove la prima cifra rappresenta i permessi per il proprietario, la seconda per il gruppo, la terza per il resto degli utenti.
Se non viene specificato si utilizza il valore predefinito per la creazione dei file nei file system normali: umask appunto.
quiet
I file system FAT non sono in grado di memorizzare informazioni sulle proprietà e i permessi dei file. Di conseguenza, i programmi che tentano di modificare i valori predefiniti, ottengono una segnalazione di errore dalle funzioni di sistema. L'opzione quiet inibisce queste segnalazioni di errore.

Per quanto riguarda l'opzione umask dei file system FAT, si ricorda il significato dei valori che possono essere attribuiti:

  • 18 rappresenta un permesso di esecuzione;

  • 28 rappresenta un permesso di scrittura;

  • 48 rappresenta un permesso di lettura.

Di conseguenza:

  • 38 rappresenta un permesso di scrittura e di esecuzione;

  • 58 rappresenta un permesso di lettura e di esecuzione;

  • 68 rappresenta un permesso di lettura e di scrittura;

  • 78 rappresenta un permesso di lettura, scrittura e di esecuzione.

Bisogna fare attenzione però che il valore che si inserisce rappresenta un impedimento all'uso di quel permesso, di conseguenza, la maschera 0228 indica che è consentito al proprietario qualunque tipo di accesso (lettura, scrittura ed esecuzione), mentre agli altri utenti non è consentito l'accesso in scrittura.

Un caso particolare di opzione è loop che consente di accedere a file-immagine di dischi o partizioni. Questa particolarità viene descritta in un altro capitolo.

83.4.4   Utilizzo di «mount»

Il programma mount (16) permettere di innestare, un file system all'interno del sistema. Il programma opposto è umount e serve per staccare, un file system innestato precedentemente.

mount [opzioni] [dispositivo] [directory]

La forma normale e più semplice di utilizzo di mount è la seguente:

mount -t tipo_di_file_system dispositivo punto_di_innesto

In questo modo si richiede al kernel di innestare il file system del dispositivo specificato nella directory indicata (il punto di innesto).

Per conoscere la situazione dei dispositivi collegati attraverso questo sistema, si può usare la sintassi seguente:

mount [ -t tipo_di_file_system]

Se viene specificato il tipo di file system, si ottiene un elenco limitato a quei dispositivi.

Il file system /proc/ non è associato ad alcun dispositivo speciale; pertanto, quando se ne vuole eseguire l'innesto, si può utilizzare un nome di dispositivo arbitrario, per esempio proc.

La maggior parte delle unità di memorizzazione sono indicate nel modo consueto utilizzando nomi di file di dispositivo (/dev/...), ma ci possono essere altre possibilità, come quando si vuole innestare un file system di rete o NFS, dove si usa la forma nodo:/directory.

Il file /etc/fstab viene utilizzato per automatizzare l'innesto dei file system più importanti al momento dell'avvio del sistema. Questo viene letto utilizzando la forma seguente:

mount -a [ -t tipo_di_file_system]

Di solito si trova una chiamata di questo tipo all'interno di uno degli script che compongono la procedura di inizializzazione del sistema (/etc/init.d/* oppure /etc/rc.d/rc*). La presenza del file di configurazione /etc/fstab è utile anche per semplificare l'innesto (e così l'operazione inversa) di un file system che sia stato previsto al suo interno. Diventa sufficiente una delle due forme seguenti:

mount dispositivo
mount punto_di_innesto

In linea di principio, solo l'utente root può innestare un file system. Per permettere agli utenti comuni di innestare e staccare un'unità di memorizzazione (come nel caso di un CD-ROM o di un dischetto), la si può indicare nel file /etc/fstab con l'opzione user. Nell'esempio seguente, si vede un record di /etc/fstab attraverso il quale si definisce l'innesto facoltativo di un CD-ROM in sola lettura con la possibilità anche per gli utenti comuni di eseguire l'operazione:

/dev/cdrom  /cdrom  iso9660  ro,user,noauto,unhide

In tal modo, qualunque utente ha la possibilità di eseguire uno dei due possibili comandi seguenti:

mount /dev/cdrom[Invio]

mount /cdrom[Invio]

La coppia di programmi mount e umount mantiene una lista dei file system innestati correntemente. Quando mount viene avviato senza argomenti si ottiene l'emissione del contenuto di questa lista.

Per approfondire l'utilizzo di mount, si veda anche la pagina di manuale mount(8).

Tabella 83.31. Alcune opzioni.

Opzione Descrizione
-a
Utilizza /etc/fstab per eseguire automaticamente l'operazione: vengono innestati tutti i file system a esclusione di quelli segnati come noauto.
-t [no]tipo_di_file_system[,...]
Specifica il tipo di file system. Sono riconosciuti i nomi indicati nella tabella 83.27. Se il nome del tipo di file system viene preceduto dalla sigla no, si intende che quel tipo deve essere escluso. Se si vogliono indicare più tipi di file system questi vengono separati da virgole.
Quando si usa questa opzione con l'indicazione di più tipi, o con il prefisso no, lo si fa quasi sempre con l'uso dell'opzione -a, come nell'esempio seguente:
mount -a -t nomsdos,nonfs
In questo caso si intende eseguire l'innesto di tutti i file system indicati all'interno di /etc/fstab, a esclusione dei tipi msdos e nfs.
-o opzione_di_file_system[,...]
Questa opzione permette di specificare uno o più nomi di opzioni, separati da virgole, legati alla gestione del file system. L'elenco di questi nomi si trova nella sezione 83.4.3.

Segue la descrizione di alcuni esempi.

  • mount -t ext3 /dev/hda2 /mnt[Invio]

    Innesta il file system di tipo Ext3 contenuto nella seconda partizione del primo disco fisso ATA, a partire dalla directory /mnt.

  • mount -t vfat /dev/fd0 /floppy[Invio]

    Innesta il file system di tipo Dos-VFAT (Dos-FAT con le estensioni per i nomi lunghi) contenuto in un dischetto inserito nella prima unità, a partire dalla directory /floppy/.

  • mount -t nfs roggen.brot.dg:/pubblica /roggen[Invio]

    Innesta il file system di rete offerto dall'elaboratore roggen.brot.dg, corrispondente alla sua directory /pubblica/ (e discendenti), nella directory locale /roggen/.

83.4.5   Utilizzo di «umount»

Il programma umount (17) esegue l'operazione inversa di mount: stacca i file system. L'operazione può avvenire solo quando non ci sono più attività in corso su quei file system, altrimenti l'operazione fallisce.

umount [opzioni] [dispositivo] [directory]

L'opzione -a ha un significato simile a quella di mount, ma serve a eseguire il distacco di tutti i file system che in un certo momento risultano innestati. Per sapere quali sono gli innesti in corso, si avvale del contenuto del file /etc/mtab, che dovrebbe risultare aggiornato in tal senso.

Tabella 83.32. Alcune opzioni.

Opzione Descrizione
-a
Vengono separati tutti i file system indicati in /etc/mtab.
-t [no]tipo_di_file_system[,...]
Indica che l'azione deve essere eseguita solo sui file system specificati. Se si usa il prefisso no, l'azione si deve compiere su tutti i file system a esclusione di quelli indicati.

Segue la descrizione di alcuni esempi.

  • umount /dev/hda2[Invio]

    Stacca il file system innestato precedentemente, riferito al dispositivo /dev/hda2.

  • umount /mnt[Invio]

    Stacca il file system innestato precedentemente nella directory /mnt.

  • umount -a[Invio]

    Stacca tutti i file system che trova annotati nel file /etc/mtab, escluso il file system proc.

    Il programma umount non stacca i file system che sono utilizzati in qualche modo, di conseguenza è improbabile che il comando umount -a possa eseguire il distacco del file system principale. Nella fase di arresto del sistema, questo viene reinnestato in sola lettura prima dell'arresto totale.

83.4.6   File «/etc/fstab»

Il file /etc/fstab viene utilizzato per definire le caratteristiche e le directory di inserimento (punti di innesto) dei vari file system, usati di frequente nel sistema. Si tratta di un file che viene solo letto dai programmi e il suo aggiornamento viene fatto in modo manuale dall'amministratore del sistema.

Il file è organizzato in record (corrispondenti alle righe) divisi in campi separati da uno o più spazi (inclusi i caratteri di tabulazione). Le righe che iniziano con il simbolo #, le righe vuote e quelle bianche sono ignorate e trattate eventualmente come commenti.

  1. Il primo campo definisce il tipo di dispositivo o il file system remoto da innestare.

  2. Il secondo campo definisce la directory che funge da punto di innesto per il file system.

  3. Il terzo campo definisce il tipo di file system e ne viene indicato il nome in base alla tabella 83.27.

    Se in questo campo viene indicato il termine ignore, si intende fare riferimento a una partizione presente, ma inutilizzata, per la quale non si vuole effettuare alcun innesto. Di fatto, i record che contengono questa indicazione vengono ignorati.

  4. Il quarto campo descrive le opzioni speciali per il tipo di innesto che si intende eseguire. Si tratta delle stesse opzioni speciali descritte nella pagina di manuale mount(8) e anche nella sezione 83.4.4 in occasione della spiegazione dell'uso dell'opzione -o (a esclusione dell'opzione remount).

  5. Il quinto campo viene utilizzato per determinare quali file system possono essere utilizzati per lo scarico dei dati (dump).(18)

  6. Il sesto campo viene utilizzato dal programma fsck per determinare l'ordine in cui il controllo dell'integrità dei file system deve essere effettuato nel momento dell'avvio del sistema.

    Il file system principale dovrebbe avere il numero uno in questo campo, mentre gli altri, il numero due (o anche valori superiori). Se questo campo contiene il valore zero, significa che il file system in questione non deve essere controllato.

Nell'esempio seguente, tutte le unità che non sono unite stabilmente al corpo fisico dell'elaboratore, hanno l'opzione noauto che impedisce l'innesto automatico all'avvio del sistema. Queste possono essere attivate solo manualmente, attraverso mount, con il vantaggio di potere indicare semplicemente la directory di inserimento (il punto di innesto) o il nome del file di dispositivo.

# nome               Innesto      Tipo     Opzioni           Dump  Check

/dev/hda3            /            ext3     defaults           0     1
/dev/hdb1            /home        ext3     defaults           0     2
proc                 /proc        proc     defaults           0     0 
/dev/hda2            none         swap     sw
/dev/hda1            /mnt/dosc    vfat     quiet,umask=000    0     0
/dev/sda             /mnt/dosd    vfat     user,noauto,quiet  0     0
/dev/sda1            /mnt/scsimo  ext3     user,noauto        0     0
/dev/cdrom           /mnt/cdrom   iso9660  ro,user,noauto     0     0
roggen.brot.dg:/     /mnt/roggen  nfs      ro,user,noauto     0     0
/dev/fd0             /mnt/dosa    vfat     user,noauto,quiet  0     0
  • La partizione corrispondente al file di dispositivo /dev/hda3 viene utilizzata come file system principale, che per questo è il primo a essere attivato. L'ultimo campo (check) riporta il valore uno, perché si vuole fare in modo che questo file system venga controllato per primo al momento dell'avvio del sistema.

  • La partizione corrispondente al file di dispositivo /dev/hdb1 viene utilizzata come file system per contenere le directory personali degli utenti. L'ultimo campo riporta il valore due, perché si vuole fare in modo che questo file system venga controllato per secondo al momento dell'avvio del sistema, dopo il controllo del file system principale.

  • Il file system virtuale proc viene innestato correttamente nella directory /proc/. Nel campo del nome, la sigla proc non significa nulla, ma è preferibile al consueto none che si usa spesso in questo caso.

  • La partizione corrispondente al file di dispositivo /dev/hda1 contiene un file system Dos-FAT con la gestione dei nomi lunghi. In particolare, viene permesso a ogni utente di accedere ai suoi file in tutti i modi possibili.

  • Il file di dispositivo /dev/sda rappresenta un cosiddetto superfloppy, cioè un disco rimovibile che non viene suddiviso in partizioni, esattamente come si fa con i dischetti. Trattandosi di un disco rimovibile viene concesso a tutti gli utenti di eseguire l'innesto e questo non viene effettuato automaticamente al momento dell'avvio del sistema.

  • La partizione corrispondente al file di dispositivo /dev/sda1 rappresenta la stessa unità a dischi rimovibili, ma in questo caso viene vista come la prima partizione di uno di questi dischi. Anche qui viene concesso agli utenti comuni di innestare e staccare la partizione.

  • Il file /dev/cdrom rappresenta il lettore di CD-ROM (si tratta normalmente di un collegamento simbolico al file di dispositivo appropriato). In particolare, viene specificato che l'accesso può avvenire in sola lettura.

  • L'elaboratore roggen.brot.dg condivide tutto il proprio file system (a partire dalla directory radice) attraverso il protocollo NFS. Viene consentito l'accesso in sola lettura.

  • L'unità a dischetti, corrispondente al file di dispositivo /dev/fd0, può essere utilizzata da tutti gli utenti e si prevede di accedere sempre solo al formato Dos-FAT con l'estensione per i nomi lunghi.

83.4.7   File «/etc/mtab»

Il file /etc/mtab ha la stessa struttura di /etc/fstab, ma viene gestito automaticamente da mount e umount, con lo scopo di rappresentare i file system innestati nella struttura generale. Non deve essere modificato e dovrebbe essere creato automaticamente all'avvio del sistema.

In un sistema GNU/Linux, il file virtuale /proc/mounts riproduce sostanzialmente le stesse informazioni che possono apparire all'interno di /etc/mtab. Per questa ragione, quando la directory /etc/ deve funzionare in sola lettura, si utilizza spesso, al posto del file /etc/mtab, un collegamento simbolico a /proc/mounts. Tuttavia, in condizioni normali questo non si fa, perché non tutti i programmi che hanno bisogno di accedere a /etc/mtab si trovano a proprio agio con tale raggiro.

83.4.8   Utilizzo di «df»

Il programma df, (19) ovvero Disk free, permette di conoscere lo spazio a disposizione di una o di tutte le partizioni che risultano innestate. Se non vengono indicati i nomi dei file di dispositivo, si ottiene l'elenco completo di tutti quelli che sono attivi, altrimenti l'elenco si riduce ai nomi specificati.

df [opzioni] [dispositivo...]

L'unità di misura con cui si esprime questo spazio è in blocchi la cui dimensione cambia a seconda delle opzioni utilizzate oppure dalla presenza di una variabile di ambiente: POSIXLY_CORRECT. La presenza di questa fa sì che, se non viene usata l'opzione -k, i blocchi siano di 512 byte come prevede lo standard POSIX. Diversamente, il valore predefinito dei blocchi è di 1 024 byte.

Tabella 83.34. Alcune opzioni.

Opzione Descrizione
-a
--all
Emette le informazioni relative a tutti i dispositivi attivi, anche di quelli che normalmente vengono ignorati.
-h
--human-readable
Aggiunge una lettera alla dimensione, in modo da chiarire il tipo di unità di misura utilizzato.
-i
--inodes
Emette il risultato indicando l'utilizzo e la disponibilità di inode, invece che fare riferimento ai blocchi. Questa informazione è utile solo per i file system che utilizzano una struttura a inode.
-b
--byte
Emette le dimensioni in byte e non in kibibyte (simbolo: «Kibyte»).
-k
--kilobytes
Emette le dimensioni in kibibyte. Questa opzione fa riferimento all'unità di misura predefinita, ma permette di fare ignorare a df la presenza eventuale della variabile POSIXLY_CORRECT.
-m
--megabytes
Emette le dimensioni in mebibyte (simbolo: «Mibyte»).

83.4.9   Utilizzo di «di»

Il programma di, (20) ovvero Disk information, permette di ottenere informazioni simili a quelle di df, con la possibilità di specificare con più libertà il formato con cui queste devono essere visualizzate:

di [opzioni] [file...]

Per individuare i dischi e le partizioni, è sufficiente indicare dei file che si trovano al loro interno, altrimenti si ottiene lo stato di tutti i dischi e le partizioni che costituiscono l'albero attuale del file system.

Tabella 83.35. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-a
all Emette le informazioni relative a tutti i dispositivi attivi, compresi quelli che non contengono alcunché, come /proc/.
-dx
display-size Mostra i valori in multipli di quanto specificato, attraverso la lettera x: p sta per POSIX (512 byte), k sta per kibibyte, m sta per mebibyte, g sta per gibibyte, ecc.
-dg
-g
gibibyte Mostra i valori in gibibyte.
-dm
-m
mebibyte Mostra i valori in mebibyte.
-km
-k
kibibyte Mostra i valori in kibibyte.

Tra le opzioni disponibili è possibile anche usare -f che consente di specificare un formato libero di visualizzazione delle informazioni. Questa e altre opzioni non vengono mostrate; per approfondire l'uso di questo programma si può consultare la pagina di manuale di(1). Vengono mostrati alcuni esempi.

  • di[Invio]

    Filesystem           Mount               Megs     Used    Avail %used fs Type
    /dev/hda1            /                 8130,1   4728,8   2988,3  63%  auto   
    tmpfs                /dev/shm           219,4      0,0    219,4   0%  tmpfs  
    172.21.254.254:/home /home           113337,9  47517,2  60063,4  47%  nfs    
    

    Mostra le informazioni sulle diverse porzioni che compongono l'insieme del file system complessivo, ignorando eventualmente ciò che non contiene alcunché.

  • di -a[Invio]

    Filesystem           Mount               Megs     Used    Avail %used fs Type
    /dev/hda1            /                 8130,1   4728,8   2988,3  63%  auto   
    tmpfs                /dev/shm           219,4      0,0    219,4   0%  tmpfs  
    172.21.254.254:/home /home           113337,9  47517,2  60063,4  47%  nfs    
    proc                 /proc                0,0      0,0      0,0   0%  proc   
    usbfs                /proc/bus/usb        0,0      0,0      0,0   0%  usbfs  
    sysfs                /sys                 0,0      0,0      0,0   0%  sysfs  
    

    Mostra le informazioni sulle diverse porzioni che compongono l'insieme del file system complessivo, includendo anche che non contiene alcunché (il file system /proc/ e altri simili sono virtuali e servono mostrare informazioni provenienti dal kernel).

  • di -dg[Invio]

    Filesystem           Mount               Gigs     Used    Avail %used fs Type
    /dev/hda1            /                    7,9      4,6      2,9  63%  auto   
    tmpfs                /dev/shm             0,2      0,0      0,2   0%  tmpfs  
    172.21.254.254:/home /home              110,7     46,4     58,6  47%  nfs    
    

    Mostra le informazioni numeriche in gibibyte.

  • di -dg mio_file[Invio]

    Filesystem           Mount               Gigs     Used    Avail %used fs Type
    172.21.254.254:/home /home              110,7     46,4     58,6  47%  nfs    
    

    Mostra le informazioni riferite al disco contenente il file mio_file, che in questo caso risulta essere collocato presso un elaboratore remoto.

83.4.10   Utilizzo di «stat»

Il programma stat (21) permette di conoscere alcune informazioni generali su di un file, su di una directory, o sul file system in cui questi si trovano:

stat [opzioni] file...

Le informazioni che si ottengono possono essere organizzate anche attraverso un modello libero, usando le opzioni appropriate, in modo da facilitare l'acquisizione di queste informazioni da parte di un altro programma.

Tabella 83.40. Alcune opzioni.

Opzione Descrizione
-f
--filesystem
Invece di mostrare le informazioni relative al file o alla directory indicati, si ottengono quelle del file system che li contiene.
-L
--dereference
Nel caso venga indicato un collegamento simbolico con questa opzione si ottengono le informazioni al file, alla directory, o al file system a cui punta.
-t
--terse
Mostra le informazioni in modo essenziale, per facilitarne la cattura attraverso uno script.

Tra le opzioni che appaiono nella tabella precedente, viene omessa -c, che consentirebbe di configurare il modo in cui si vogliono ottenere le informazioni. Per questo si deve consultare il documento info stat, oppure la pagina di manuale stat(1).

Vengono mostrati alcuni esempi senza commentarli.

stat mio_file[Invio]

  File: `mio_file'
  Size: 33              Blocks: 8          IO Block: 8192   regular file
Device: ah/10d  Inode: 4112856     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/ daniele)   Gid: ( 1001/ daniele)
Access: 2004-09-17 09:40:22.000000000 +0200
Modify: 2004-09-17 09:40:50.000000000 +0200
Change: 2004-09-17 09:40:50.000000000 +0200

stat -t mio_file[Invio]

mio_file 33 8 81a4 1001 1001 a 4112856 1 0 0 1095406822 1095406850 \
  \1095406850 8192

stat -f mio_file[Invio]

  File: "mio_file"
    ID: 0        Namelen: 255     Type: nfs
Blocks: Total: 4206189    Free: 3662077    Available: 3448412    Size: 8192
Inodes: Total: 4276224    Free: 4113427   

stat -f /[Invio]

  File: "/"
    ID: 0        Namelen: 255     Type: ext2/ext3
Blocks: Total: 8412378    Free: 7525313    Available: 7097984    Size: 4096
Inodes: Total: 4276224    Free: 4134421   

83.5   Memoria cache

La memoria cache dei dischi serve a ridurre l'attività di questi, effettuando le modifiche a intervalli regolari o quando diventa indispensabile per altri motivi. L'esistenza di questo tipo di organizzazione, basato su una «memoria di transito», è il motivo principale per cui si deve arrestare l'attività del sistema prima di spegnere l'elaboratore.

La memoria cache viene gestita automaticamente dal kernel, ma è un demone quello che si occupa di richiedere lo scarico periodico.

83.5.1   Utilizzo di «update», ex «bdflush»

Con questo nome, update, (22) viene avviato il demone che si occupa di richiedere periodicamente al kernel lo scarico della memoria cache. Deve essere messo in funzione durante la fase di avvio del sistema, prima di ogni altra attività di scrittura nei dischi.

update [opzioni]

Per avviare update si usano fondamentalmente due tecniche: l'utilizzo all'interno di uno script di quelli della procedura di inizializzazione del sistema, oppure l'inserimento di un record apposito all'interno di /etc/inittab.

L'esempio seguente mostra una configurazione della procedura di inizializzazione del sistema con la quale update viene avviato attraverso lo script iniziale. Segue il record del file /etc/inittab dove si fa riferimento allo script /etc/rc.d/rc.sysinit:

si::sysinit:/etc/rd.d/rc.sysinit

Ecco il pezzo significativo di /etc/rc.d/rc.sysinit:

# Attivazione della memoria virtuale.
/sbin/swapon -a

# Attivazione di update.
/sbin/update

# Controllo della partizione del file system principale.
/sbin/fsck -A -a
<synellipsis>

L'esempio seguente mostra una configurazione della procedura di inizializzazione del sistema attraverso la quale update viene avviato direttamente attraverso /etc/inittab.

ud::once:/sbin/update

83.5.2   Utilizzo di «sync»

Il programma sync (23) permette di scaricare nei dischi i dati contenuti nella memoria cache. Viene usato solitamente dalla procedura di arresto del sistema per garantire che tutti i dati siano registrati correttamente su disco prima dello spegnimento fisico dell'elaboratore.

sync [opzioni]

Può essere utilizzato in caso di emergenza, quando per qualche ragione non si può attendere il completamento della procedura di arresto del sistema, o per qualunque altro motivo.

Di solito non si usano opzioni.

83.6   Gestione di file system NTFS

Allo stato attuale, nel momento in cui viene scritta questa sezione (anno 2004), la gestione di un file system NTFS attraverso un sistema GNU/Linux è ancora incompleta. Pertanto, si usano strumenti particolari per accedere a questo tipo di file system. Data la diffusione del file system NTFS e, di conseguenza, la necessità frequente di convivere con questo, vale la pena di conoscere cosa si può fare concretamente attraverso un sistema GNU/Linux.

Il pacchetto di programmi NTFStools, (24) noto anche come NTFSprogs, raccoglie una serie di strumenti per l'accesso ai file system NTFS (senza che questo sia stato innestato). L'utilizzo di alcuni di questi programmi viene descritto brevemente nella tabella 83.48.

Tabella 83.48. Strumenti di NTFStools.

Modello sintattico Descrizione
mkntfs [opzioni] dispositivo [n_settori]
Crea un file system NTFS nel disco o nella partizione corrispondente al file di dispositivo specificato.
ntfsresize [opzioni] --info dispositivo
ntfsresize [opzioni] --size dimensione dispositivo
Verifica o modifica la dimensione della partizione; il valore della dimensione è espresso in byte.

83.7   Compatibilità dei nomi tra un file system e l'altro

Un problema comune quando si vogliono copiare dati in un file system diverso da quello solito, consiste nel verificare se ci possono essere problemi con i nomi usati per i file e le directory. Un programma molto semplice permette di verificare la compatibilità dei nomi con un file system di tipo Dos-FAT (con nomi «8.3») e SYSV (al massimo di 14 caratteri):

doschk nome_file...
echo nome_file... | doschk

Per comprendere il funzionamento di doschk (25) è sufficiente un esempio:

ls | doschk[Invio]

The following files are not valid DOS file names:
home.html.bak - too many dots
hw-mb-pci-msi-ms5169-1998-legenda.pnm.gz - too many dots
prova.fig.bak - too many dots

The following resolve to the same DOS file names:
HOME.HTM       : home.html
                 home.html.bak
MAIL           : Mail
                 mail
PROVA.FIG      : prova.fig
                 prova.fig.bak

The following file names are too long for SysV:
blick-electric : blick-electric.gif
contratti-inte : contratti-internet
hw-mb-pci-msi- : hw-mb-pci-msi-ms5169-1998-legenda.pnm.gz

83.8   Altri programmi affini

  • nparted(8) (26)

    Si tratta di un programma frontale per il controllo di Parted.

Appunti di informatica libera 2006.01.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


1) util-linux: fdformat   GNU GPL

2) Linux floppy utilities   GNU GPL

3) E2fsprogs   GNU GPL

4) util-linux: fdisk   GNU GPL

5) util-linux: cfdisk   GNU GPL

6) util-linux: sfdisk   GNU GPL

7) E2fsprogs   GNU GPL

8) Mkdosfs   GNU GPL

9) util-linux: mkfs   GNU GPL

10) Disktype   software libero con licenza speciale

11) Gpart   GNU GPL

12) E2fsprogs   GNU GPL

13) Dosfsck   GNU GPL

14) dosfsck non è un programma che viene installato in modo predefinito dalle distribuzioni, per cui, nella maggior parte dei casi occorre provvedere direttamente per questo.

15) Parted   GNU GPL

16) util-linux: mount   GNU GPL

17) util-linux: umount   GNU GPL

18) Si tratta di una procedura per ottenere delle copie di sicurezza che comunque non è indispensabile. Per questo si possono usare strumenti normali senza bisogno si utilizzare la configurazione di questo file.

19) GNU core utilities   GNU GPL

20) di   software libero con licenza speciale

21) GNU core utilities   GNU GPL

22) Update daemon for Linux   GNU GPL

23) GNU core utilities   GNU GPL

24) NTFStools   GNU GPL

25) Doschk   GNU GPL

26) nparted   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome gestione_di_dischi_e_file_nbsp_system.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com