File systems (Italiano)
Articoli correlati
- Partizionamento
- Device file#lsblk
- File permissions and attributes
- fsck
- fstab (Italiano)
- List of applications#Mount tools
- QEMU#Mounting a partition from a raw image
- udev (Italiano)
- udisks Da Wikipedia:
- Un file system (in acronimo FS), in informatica, indica informalmente un meccanismo con il quale i file sono posizionati e organizzati su dispositivi informatici utilizzati per l'archiviazione dei dati ad esempio unità di memoria di massa (come unità a nastro magnetico, dischi rigidi, dischi ottici, unità di memoria a stato solido - o in casi particolari anche nella RAM) o su dispositivi remoti tramite protocolli di rete.
- overlayfs — OverlayFS è uin servizio filesystem per Linux che implementa un mount union per altri filesystem.
- Ceph — Systema di archiviazion unificato e distribuito progettato per avere prestazioni eccellenti, affidabilità e scalabilità.
- https://ceph.com/ || cephAUR
- IPFS — Un protocollo hypermedia peer-to-peer per rendere il web più veloce, più sicuro, e più aperto. IPFS ha lo scopo di rimpiazzare HTTP e costruire un web migliore per tutti nois. Usea blocchi per archiviare parti di un file, ogni nodo di rete archivia solo il contenuto di interesse, esegue deduplica e distribuzione. (attualmente è in fase alpha)
- usando i flag dalla linea di comando con mount
- editando Fstab (Italiano)
- creando delle regole Udev (Italiano)
- compilando il kernel personalmente
- o usando script specifici per il mount dei filesystem (si trovano in ).
Ogni singola partizione del disco può essere configurata utilizzando uno dei tanti file system disponibili. Ognuno ha i propri vantaggi, svantaggi, e idiosincrasie uniche. Segue una breve panoramica dei filesystem supportati, i link puntano alle pagine di wikipedia che forniscono molte più informazioni:
Prima di essere formattato, un disco deve essere partizionato.
Tipi di filesystem
Vedere per una carrellata generale e l'articolo Comparazione tra file system per una comparativa dettagliata.
File system | Comando per creazione | Utility userspace | Archiso | Documentazione kernel | Note |
---|---|---|---|---|---|
Btrfs | mkfs.btrfs(8) | btrfs-progs | btrfs.html | Stato stabilità | |
VFAT | vfat.html | File system Windows 9x | |||
exFAT | File system nativi in Linux 5.4. | ||||
N/A (FUSE-based) | |||||
F2FS | f2fs-tools | f2fs.html | Device basati su flash | ||
ext3 | ext3.html | ||||
ext4 | ext4.html | ||||
HFS (File system gerarchici) | hfs.html | File system Classic Mac OS | |||
HFS+ | hfsplus.html | File system macOS (8–10.12) | |||
JFS | jfs.html | ||||
NILFS2 | nilfs-utils | nilfs2.html | |||
NTFS | ntfs-3g | N/A (FUSE-based) | File system Windows NT | ||
ReiserFS | |||||
UDF | udf.html | ||||
XFS |
xfs.html |
File system | Comando di creazione | Patchset del kernel | Utility userspace | Note |
---|---|---|---|---|
APFS | mkapfs(8) | apfsprogs-gitAUR | macOS (10.13 and newer) file system. Read only, experimental. | |
Bcachefs | ||||
Reiser4 | ||||
ZFS | , | zfs-utilsAUR | Esiste un suo porting: OpenZFS |
Journaling
Tutti i filesytem citati sopra, con le eccezioni di exFAT, FAT16/32, Reiser4 (opzionale), Btrfs e ZFS, usano il journaling. Questo, loggando i cambiamenti prima che siano scritti effettivamente su filesystem, garantisce la fault-resilience. In caso di un crash di sistema o della mancanza improvvisa di corrente elettrice, questo tipo di filesystem sono più veloci a tornare online e si corrompono con meno facilità. Il logging viene salvato in un'area dedicata del filesystem.
Non tutte le tecniche di journaling sono uguali: ext3 e ext4 usano il journaling data-mode, il quale logga sia i dati che i metadati, ma può eventualmente loggare solo i metadati. Il journaling data-mode comporta una perdita di velocità e non è attivo di default. Allo stesso modo Reiser4 offre i cosiddetti "transaction models" che modificano sis le features che fornisce e pure il journaling. Usa una diversa tecnica di journaling, un modello speciale chiamato wandering logs che elimina la necessità di scrivere su disco due volte, write-anywhere un puro approccio copy-on-write (pressoché equivalente a quello di default di btrfs, ma con una differenza sostanziale nel design dell'"albero") e un approccio combinato chiamato ibrido, che si alterna euristicamente con i due precedenti.
Gli altri filesystem utilizzano un journaling ordered-mode, il quale logga solo i metadati: tutti i filesystem sono in grado di tornare online in uno stato consistente dopo un crash, ma il journaling data-mode fornisce una migliore protezione contro la corruzione e la perdita dei dati. Tuttavia con il journaling data-mode si ha una perdita di prestazioni perché vendono eseguite due operazioni di scrittura, una sul journal e una sul disco (cosa che viene evitata da Reiser4 con il "wandering logs"). Quando si sceglie un filesystem bisogna tener conto del compromesso tra prestazioni e integrità dei dati. Reiser4 è l'unico filesystem opera con piena atomicità e fornisce i checksum sia per i metadati che per i dati (un'operazione può verificarsi o non verificarsi e avvengono corruzioni di dati a causa di operazioni che si verificano a metà), per cui è molto meno incline alla perdita di dati rispetto ad altri file system come Btrfs.
I filesystem basati sul copy-on-write (conosciuto anche come write-anywhere), come as Reiser4, Btrfs and ZFS, non hanno bisogno di utilizzare il classico journal per proteggere i metadati, perché non vengono mai fatti update. Sebbenbe Btrfs un albero di log simile a un journal, viene utilizzato solo per velocizzare le operazioni di fdatasync e fsync.
Filesystem basati su FUSE
Vedere FUSE.
Filesystem stackable
File systems sola lettura
Filesystem clustered
Identificare i filesystem esistenti
Per identificare i filesystem esistenti si può usare lsblk:
Se è predente un filestyem sarà mostrato nella colonna . Se è già montato, apparirà nella colonna MOUNTPOINT
.
Creare un filesystem
I filesystem generalmente vengono creati su una Partizione, all'interno di un container logico come LVM, RAID e dm-crypt, o su un file (vedere Wikipedia:it:Loop device). Questa sezione descrive come creare un filestyem su una partizione.
Prima di continuare, bisogna identificare il dispositivo dove verrà creato il filesystem and vedere se è montato o meno. Per esempio:
I filesystem montati devono essere smontati prima di procedere. Nell'esempio sopra un filestyem ext4 è presente sulla partizion ed è mountato su . Si dovrebbe smontarlo con:
# umount /dev/sda2Per trovare solo i filestyem montati, vedere #Lista dei filesystem montati.
Pre creare un nuovo filestyem, usare mkfs(8). Vedere #Tipi di filesystem per travare quello giusto, così come le utility userspace da installare per un particolare filesystem.
Per esempio, per creare un nuovo filesystem di tipo ext4 (abituale per le partizioni dati Linux) su , eseguire:
# mkfs.ext4 /dev/sda1Il nuovo filestyem ora può essere montato in nella cartella che si preferisce.
Montare un filesystem
Per montare manualmente un filesystem collocato su un dispositivi (es., una partizione) su una cartella, usare . Questo esempio mounta su .
# mount /dev/sda1 /mntQuesto comando collega il filesystem su alla cartella , rendendone visibile il contenuto. Tutti i dati precedentemente esistenti sulla cartella prima del comando saranno invisibili fino a quando il filesystem sarà montato.
fstab contiene le informazioni su come i dispositivi dovrebbero essere montati automaticamente se presenti. Vedere l'articolo fstab per maggiori informazioni su come modificare questo comportamento.
Se un dispositivo è specificato all'interno di /etc/fstab
e si passa al comnado mount solo il dispositivo o il punto di mount, questa informazione verrà utilizzata per il mount. Per esempio, se /etc/fstab
contenesse una linea che indica che deve essere montato su , il comando seguente monterà automaticamente il dispositivo su quella cartella:
o
# mount /mntmount contiene diverse opzioni, che dipendono dallo specifico filestyem. Le opzioni posso essere cambiate nei seguenti modi:
Consultare questi articoli e l'articolo inerente al filestyem di interesse per maggiori informazioni.
Lista dei filesystem montati
Per visualizzare la lista di tutti i filesystems montati, usare :
$ findmntfindmnt prende in ingresso tutta una serie di argomenti per filtrare l'output o per mostrare informazioni aggiuntive. Per esempio, si può passare come argomento un dispositivo o un punto di mount per visualizzare solo l'informazione che è specificata:
$ findmnt /dev/sda1findmnt raccoglie le informazioni da /etc/fstab
, , e .
Smontare un filesystem
Per smontare un filesyste usare umount(8). Si può specificare sia il dispositivo che lo contiene (es., ) o il punto di mount (es., ):
# umount /dev/sda1o
# umount /mnt