Come usare il comando mkfs su Linux

Un terminale Linux su un laptop con un desktop in stile Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

È necessario creare un file system prima di poter utilizzare qualsiasi dispositivo di archiviazione dati collegato a un computer Linux. Scopri come usare mkfs e altre utilità per fare proprio questo per tutti i tipi di file system. Ti mostriamo come.

mkfs Crea file system

Il mkfs comando crea file system. Su altri sistemi operativi, la creazione di un file system si chiama formattazione. Indipendentemente dal suo nome, è il processo che prepara una partizione in modo che possa archiviare i dati. La partizione ha bisogno di un modo per archiviare i file, sì. Ma ha anche bisogno di un meccanismo per memorizzare i nomi e le posizioni di quei file, insieme ai loro metadati come il timestamp di creazione del file, il timestamp del file modificato, la dimensione del file e così via. Una volta mkfs ha creato il framework necessario per la gestione e l'archiviazione dei metadati dei file, è possibile iniziare ad aggiungere file alla partizione.

La sintassi è molto semplice. Dillo e basta mkfs la partizione del dispositivo su cui si desidera creare il file system e il tipo di file system desiderato. Questo è tutto. Dietro le quinte, è un po 'diverso. Da qualche tempo ormai sulla maggior parte delle distribuzioni Linux mkfs è stato un wrapper per mke2fs. Il mkfs il comando chiama il mke2fs comando e gli passa le opzioni che hai specificato. Povero vecchio mke2fs fa tutto il lavoro ma non ottiene alcuna gloria.

La sintassi di mkfs è stato aggiornato e il vecchio formato è stato deprecato. Entrambe le forme funzioneranno, ma in questo articolo useremo lo stile moderno.

La scelta dei file system

Il modo moderno di usare mkfs è digitare “mkfs”. e quindi il nome del file system che si desidera creare.

Per vedere i file system che mkfs possibile creare, digitare “mkfs” e quindi premere due volte il tasto Tab. Non c'è spazio dopo “mkfs”, basta premere due volte Tab.

Elenco dei file system supportati in una finestra terminale

L'elenco dei file system disponibili viene visualizzato nella finestra del terminale. Lo screenshot è tratto da Ubuntu 18.04 LTS. Altre distribuzioni possono offrire più o meno opzioni. Esamineremo questi e li descriveremo brevemente. Dopo una breve parola sul journaling.

Il journaling è un concetto importante nei file system. Il file system registra le scritture dei file in sospeso su un giornale. Man mano che viene scritto ogni file, il giornale viene aggiornato e i record di scrittura in sospeso vengono aggiornati. Ciò consente al file system di riparare file rotti parzialmente scritti che si sono verificati a causa di un evento catastrofico come un'interruzione di corrente. Alcuni dei file system meno recenti non supportano l'inserimento nel journal. Quelli che non lo fanno, scrivono sul disco meno frequentemente perché non hanno bisogno di aggiornare il diario. Potrebbero funzionare più velocemente, ma sono più soggetti a danni a causa della scrittura di file interrotta.

  • ext2: Il primo file system per Linux è stato il file system MINIX. Successivamente è stato sostituito dal primo file system mai scritto appositamente per Linux, che era Ext. Ext2 è stato il successore di Ext. Ext2 non è un file system di journaling.
  • ext3: Questo è stato il successore di Ext2 e può essere considerato Ext2 con journaling, che protegge il file system dalla corruzione dei dati causata da arresti anomali e improvvisa perdita di energia.
  • ext4: Ext4 è il file system standard per tutte le distribuzioni Linux. È un file system solido, provato e affidabile. Dispone di funzionalità che riducono la frammentazione dei file e possono essere utilizzate con unità, partizioni e file più grandi di Ext3.
  • BFS: Questo è il file system di avvio, progettato per un solo lavoro e uno solo: per gestire i file nella partizione di avvio. È raro che tu stia creando manualmente un file system di avvio. Il tuo processo di installazione di Linux lo farà per te.
  • GRASSO: Il file system della tabella di allocazione dei file è stato progettato per i floppy disk da un consorzio di pesi massimi dell'industria informatica. È stato introdotto nel 1977. L'unico motivo per cui potresti utilizzare questo file system senza journaling è per la compatibilità con i sistemi operativi non Linux.
  • NTFS: Il nuovo file system di tecnologia è un file system di journaling Microsoft introdotto con Windows NT. È stato il successore di FAT. L'unico motivo per cui dovresti utilizzare questo file system è per la compatibilità con sistemi operativi non Linux.
  • MINIX: Originariamente creato da Andrew S. Tanenbaum come supporto educativo, MINIX è un sistema operativo “mini-Unix”. Al giorno d'oggi, ha lo scopo di fornire un auto-guarigione e tollerante ai guasti sistema operativo. Il MINIX file system è stato progettato come una versione semplificata del file system Unix. Forse se si sta sviluppando in modo incrociato su un computer Linux e si sta prendendo di mira una piattaforma MINIX, è possibile utilizzare questo file system. O forse hai bisogno di compatibilità con un computer MINIX per altri motivi. I casi d'uso di questo file system su un computer Linux non mi saltano fuori, ma è disponibile.
  • VFAT: Tabella di allocazione file virtuale, è stata introdotta con Windows 95 e rimosso il limite di otto caratteri per i nomi di file. Sono diventati possibili nomi di file con un massimo di 255 caratteri. L'unico motivo per cui dovresti utilizzare questo file system è per la compatibilità con sistemi operativi non Linux.
  • CRAMFS: Il file system ROM compresso è un file system di sola lettura progettato per sistemi incorporati e usi di sola lettura specializzati, ad esempio nei processi di avvio dei computer Linux. È comune avere un piccolo file system transitorio caricato per primo in modo che i processi bootstrap possano essere avviati per preparare il sistema di avvio “reale” da montare.
  • MSDOS: Il file system del sistema operativo del disco Microsoft. Rilasciato nel 1981, è un file system elementare tanto semplice quanto lo è. La prima versione non aveva nemmeno directory. Ha un posto di rilievo nella storia dell'informatica ma, al di là della compatibilità con i sistemi legacy, ci sono poche ragioni per usarlo oggi.

