File System: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 2: Riga 2:
|successivo=Udev e Debian
|successivo=Udev e Debian
}}{{Versioni_compatibili}}{{File_System1}}
}}{{Versioni_compatibili}}{{File_System1}}
= Definizione =
== Definizione ==
Da Wikipedia:<br/><br/>
Da Wikipedia:<br/><br/>
''In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un disco rigido o un CD-ROM. Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. Di fatto, alcuni file system (come NFS) non interagiscono direttamente con i dispositivi di archiviazione.''<br /><br/>
''In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un disco rigido o un CD-ROM. Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. Di fatto, alcuni file system (come NFS) non interagiscono direttamente con i dispositivi di archiviazione.''<br /><br/>
Si '''sottolinea''' in particolare l'ultima frase, ovvero che sono definiti come file system anche quei "meccanismi" che invece di agire direttamente su un certo dispositivo fisico permettono "semplicemente" di accedere a dei file system remoti.
Si '''sottolinea''' in particolare l'ultima frase, ovvero che sono definiti come file system anche quei "meccanismi" che invece di agire direttamente su un certo dispositivo fisico permettono "semplicemente" di accedere a dei file system remoti.


= Denominazione dei dischi fissi =
== Denominazione dei dischi fissi ==
Linux indica i dischi fissi collegati nel sistema in questo modo:
Linux indica i dischi fissi collegati nel sistema in questo modo:
* <code>'''hdX'''</code> se si tratta di un disco IDE (usando versioni meno recenti del kernel)
* <code>'''hdX'''</code> se si tratta di un disco IDE (usando versioni meno recenti del kernel)
* <code>'''sdX'''</code> se si tratta di un disco SATA (oppure, con le ultime versioni di Linux, anche i dischi IDE)
* <code>'''sdX'''</code> se si tratta di un disco SATA (oppure, con le ultime versioni di Linux, anche i dischi IDE)
dove  <code>X</code> è una lettera dell'alfabeto. Al primo disco  del sistema sarà assegnata la lettera <code>a</code> (<code>hda</code> oppure <code>sda</code>) e via via saranno assegnate tutte le lettere che servono.<br>
dove  <code>X</code> è una lettera dell'alfabeto. Al primo disco  del sistema sarà assegnata la lettera <code>a</code> (<code>hda</code> oppure <code>sda</code>) e via via saranno assegnate tutte le lettere che servono.<br>
Le partizioni di ogni disco vengono indicate con dei numeri progressivi:
Le partizioni di ogni disco vengono indicate con dei numeri progressivi:
* <code>1-4</code> indicano le partizioni primarie
* <code>1-4</code> indicano le partizioni primarie
Riga 24: Riga 24:
Si noti quindi come i supporti di memorizzazione vengono identificati tramite file.
Si noti quindi come i supporti di memorizzazione vengono identificati tramite file.


