Le lettere in mkfs
sta per "crea file system". Il comando è comunemente usato per la gestione dei dispositivi di archiviazione in Linux. Puoi pensare a mkfs come a uno strumento da riga di comando per formattare un disco in un filesystem specifico.
mkfs -t [fs type] [target device]
Puoi anche usare il comando mkfs nel modo seguente.
mkfs.[fs type] [target device]
In questo tutorial, discuterò in generale cos'è un file system. Fornirò anche esempi per utilizzare il comando mkfs in modo efficace.
Poiché il comando mkfs si occupa di dischi e partizioni, richiede che tu sia un utente root o sudo con accesso per eseguire i comandi di amministrazione.
mkfs è uno strumento potente. È importante comprendere le potenziali conseguenze dell'alterazione del filesystem. La selezione del nodo del dispositivo sbagliato cancellerà tutti i dati su quel dispositivo. Utilizzare questo comando a proprio rischio. Sei stato avvisato
Cos'è di nuovo un file system?
Un file system (fs) si riferisce alla struttura e alla logica che gestiscono i dati su un dispositivo. Il file system controlla il modo in cui i dati vengono archiviati e recuperati.
Esistono molti tipi di file system e ognuno ha i suoi vantaggi e svantaggi. Ecco i tipi più comuni di filesystem:
- GRASSO*
- NTFS
- est*
- APFS
- HFS*
Probabilmente ti sei già imbattuto in uno o più di questi tipi di filesystem in precedenza. Puoi anche associare i tipi ai rispettivi sistemi operativi.
In generale, FAT/NTFS sono progettati per Windows, Ext viene utilizzato con sistemi Linux e APFS/HFS sono file system macOS. Ognuno di questi affronta la logica della struttura dei file in modo diverso, il che può causare problemi.
Questo è il motivo per cui è fondamentale pensarci prima di dichiarare un tipo di filesystem o di "formattare" il tuo dispositivo. Ogni caso d'uso è diverso e sta a te decidere quale filesystem funziona meglio per le tue esigenze.
esempi di comandi mkfs
Lascia che ti mostri alcuni degli usi più comuni del comando mkfs.
Per favore, non provare nessuno di questi comandi sul tuo sistema attuale alla cieca. Formatterà la partizione del dispositivo/disco di destinazione cancellando tutti i dati.
mkfs senza alcuna opzione crea un filesystem ext2
Se non specifichi il tipo di filesystem per il dispositivo di destinazione, utilizzerà il filesystem ext2 predefinito.
sudo mkfs /dev/sdb1
Specifica il tipo di file con mkfs
L'uso di ext2 non è molto conveniente o consigliabile. La maggior parte dei sistemi Linux oggigiorno consiglia di utilizzare ext4. È possibile specificare il file system nel modo seguente:
sudo mkfs -t ext4 /dev/sdb1
Puoi anche usarlo in questo modo:
sudo mkfs.ext4 /dev/sdb1
Verifica la presenza di blocchi danneggiati su un dispositivo
Puoi anche verificare la presenza di blocchi danneggiati su un dispositivo, ma tieni presente che il controllo spesso richiede molto tempo.
sudo mkfs -c /dev/sdb1
Suggerimento bonus:controlla il tipo di filesystem di un dispositivo
Potresti voler controllare il tipo di filesystem di un dispositivo che hai appena formattato usando il comando mkfs. È possibile utilizzare il comando file per questo scopo.
sudo file -sL /device
Ecco un esempio che mostra che tipo di output potrebbe mostrare:
[email protected]:~$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)
Caso d'uso reale:utilizzo del comando mkfs per creare un file Sistema su un dispositivo USB
Ora che hai alcune informazioni di base, puoi iniziare a usare mkfs.
La dimostrazione più pratica che mi viene in mente è la formattazione di un'unità di archiviazione flash USB. Questi stessi principi si applicheranno a qualsiasi tipo di archiviazione tu scelga.
Trova il tuo dispositivo
Per prima cosa dovrai trovare il tuo dispositivo. Un metodo che puoi usare è sudo fdisk -l
. Questo elencherà tutti i nodi del disco attualmente montati.
[email protected]:~$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3c62c49c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 4096 1023998 1019903 498M 83 Linux
/dev/sda2 1024000 44036094 43012095 20.5G 83 Linux
/dev/sda3 44036096 52424702 8388607 4G 82 Linux swap / Solaris
Disk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectors
Disk model: Patriot Memory
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9A
Device Start End Sectors Size Type
/dev/sdb1 2048 60626910 60624863 28.9G Linux filesystem
La tua uscita ovviamente varierà. Si prega di fare molta attenzione quando si identifica l'unità desiderata . Se non sei sicuro, rimuovi il disco ed esegui fdisk -l
comando di nuovo. Se hai il dispositivo corretto, non verrà elencato mentre sei disconnesso.
Verifica la partizione
Il dispositivo che sto usando è una Patriot Memory USB e si trova in /dev/sdb
. Oltre a identificare il disco corretto, dovrai assicurarti di modificare l'FS della partizione desiderata.
Ho usato gli strumenti fdisk per eliminare i dati esistenti e scrivere una nuova tabella delle partizioni. Mentre lo facevo, ho creato una nuova partizione su cui scrivere. Quella partizione sarà il nostro obiettivo:/dev/sdb1
.
Smonta
Prima di provare a modificare il file system, dovrai smontarlo utilizzando umount
comando.
[email protected]:~$ sudo umount /dev/sdb1
Crea il file system
Ora che hai verificato il tuo target e smontato l'unità, puoi procedere alla creazione del file system.
Ho aggiunto il -v
opzione dettagliata qui per visualizzare più informazioni durante l'esecuzione.
[email protected]:~$ sudo mkfs.ext4 /dev/sdb1 -v
mke2fs 1.45.5 (07-Jan-2020)
fs_types for mke2fs.conf resolution: 'ext4'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1896832 inodes, 7578107 blocks
378905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2155872256
232 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Filesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Questo processo può richiedere del tempo, ma dovrebbe terminare in meno di 20 minuti, a meno che il target non sia maggiore di 2 TB.
Ho avuto diversi problemi con il programma sospeso sull'ultimo elemento. Sfortunatamente, non c'è un indicatore di avanzamento e non ho avuto errori.
Verifica il filesystem appena creato
Innanzitutto, controlla il filesystem del dispositivo che hai appena utilizzato. È quello che volevi?
sudo file -sL /dev/sdb1
È importante assicurarsi che il dispositivo sia riconosciuto sui sistemi con cui lo utilizzerai. Ho creato una cartella chiamata test e un file al suo interno chiamato test.txt.
Per risparmiare tempo, puoi copiare e incollare i miei comandi qui.
mkdir test && cd test
touch test.txt
echo "THIS IS ONLY A TEST" > test.txt
cat test.txt
Se tutto ha funzionato, dovresti essere in grado di montare l'unità sui sistemi desiderati e accedere ai file. Se non riesci ad accedere ai file sul tuo sistema, probabilmente c'è un problema di compatibilità.
Conclusione
Spero che tu possa trovare questa guida rapida a mkfs
comando utile. Se ti piace questo tutorial, condividilo sui social media.
Se hai commenti o domande, lasciali qui sotto. Se hai suggerimenti per argomenti che vorresti vedere trattati, sentiti libero di lasciare anche quelli.