RELAZIONATO: Quale file system Linux dovresti usare?

Un modo sicuro per sperimentare con i file system

La creazione di un file system su una partizione è distruttiva per qualsiasi dato che potrebbe già risiedere su quella partizione. L'uso di un disco rigido di riserva, o persino di un computer di riserva, è il modo perfetto per sperimentare la creazione e l'utilizzo di diversi file system. Ma ovviamente, molte persone non hanno hardware di riserva in giro, in attesa di essere sperimentate.

Tuttavia, possiamo creare un file immagine e creare file system al suo interno. Una volta montato, possiamo usarlo come se fosse una partizione normale. Siamo in grado di esplorare e sperimentare i file system senza bisogno di hardware di riserva. Useremo il dd comando per creare il nostro file immagine.

Il file di immagine viene creato prendendo i dati di origine e inserendoli in un'immagine. Dobbiamo dirlo dd dove ottenere i dati di origine. Useremo il if (file di input) opzione da dire dd utilizzare / dev / zero come origine dati di input. Questo sarà un flusso di zero.

Il of (file di output) ci consente di fornire un nome per il file immagine. Lo chiameremo “howtogeek.img”.

La dimensione del file immagine è determinata dalla dimensione e dal numero di blocchi che aggiungiamo ad esso. Stiamo usando il bs (dimensione blocco) per richiedere una dimensione blocco di 1 MB e l'opzione count opzione per richiedere 250 blocchi. Questo ci darà un file system di 250 MB. Quando si emette questo comando, regolare il numero di blocchi in base alle proprie esigenze e alla capacità disponibile sul proprio computer Linux.

dd if=/dev/zero of=~/howtogeek.img bs=1M count=250

dd if = / dev / zero of = ~ / howtogeek.img bs = 1M count = 250

Il file è stato creato per noi e dd riferisce che sono stati creati 250 blocchi per noi, come richiesto.

Output dal comando dd in una finestra terminale

Possiamo guardare il nostro file di immagine con ls :

ls -hl

È -hl in una finestra terminale

Sono previsti 250 MB come previsto, il che è incoraggiante.

Creazione del file system

Scegliamo un file system da utilizzare. Ritorneremo indietro nel tempo e useremo Ext2, che è la prima versione di Ext di cui questa implementazione mkfs può creare. Questo è un file system senza journaling, quindi non archiviare nulla di prezioso senza backup altrove. Noi usiamo il mkfs.ext2 variante del mkfs comando, e gli diciamo di usare il nostro file immagine come destinazione.

mkfs.ext2 ~/howtogeek.img

mkfs.ext2 ~ / howtogeek.img in una finestra del terminale

Viene creato il file system e vengono visualizzati alcuni dettagli del file system.

Output del comando mkfs.ext2 in una finestra terminale

Come puoi vedere dal testo evidenziato, mke2fs fa un'apparizione.

Ora abbiamo un contenitore per il file system — il file immagine — che sta sostituendo un disco rigido in questo scenario. All'interno di quel contenitore, abbiamo creato un file system. Ora dobbiamo montare il file system in modo da poterlo usare.

Questa è una configurazione temporanea, quindi creeremo un punto di montaggio all'interno di / mnt chiamato “geek”. Lo rimuoveremo quando avremo finito.

sudo mkdir /mnt/geek

mkfs.ext2 ~ / howtogeek.img in una finestra del terminale

Ora possiamo montare il nostro file immagine.

sudo mount ~/howtogeek.img /mnt/geek

mkfs.ext2 ~ / howtogeek.img in una finestra del terminale

Dobbiamo modificare la proprietà dei file del punto di montaggio in modo da avere accesso in lettura e scrittura ad esso.

sudo chown dave:users /mnt/geek/

sudo chown dave: users / mnt / geek / in una finestra terminale

E ora dovremmo essere in grado di utilizzare il nostro nuovo file system. Passiamo al file system e copiamo alcuni file su di esso.

cd /mnt/geek
cp ~/Documents/Code/*.? .

cp ~ / Documents / Code / *.? . in una finestra terminale

Questo copierà tutti i file con estensione di una sola lettera dalla directory ~ / Documents / Code nel nostro nuovo file system. Controlliamo che siano stati copiati.

ls

È in una finestra terminale

I file sono stati copiati, quindi il nostro file system è stato creato, montato e utilizzato. O almeno così pensiamo. Ricontrolliamo. Dalla nostra home directory, smonteremo il file system. Nota che c'è solo una “n” in umount.

sudo umount /mnt/geek

sudo umount / mnt / geek in una finestra terminale

Ora, se torniamo a / mnt / geek e controlliamo la presenza di file, non dovremmo trovarne nessuno perché sono all'interno del nostro file di immagine e questo è stato smontato.

cd /mnt/geek
ls

cd / mnt / geek in una finestra del terminale

RELAZIONATO: Come montare e smontare i dispositivi di archiviazione dal terminale Linux

Ulteriore esplorazione

Ora abbiamo risolto il processo, provare un altro file system dovrebbe essere facile. Questa volta utilizzeremo il file system MINIX. Nella nostra home directory, possiamo creare un nuovo file system all'interno del nostro file di immagine esistente.

Stai attento! Se ci sono file importanti sul file system all'interno del file immagine, montare il file immagine e recuperarli prima si crea un nuovo file system.

mkfs.minix ~/howtogeek.image

mkfs.minix ~ / howtogeek.image in una finestra del terminale

Senza alcun suggerimento di chiederti “se sei sicuro”, il nuovo file system viene creato su quello vecchio. Possiamo montare il nostro file di immagine con esattamente lo stesso comando di prima:

sudo mount ~/howtogeek.img /mnt/geek

sudo mount ~ / howtogeek.img / mnt / geek in una finestra del terminale

Passiamo al nuovo file system su / mnt / geek e vediamo se possiamo creare un file.

touch geek.txt

toccare geek.txt in una finestra del terminale

ls -ahl geek.txt

ls -ahl geek.txt in una finestra terminale

E, semplicemente e con la stessa rapidità, abbiamo creato un nuovo file system, lo abbiamo montato e possiamo usarlo.

Rimozione del punto di montaggio

Al termine, possiamo rimuovere il punto di montaggio “geek”. Per fare ciò useremo rmdir:

cd /mnt
sudo rmdir geek

sudo rmdir geek in una finestra terminale

Giocoleria con il fuoco

Con Linux, come con la maggior parte delle cose, impari facendo. Il problema con alcuni comandi è che sono potenzialmente distruttivi. Il dilemma è come esercitarsi ad usarli senza mettere a rischio il sistema o i dati?

Ora hai un metodo semplice per creare e provare file system con mkfs che lascia intatto il tuo computer.

Articoli correlati

Ultimi articoli