= Struttura =
== Struttura ==
Il  filesystem linux è strutturato a partire dalla sua '''radice'''  (indicata con <code>'''/'''</code> e chiamata '''root''') e  tutti i dischi e i dispositivi removibili vengono "agganciati"   (l'operazione si chiama '''montaggio''', in inglese '''mount''') in una  directory sotto <code>/</code>.<br>
Il  filesystem Linux è strutturato a partire dalla sua '''radice'''  (indicata con <code>'''/'''</code> e chiamata '''root''') e  tutti i dischi e i dispositivi removibili vengono "agganciati" (l'operazione si chiama '''montaggio''', in inglese '''mount''') in una  directory sotto <code>/</code>.<br>
Una comune struttura di filesystem Linux è la seguente (si digiti ad esempio <code>ls -hl /</code>):
Una comune struttura di filesystem Linux è la seguente (si digiti ad esempio <code>ls -hl /</code>):
<pre>
<pre>
Riga 63: Riga 63:
È importante sottolineare che ciascun elemento del filesystem può fisicamente risiedere su un differente disco rigido, o perfino risorsa remota, in altre parole un utente ha la possibilità di distribuire qualsiasi directory (di sistema comprese) tra i vari supporti fisici come meglio crede.
È importante sottolineare che ciascun elemento del filesystem può fisicamente risiedere su un differente disco rigido, o perfino risorsa remota, in altre parole un utente ha la possibilità di distribuire qualsiasi directory (di sistema comprese) tra i vari supporti fisici come meglio crede.


= Preparazione dei supporti fisici =
== Preparazione dei supporti fisici ==


Ogni supporto fisico prima di poter essere utilizzato deve essere partizionato e formattato; applicativi come [[Guida alla formattazione dei dischi con fdisk | fdisk]] e ''parted'' permettono sia di partizionare che formattare, anche se solo in un numero limitato di file system.<br />
Ogni supporto fisico prima di poter essere utilizzato deve essere partizionato e formattato; applicativi come [[Guida alla formattazione dei dischi con fdisk | fdisk]] e ''parted'' permettono sia di partizionare che formattare, anche se solo in un numero limitato di file system.<br />
''mkswap'' è un comando che permette di formattare un area di swap, mentre ''mkfs'' permette di formattare secondo un elevato numero di file system.
''mkswap'' è un comando che permette di formattare un area di swap, mentre ''mkfs'' permette di formattare secondo un elevato numero di file system.


= Rendere accessibili i dispositivi =
== Rendere accessibili i dispositivi ==


Una volta creato le partizioni e formattatele non rimane che agganciarle al file system della macchina in uso.
Una volta creato e formattato le partizioni, non rimane che agganciarle al file system della macchina in uso.
{{Box|Nota|Quanto qui scritto vale pedissequamente per tutti i file system, quindi anche per quelli remoti.}}
{{Box|Nota|Quanto qui scritto vale pedissequamente per tutti i file system, quindi anche per quelli remoti.}}
Il primo passo consiste nel creare un punto di mount, banalmente una directory, secondariamente di agganciare il file system a tale directory attraverso l'applicativo [[Guida_ai_comandi_da_terminale#Gestione_del_File_System|mount]] (che richiede privilegi di root). Se per esempio si è creato come punto di mount <code>/mnt/pippo</code> il contenuto della partizione montata sarà accessibile esplorando appunto <code>/mnt/pippo</code>. Si noti che è possibile utilizzare lo stesso punto di mount per montare più partizioni, ma chiaramente non in simultanea.<br />
Il primo passo consiste nel creare un punto di mount, banalmente una directory, secondariamente di agganciare il file system a tale directory attraverso l'applicativo [[Guida_ai_comandi_da_terminale#Gestione_del_File_System|mount]] (che richiede privilegi di [[root]]). Se per esempio si è creato come punto di mount <code>/mnt/pippo</code> il contenuto della partizione montata sarà accessibile esplorando appunto <code>/mnt/pippo</code>. Si noti che è possibile utilizzare lo stesso punto di mount per montare più partizioni, ma chiaramente non in simultanea.<br />
Una volta terminato l'utilizzo di una certa partizione questa può essere sganciata attraverso il comando ''umount''.
Una volta terminato l'utilizzo di una certa partizione questa può essere sganciata attraverso il comando ''umount''.
{{Warningbox| Mai disconnetere un dispositivo fisico fintanto che una delle sue partizioni risulta montata.}}
{{Warningbox| Mai disconnettere un dispositivo fisico fintanto che una delle sue partizioni risulta montata.}}


== Il file /etc/fstab ==
=== Il file /etc/fstab ===
Questo utilissimo  file di configurazione permette di definire quali risorse, locali o remote non fa differenza, montare automaticamente all'avvio del computer.
Questo utilissimo  file di configurazione permette di definire quali risorse, locali o remote non fa differenza, montare automaticamente all'avvio del computer.
Si tratta di un file testuale organizzato su sei colonne:
Si tratta di un file testuale organizzato su sei colonne:
# Per prima cosa si indica il dispositivo da montare, o attraverso il suo percorso (es.: <code>/dev/sdc</code>) oppure attraverso il suo UUID, un codice alfanumerico che lo identifica univocamente. Tale codice può essere determinato attraverso '''blkid''', la cui sintassi è <pre>blkid /dev/miodevice</pre>
# Per prima cosa si indica il dispositivo da montare, o attraverso il suo percorso (es.: <code>/dev/sdc</code>) oppure attraverso il suo [[UUID]], un codice alfanumerico che lo identifica univocamente. Tale codice può essere determinato attraverso '''blkid''', la cui sintassi è <pre>blkid /dev/miodevice</pre>
L'utilizzo dello UUID è limitato ai soli dispositivi presenti in <code>/dev/</code>, quindi le risorse di rete possono essere identificate solo attraverso il loro percorso di rete.
L'utilizzo dello UUID è limitato ai soli dispositivi presenti in <code>/dev/</code>, quindi le risorse di rete possono essere identificate solo attraverso il loro percorso di rete.
# La seconda colonna definisce  il punto di montaggio della risorsa precedentemente specificata, come sempre deve trattarsi di una directory già esistente e VUOTA.
# La seconda colonna definisce  il punto di montaggio della risorsa precedentemente specificata, come sempre deve trattarsi di una directory già esistente e VUOTA.
# In terza posizione si specificano i filesystem (in genere uno solo).
# In terza posizione si specificano i filesystem (in genere uno solo).
# Quarto si indicano tutte le opzioni relative al filesystem, avendo cura di separare ognuna con una virgola. L'elenco di tale opzioni è lungo, pertanto non si può evitare di fare riferimento al manuale di ''mount''.
# Quarto si indicano tutte le opzioni relative al filesystem, avendo cura di separare ognuna con una virgola. L'elenco di tale opzioni è lungo, pertanto non si può evitare di fare riferimento al manuale di ''mount''.
Riga 92: Riga 92:
mioserver:/                                  /mnt/nfs        nfs          _netdev,auto,hard,intr    0    0
mioserver:/                                  /mnt/nfs        nfs          _netdev,auto,hard,intr    0    0
</pre>
</pre>
{{  Warningbox | '''/etc/fstab''' mal tollera i nomi e i percorsi non   standard, pertanto ove possibile evitare di scegliere nomi dei percorsi delle risorse contenenti spazi o altri caratteri speciali (tipicamente  per le risorse remote). }}
{{  Warningbox | '''/etc/fstab''' mal tollera i nomi e i percorsi non standard, pertanto ove possibile evitare di scegliere nomi dei percorsi delle risorse contenenti spazi o altri caratteri speciali (tipicamente  per le risorse remote). }}
Qualora  proprio non se ne  potesse fare a meno è possibile indicare i caratteri  speciali in forma  ottale (se tutti o solo alcuni non è dato saperlo); ad  esempio una  cartella di nome '''<code>prova &del  %</code>'''  dovrebbe essere indicata come   '''<code>prova\040\046del\040%</code>'''; si noti che mentre   la "e commerciale" e lo spazio devono essere indicati in forma ottale,   il simbolo "percento" può essere indicato normalmente.<br>
Qualora  proprio non se ne  potesse fare a meno è possibile indicare i caratteri  speciali in forma  ottale (se tutti o solo alcuni non è dato saperlo); ad  esempio una  cartella di nome '''<code>prova &del  %</code>'''  dovrebbe essere indicata come '''<code>prova\040\046del\040%</code>'''; si noti che mentre la "e commerciale" e lo spazio devono essere indicati in forma ottale, il simbolo "percento" può essere indicato normalmente.<br>
'''NB''': NON è detto che fstab accetti qualsiasi carattere speciale.<br>
'''NB''': NON è detto che fstab accetti qualsiasi carattere speciale.<br>
A  [http://www.asciitable.com/ quest'indirizzo] è disponibile una tabella di conversione per i primi 256 caratteri ASCII.
A  [http://www.asciitable.com/ quest'indirizzo] è disponibile una tabella di conversione per i primi 256 caratteri ASCII.


= Linux VS Windows =
== Linux VS Windows ==
In  ambiente Windows ogni nuovo disco e ogni nuova partizione installati nel sistema si vedono attribuiti la lettera dell'alfabeto successiva all'ultima utilizzata. Ad esempio, se installassimo un nuovo disco fisso in un sistema Windows che utilizza:
In  ambiente Windows ogni nuovo disco e ogni nuova partizione installati nel sistema si vedono attribuiti la lettera dell'alfabeto successiva all'ultima utilizzata. Ad esempio, se installassimo un nuovo disco fisso in un sistema Windows che utilizza:
* <code>A:</code> per il floppy
* <code>A:</code> per il floppy
* <code>C:</code> per il disco di sistema
* <code>C:</code> per il disco di sistema
* <code>D:</code> per un secondo disco di dati
* <code>D:</code> per un secondo disco di dati
* <code>E:</code> per il masterizzatore
* <code>E:</code> per il masterizzatore
al nuovo disco verrebbe automaticamente assegnata la lettera  <code>F:</code>. Un utente che in windows aprisse esplora  risorse vedrebbe quindi subito tutti i dispositivi fisici installati con le relative cartelle e poco più sotto l'icona delle risorse di rete.<br>
al nuovo disco verrebbe automaticamente assegnata la lettera  <code>F:</code>. Un utente che in Windows aprisse "Esplora risorse" vedrebbe quindi subito tutti i dispositivi fisici installati con le relative cartelle e poco più sotto l'icona delle risorse di rete.<br>
In ambiente Linux le cose funzionano diversamente, infatti si vedono solo file e directory essedo i dispositivi fisici non immediatamente visibili; in genere questo è l'aspetto più traumatico per un utente abituato con windows, tuttavia come già scritto un tale approccio permette di distribuire le directory, di sistema comprese, come meglio si crede, mentre in windows le cartelle <code>\Programmi</code> e <code>\Windows</code> devono obbligatoriamente risiedere sul disco fisico identificato con la lettera ''<code>C:</code>''.<br />
In ambiente Linux le cose funzionano diversamente, infatti si vedono solo file e directory essendo i dispositivi fisici non immediatamente visibili; in genere questo è l'aspetto più traumatico per un utente abituato con Windows, tuttavia come già scritto un tale approccio permette di distribuire le directory, di sistema comprese, come meglio si crede, mentre in Windows le cartelle <code>\Programmi</code> e <code>\Windows</code> devono obbligatoriamente risiedere sul disco fisico identificato con la lettera ''<code>C:</code>''.<br />
In sintesi la '''rappresentazione''' linux della struttura di file e cartelle in linux esclude a priori i dispositivi fisici; è come se in windows da esplora risorse si vedesse semplicemente un albero di questo tipo (le lettere  tra parentesi indicano in modo del tutto arbitrario il dispositivo fisico dove ciascuna cartella risiede effettivamente):
In sintesi la '''rappresentazione''' Linux della struttura di file e cartelle in Linux esclude a priori i dispositivi fisici; è come se in Windows da "Esplora risorse" si vedesse semplicemente un albero di questo tipo (le lettere  tra parentesi indicano in modo del tutto arbitrario il dispositivo fisico dove ciascuna cartella risiede effettivamente):
<pre>
<pre>
Desktop (C:)
Desktop (C:)
Riga 125: Riga 125:
</pre>
</pre>


= Approfondimenti =
== Approfondimenti ==


=== Manpages ===
=== Manpages ===
6 999

contributi