Come utilizzare il comando mkfs su Linux

È necessario creare un file system prima di poter utilizzare qualsiasi dispositivo di archiviazione dati connesso a un computer Linux. Impara 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 comando mkfs crea file system. Su altri sistemi operativi, viene chiamata la creazione di un file system formattazione. Indipendentemente dal nome, è il processo che prepara una partizione in modo che possa memorizzare i dati. La partizione ha bisogno di un modo per memorizzare 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 modificato del file, la dimensione del file e così via. Una volta che 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. Devi solo dire a mkfs la partizione del dispositivo su cui desideri creare il file system e il tipo di file system che desideri. È evidente. Dietro le quinte, è un po ‘diverso. Da qualche tempo sulla maggior parte delle distribuzioni Linux mkfs è stato un file involucro per mke2fs. Il comando mkfs chiama il comando mke2fs e gli passa le opzioni che hai specificato. Povero vecchio mke2fs fa tutto il lavoro ma non ottiene la gloria.

La sintassi di mkfs è stata aggiornata 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 utilizzare mkfs è digitare “mkfs”. e quindi il nome del file system che desideri creare.

Per vedere i file system che mkfs può creare, digita “mkfs” e poi premi due volte il tasto Tab. Non c’è spazio dopo “mkfs”, basta premere Tab due volte.

L’elenco dei file system disponibili viene visualizzato nella finestra del terminale. Lo screenshot proviene da Ubuntu 18.04 LTS. Altre distribuzioni possono offrire più o meno opzioni. Li esamineremo e li descriveremo brevemente. Dopo una breve parola sull’inserimento nel diario.

Il journaling è un concetto importante nei file system. I file system registrano le scritture di file in sospeso su un giornale. Man mano che ogni file viene scritto, il giornale viene aggiornato e i record di scrittura in sospeso vengono aggiornati. Ciò consente al file system di riparare file danneggiati e 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 il journaling. Quelli che non lo fanno, scrivono sul disco meno frequentemente perché non hanno bisogno di aggiornare il journal. Possono funzionare più velocemente, ma sono più soggetti a danni a causa di scritture di file interrotte.

Ext2: Il primo file system per Linux è stato il file system MINIX. Successivamente è stato sostituito dal primo file system mai scritto appositamente per Linux, ovvero Ext. Ext2 era Il successore di Ext. Ext2 non è un file system di journaling.
Ext3: questo era il file successore di Ext2e può essere considerato come Ext2 con journaling, che protegge il tuo file system dalla corruzione dei dati causata da arresti anomali e improvvise interruzioni di corrente.
Ext4: Ext4 è il file system standard per molte distribuzioni Linux. È un file system solido, provato e affidabile. Ha caratteristiche che ridurre la frammentazione dei file e può essere utilizzato con unità, partizioni e file più grandi di Ext3.
BFS: Questo è il file File system di avvio, progettato per un lavoro e uno solo: per gestire i file nella partizione di avvio. È raro che crei manualmente un file system di avvio. Il tuo processo di installazione di Linux lo farà per te.
FAT: Il Tabella di allocazione dei file Il file system è stato progettato per i floppy disk da un consorzio di pesi massimi dell’industria informatica. È stato introdotto nel 1977. L’unico motivo per cui usereste questo file system non journaling è per la compatibilità con i sistemi operativi non Linux.
NTFS: il New Technology File System è un file system di journaling Microsoft introdotto con Windows NT. È stato il successore di FAT. L’unico motivo per cui useresti questo file system è per la compatibilità con i sistemi operativi non Linux.
MINIX: originariamente creato da Andrew S. Tanenbaum come aiuto educativo, MINIX è un sistema operativo “mini-Unix”. Al giorno d’oggi, ha lo scopo di fornire un sistema operativo auto-riparante e tollerante ai guasti. Il file system MINIX è stato progettato come file versione semplificata del file system Unix. Forse se stai sviluppando in modo incrociato su un computer Linux e scegli una piattaforma MINIX potresti usare questo file system. O forse hai bisogno della compatibilità con un computer MINIX per altri motivi. I casi d’uso per questo file system su un computer Linux non mi vengono in mente, ma è disponibile.
VFAT: Tabella di allocazione file virtuale, è stato introdotto con Windows 95 e ha rimosso il limite di otto caratteri per i nomi di file. Sono diventati possibili nomi di file fino a 255 caratteri. L’unico motivo per cui useresti questo file system è per la compatibilità con i sistemi operativi non Linux.
CRAMFS: Il File system ROM compresso è un file system di sola lettura progettato per sistemi embedded e usi specialistici di sola lettura, come nei processi di avvio dei computer Linux. È comune caricare per primo un file system piccolo e temporaneo in modo che i processi di bootstrap possano essere avviati per preparare il montaggio del sistema di avvio “reale”.
MSDOS: il file system di Sistema operativo Microsoft Disk. Rilasciato nel 1981, è un file system elementare che è tanto semplice quanto basta. La prima versione non aveva nemmeno le 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.

