[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 165.   Memoria di massa: preparazione e controllo

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.

Tabella 165.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.
dumpe2fs Fornisce informazioni sulla struttura di un file system Second-extended Ext2 o Ext3.
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.
mkntfs,
mkfs.ntfs
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.

165.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.

165.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.

165.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]

165.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 165.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]

165.1.4   Utilizzo di «fdisk»

Il programma fdisk (4) (5) 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]

Il funzionamento di fdisk è già descritto nel capitolo 45.

Tabella 165.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.

165.1.5   Utilizzo di «cfdisk»

Il programma cfdisk (6) 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.

Il funzionamento di fdisk è già descritto nel capitolo 45.

165.1.6   Utilizzo di «sfdisk»

Il programma sfdisk(7) 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.

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 165.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.

165.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.

165.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 irreversibile.

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

Il programma mke2fs(8) 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 ci sono situazioni in cui ciò non avviene in modo corretto, quindi può essere conveniente il fornire tale indicazione in modo esplicito.

Tabella 165.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, sia 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 (165.2.3), ma non c'è alcuna garanzia che il recupero funzioni.
La lettera «S» sta per superblock.

Segue la descrizione di alcuni esempi.

Si veda la pagina di manuale mke2fs(8) per avere maggiori dettagli sull'uso di questo programma.

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

Il programma mkdosfs(9) 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]

Tabella 165.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]

Si veda anche la pagina di manuale mkdosfs(8) per avere maggiori dettagli.

165.1.11   Utilizzo di «mkfs»

Il programma mkfs (10) 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.

165.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 per il tipo di operazione da compiere.

165.2.1   Utilizzo di «disktype»

Il programma disktype (11) 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

165.2.2   Utilizzo di «dumpe2fs»

Il programma dumpe2fs(12) consente di avere un buon numero di informazioni relative al file system Second-extended (Ext2 o Ext3) contenuto in un certo file di dispositivo.

dumpe2fs [opzioni] file_di_dispositivo

Tra le altre cose, il programma dumpe2fs può essere utile per localizzare le copie di sicurezza del superblocco:

dumpfs /dev/md1[Invio]

...
First block:              0
Block size:               4096
Fragment size:            4096
...
Group 0: (Blocks 0-32767)
  Primary superblock at 0, Group descriptors at 1-1
  Reserved GDT blocks at 2-370
  Block bitmap at 371 (+371), Inode bitmap at 372 (+372)
  Inode table at 373-875 (+373)
  0 free blocks, 16085 free inodes, 2 directories
  Free blocks: 
  Free inodes: 12-16096
Group 1: (Blocks 32768-65535)
  Backup superblock at 32768, Group descriptors at 32769-32769
  Reserved GDT blocks at 32770-33138
  Block bitmap at 33139 (+371), Inode bitmap at 33140 (+372)
  Inode table at 33141-33643 (+373)
  30976 free blocks, 16096 free inodes, 0 directories
  Free blocks: 34560-65535
  Free inodes: 16097-32192
...
Group 3: (Blocks 98304-131071)
  Backup superblock at 98304, Group descriptors at 98305-98305
  Reserved GDT blocks at 98306-98674
  Block bitmap at 98675 (+371), Inode bitmap at 98676 (+372)
  Inode table at 98677-99179 (+373)
  31892 free blocks, 16096 free inodes, 0 directories
  Free blocks: 99180-131071
  Free inodes: 48289-64384
...

Si veda anche la pagina di manuale dumpe2fs(8) per avere maggiori indicazioni sull'uso del programma.

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

Il programma e2fsck(13) 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.(14)

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

Tabella 165.13. Alcune opzioni.

Opzione Descrizione
-b superblocco
Indica un superblocco alternativo al primo. Questa opzione si utilizza quanto il superblocco principale è danneggiato e si vuole tentare l'accesso al file system attraverso le informazioni contenute in una delle copie del superblocco. L'indirizzo dei superblocchi di scorta può essere determinato con l'ausilio del programma dumpe2fs, ma generalmente, ammesso che il file system sia organizzato in blocchi da 4 Kibyte (4 096 byte), l'indirizzo della prima copia di sicurezza del superblocco è 32 768.
La lettera «b» sta per backup.
-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.

Segue la descrizione di alcuni esempi.

Si veda la pagina di manuale e2fsck(8) per conoscere meglio l'uso di questo programma.

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

Il programma dosfsck (15) 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.(16)

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

Tabella 165.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.

Per conoscere maggiori dettagli conviene consultare la pagina di manuale dosfsck(8).

165.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.

Si veda anche la pagina di manuale fsck(8).

165.2.6   La directory «lost+found»

Nei file system Second-extended (Ext2 o Ext3) si incontra normalmente la directory vuota /lost+found/, creata automaticamente nel momento della creazione del file system stesso. Questa directory non deve essere usata dagli utenti e deve rimanere a disposizione per i programmi che eseguono il controllo del file system, perché al suo interno vengono collocati i file che emergono in fase di correzione di un file system danneggiato, quando questi non possono essere attribuiti alla loro posizione originale. Naturalmente, l'utente che esegue questi controlli e trova file all'interno della directory /lost+found/, dovrebbe cercare di capire di cosa si tratta ed eventualmente di ricollocarli nelle loro posizioni appropriate nella gerarchia del file system.

165.3   Gestione di file system NTFS

Allo stato attuale, 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 NTFSprogs,(17) 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 165.15.

Tabella 165.15. Strumenti di NTFSprogs.

Modello sintattico Descrizione
mkntfs [opzioni] dispositivo [n_settori]
mkfs.ntfs [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.

165.4   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 (18) è 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

1) util-linux: fdformat   GNU GPL

2) Linux floppy utilities   GNU GPL

3) E2fsprogs   GNU GPL

4) util-linux: fdisk   GNU GPL

5) GNU fdisk   GNU GPL

6) util-linux: cfdisk   GNU GPL

7) util-linux: sfdisk   GNU GPL

8) E2fsprogs   GNU GPL

9) Mkdosfs   GNU GPL

10) util-linux: mkfs   GNU GPL

11) Disktype   software libero con licenza speciale

12) E2fsprogs   GNU GPL

13) E2fsprogs   GNU GPL

14) Quando ci si trova a dover controllare il file system principale del sistema in funzione, in mancanza di altro, si fanno terminare tutti i processi che non sono indispensabili, quindi si reinnesta il file system principale in sola lettura (mount -o remount,ro /). Tuttavia, dopo il controllo, dal momento che questo modifica il file system, non conviene ripetere il reinnesto in lettura e scrittura, dato che il sistema potrebbe continuare a ignorare tali modifiche; pertanto, piuttosto è bene riavviare il sistema.

15) Dosfsck   GNU GPL

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

17) NTFSprogs   GNU GPL

18) Doschk   GNU GPL


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


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

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory