Tipi di file system
La creazione di un file system scrive le informazioni sul dispositivo e crea l'ordine dello spazio vuoto. Questi dati relativi al file system consumano una piccola percentuale dello spazio. Lo spazio rimanente sull'unità disco è suddiviso in segmenti piccoli e di dimensioni costanti, chiamati blocchi. Linux supporta diversi tipi di file system, alcuni dei quali sono descritti di seguito.
Filesystem | Descrizione |
---|---|
ext2 | Alte prestazioni per dischi fissi e supporti rimovibili |
ext3 | Versione journal di ext2 |
ext4 | Supporta file più grandi e dimensioni del file system |
vfat | File system MS-DOS utile durante la condivisione di file tra Windows e Linux |
XFS | File system di journaling ad alte prestazioni |
Btrfs | Risponde ai requisiti di scalabilità dei sistemi di storage di grandi dimensioni |
Creazione di filesystem
Il comando per creare un file system Linux su un dispositivo o una partizione del disco rigido è mkfs. La sintassi del comando è:
# mkfs [options] device
Il comando mkfs è in realtà un front-end per le diverse utilità per la creazione di file system come mkfs.ext2 e mkfs.ext4. Queste utilità sono eseguibili direttamente dalla riga di comando. Quando si utilizza il wrapper mkfs, includere l'opzione -t fstype per specificare il tipo di file system da compilare. Se non specificato, viene creato il tipo di file system predefinito, ext2.
Per vedere quali tipi di file system supportati sono installati, usa il comando ls /sbin/mkfs*:
# ls -lrt /sbin/mkfs* -rwxr-xr-x. 1 root root 28624 Jun 10 2014 /sbin/mkfs.fat lrwxrwxrwx. 1 root root 8 Jan 7 2015 /sbin/mkfs.msdos -> mkfs.fat lrwxrwxrwx. 1 root root 8 Jan 7 2015 /sbin/mkfs.vfat -> mkfs.fat -rwxr-xr-x. 4 root root 96296 Aug 3 2017 /sbin/mkfs.ext4 -rwxr-xr-x. 4 root root 96296 Aug 3 2017 /sbin/mkfs.ext3 -rwxr-xr-x. 4 root root 96296 Aug 3 2017 /sbin/mkfs.ext2 -rwxr-xr-x. 1 root root 368464 Aug 4 2017 /sbin/mkfs.xfs -rwxr-xr-x. 1 root root 375240 Aug 6 2017 /sbin/mkfs.btrfs -rwxr-xr-x. 1 root root 37104 Dec 1 23:28 /sbin/mkfs.minix -rwxr-xr-x. 1 root root 36984 Dec 1 23:28 /sbin/mkfs.cramfs -rwxr-xr-x. 1 root root 11520 Dec 1 23:28 /sbin/mkfs
I file mkdosfs, mkfs.msdos e mkfs.vfat sono collegamenti simbolici a mkfs.fat.
Utilizzo di mkfs
Il tipo di file system predefinito creato quando si utilizza il comando mkfs è ext2. Come accennato in precedenza, mkfs è un wrapper che chiama altre utilità di compilazione del file system. Pertanto, uno qualsiasi dei seguenti comandi crea un file system ext2 sul dispositivo specificato:
# mkfs /dev/xvdd1 # mke2fs /dev/xvdd1 # mkfs.ext2 /dev/xvdd1
Per creare un file system ext3, utilizzare uno dei seguenti comandi:
# mkfs –t ext3 /dev/xvdd1 # mke2fs –t ext3 /dev/xvdd1 # mkfs.ext3 /dev/xvdd1
Per creare un file system ext4, utilizzare uno dei seguenti comandi:
# mkfs –t ext4 /dev/xvdd1 # mke2fs –t ext4 /dev/xvdd1 # mkfs.ext4 /dev/xvdd1
File di configurazione
Sono disponibili numerose opzioni per personalizzare la dimensione del blocco, la dimensione del frammento, i blocchi per gruppo, le opzioni del journal, il numero di inode e altri parametri. Senza includere alcuna opzione, le impostazioni predefinite specificate in /etc/mke2fs.conf vengono utilizzati i file di configurazione.
Esempio di file /etc/mke2fs.confEtichette del file system
Un'utile opzione per le utilità di compilazione del file system è -L opzione nome. Questo assegna un'etichetta alla partizione; questa etichetta può essere utilizzata al posto del nome del dispositivo durante il montaggio del file system. Le etichette sono limitate a una dimensione massima di 16 caratteri . Per i file system esistenti, e2label comando viene utilizzato per visualizzare o impostare un'etichetta.
Ai file system viene assegnato automaticamente un identificatore univoco universale (UUID) . Gli UUID possono essere utilizzati durante il montaggio del file system. Per visualizzare l'UUID, l'etichetta e il tipo di file system, utilizza il blkid comando. Gli esempi seguenti illustrano la creazione di diversi file system, con e senza etichetta, e la visualizzazione delle informazioni con il comando blkid. Per creare un file system ext2 e visualizzare le informazioni, immettere:
# mkfs /dev/xvdf1 # blkid /dev/xvdf1 /dev/xvdf1: UUID="41bae7c3-396a-436d-9764-d27d4ca3f17b" TYPE="ext2"
Per creare un file system ext3 e visualizzare le informazioni, inserisci:
# mkfs -t ext3 /dev/xvdf1 # blkid /dev/xvdf1 /dev/xvdf1: UUID="c8e958f4-e5d0-4404-8a9a-2cea24675fcd" SEC_TYPE="ext2" TYPE="ext3"
Per creare un file system ext4, assegnare un nome di etichetta e visualizzare le informazioni, immettere:
# mkfs -t ext4 -L "Test Label" /dev/xvdf1 # blkid /dev/xvdf1 /dev/xvdf1: LABEL="Test Label" UUID="687eb83f-c16f-4fa9-bb49-1621eed3a35d" TYPE="ext4"
Montaggio dei file system
I file system su diverse partizioni e dispositivi rimovibili, come CD, DVD o unità flash USB, devono essere collegati alla gerarchia di directory per potervi accedere. Per collegare una partizione o un dispositivo, è necessario creare un punto di montaggio. Un punto di montaggio è semplicemente una directory creata con il comando mkdir. Dopo aver creato una directory o un punto di montaggio, collegare la partizione utilizzando il comando mount. La sintassi per il comando mount è:
# mount [options] device_file mount_point
L'esempio seguente crea un punto di montaggio (/test) e collega la partizione:
# mkdir /test # mount /dev/xvdf1 /test
In alternativa, montare la partizione o il dispositivo facendo riferimento all'UUID o all'etichetta. L'esempio seguente mostra l'UUID e l'etichetta, usando il comando blkid, e monta la partizione facendo riferimento a ciascuno:
# blkid /dev/xvdf1 /dev/xvdf1: LABEL="Test Label" UUID="687eb83f-c16f-4fa9-bb49-1621eed3a35d" TYPE="ext4"
# mount LABEL="Test Label" /test # mount UUID="687eb83f-c16f-4fa9-bb49-1621eed3a35d" /test
Il comando mount senza alcuna opzione mostra tutti i file system attualmente collegati:
# mount | grep test /dev/xvdf1 on /test type ext4 (rw,relatime,seclabel,data=ordered)
In questo esempio, la partizione /dev/xvdf1 è montata su /test. Il tipo di file system è ext4 ed è montato sia in lettura che in scrittura. Il comando df visualizza anche i file system montati. Esempio:
# df -hP /test Filesystem Size Used Avail Use% Mounted on /dev/xvdf1 923M 2.4M 857M 1% /test
Le informazioni nel file system proc visualizzano i file system montati. Esempio:
# cat /proc/mounts | grep test /dev/xvdf1 /test ext4 rw,seclabel,relatime,data=ordered 0 0
Opzioni di montaggio
Per specificare le opzioni di montaggio, usa –o flag seguito da una stringa di opzioni separate da virgole. Di seguito sono elencate alcune delle opzioni disponibili per il comando mount:
- auto :consente di montare automaticamente il file system utilizzando il comando mount –a
- ciclo :monta l'immagine come dispositivo loop
- noauto :Disabilita il montaggio automatico del file system utilizzando il comando mount –a
- noexec :Disabilita l'esecuzione di file binari sul file system
- nouser :Non consente a un utente normale (diverso da root) di montare e smontare il file system
- rimonta :Rimonta il file system nel caso sia già montato
- ro :Monta il file system in sola lettura
- rw :Monta il file system sia in lettura che in scrittura
- utente :consente a un utente normale (diverso dal root) di montare e smontare il file system
Ad esempio, per montare la partizione /dev/xvdf1 sul punto di montaggio /test come di sola lettura con solo l'utente root in grado di montare e smontare il file system, immettere:
# mount –o nouser,ro /dev/xvdf1 /test
Per montare un'immagine ISO utilizzando il dispositivo loop (supponendo che l'immagine ISO sia presente nella directory corrente e che il punto di montaggio esista), inserisci:
# mount -o ro,loop rhel7-x86_64-dvd.iso /media/cdrom
Opzioni di montaggio diario
I file system ext3 ed ext4 hanno tre livelli di journaling che possono essere impostati con -o opzione nel comando mount o nella sezione delle opzioni di /etc/fstab:
- dati=diario :Il livello più alto. Quello che fa più journaling. Questo scrive le voci del diario per tutte le modifiche ai dati e ai metadati. Tutti i dati vengono salvati nel journal prima di essere scritti nel file system principale.
- dati=ordinati :La modalità predefinita. Tutti i dati vengono forzati direttamente al file system principale prima che i relativi metadati vengano salvati nel journal.
- dati=ripristino :Il livello più basso. L'ordinamento dei dati non viene conservato. I dati possono essere scritti nel file system principale dopo che i relativi metadati sono stati salvati nel journal.
Smontaggio dei file system
Per smontare un file system, usa smonta comando. Come argomento viene utilizzato il nome della partizione, il nome del dispositivo o il punto di montaggio. Esempio:
# umount /dev/xvdd1 # umount /test
File/etc/fstab
Il file /etc/fstab è chiamato tabella di montaggio del file system e contiene tutte le informazioni necessarie al comando mount per montare i dispositivi. Quando si aggiunge un nuovo file system, creare la voce appropriata in /etc/fstab per assicurarsi che il file system sia montato all'avvio. Quello che segue è un esempio di voci nel file /etc/fstab:
# cat /etc/fstab LABEL=centos_root / ext4 defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 UUID=687eb83f-c16f-4fa9-bb49-1621eed3a35d /test ext4 defaults 0 0
La prima colonna è il dispositivo da montare. L'UUID o il nome dell'etichetta devono essere utilizzati al posto del nome del dispositivo, poiché i nomi dei dispositivi potrebbero cambiare. La seconda colonna è il punto di montaggio, ad eccezione della voce della partizione di scambio. La terza colonna è il tipo di file system. La quarta colonna specifica le opzioni di montaggio. La quinta colonna viene utilizzata dal comando dump. Il numero 1 significa eseguire il dump del file system e 0 significa che non è necessario eseguire il dump del file system. L'ultima colonna viene utilizzata dal programma fsck per determinare l'ordine in cui vengono eseguiti i controlli del file system al momento del riavvio. Il file system radice dovrebbe essere specificato con un valore di 1 e gli altri file system dovrebbero avere un valore di 2. Un valore di 0 non controlla il file system.