Un modo sicuro per sperimentare con i file system

La creazione di un file system su una partizione è distruttiva per tutti i dati che potrebbero già risiedere su quella partizione. L’utilizzo di un disco rigido di riserva, o anche 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 sperimentato.

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

Il file immagine viene creato prendendo i dati di origine e inserendoli in un’immagine. Dobbiamo dire a dd dove ottenere i suoi dati di origine. Useremo l’opzione if (file di input) per dire a dd di usare / dev / zero come origine dati di input. Questo sarà un flusso di zeri.

L’opzione of (output file) 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 utilizzando l’opzione bs (dimensione del blocco) per richiedere una dimensione del blocco di 1 MB e l’opzione di conteggio per richiedere 250 blocchi. Questo ci darà un file system di 250 MB. Quando esegui questo comando, regola il numero di blocchi in base alle tue esigenze e alla capacità di riserva che hai sul tuo 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 viene creato per noi e dd segnala che sono stati creati 250 blocchi per noi, come richiesto.

Uscita dal comando dd in una finestra di terminale

Possiamo guardare il nostro file immagine con ls:

ls -hl

ls -hl in una finestra di terminale

Sono 250 MB come previsto, il che è incoraggiante.

Creazione del file system

Scegliamo un file system da usare. Torneremo indietro nel tempo e useremo Ext2, che è la prima versione di Ext che questa implementazione di mkfs può creare. Questo è un file system non journaling, quindi non memorizzare nulla di prezioso al suo interno senza avere backup altrove. Usiamo la variante mkfs.ext2 del comando mkfs e gli diciamo di usare il nostro file immagine come destinazione.

mkfs.ext2 ~/howtogeek.img

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

Il file system viene creato e vengono visualizzati alcuni dettagli del file system.

Output del comando mkfs.ext2 in una finestra di terminale

Come puoi vedere dal testo evidenziato, mke2fs fa la sua comparsa.

Ora abbiamo un contenitore per il file system, il file immagine, che sostituisce 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 utilizzare.

Questa è una configurazione temporanea, quindi creeremo un file 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 di terminale

Ora possiamo montare il nostro file immagine.

sudo mount ~/howtogeek.img /mnt/geek

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

Dobbiamo cambiare il file 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 di terminale

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

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

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

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

ls

È in una finestra di terminale

I file sono stati copiati, quindi il nostro file system è stato creato, montato e utilizzato. O almeno così pensiamo. Controlliamo due volte. 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 di terminale

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

cd /mnt/geek
ls

cd / mnt / geek in una finestra di terminale

Ulteriori esplorazioni

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

Stai attento! Se sono presenti file importanti nel file system all’interno del file immagine, montare il file immagine e recuperarli prima di creare un nuovo file system.

mkfs.minix ~/howtogeek.image

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

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

sudo mount ~/howtogeek.img /mnt/geek

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

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

touch geek.txt

tocca geek.txt in una finestra di terminale

ls -ahl geek.txt

ls -ahl geek.txt in una finestra di terminale

E, in modo così semplice e veloce, abbiamo creato un nuovo file system, lo abbiamo montato e possiamo usarlo.

Rimozione del punto di montaggio

Quando hai finito, possiamo rimuovere il punto di montaggio “geek”. Per farlo useremo rmdir:

cd /mnt
sudo rmdir geek

sudo rmdir geek in una finestra di 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 a usarli senza mettere a rischio il sistema oi dati?

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