È necessario creare un file system prima di poter utilizzare qualsiasi dispositivo di archiviazione dati collegato a un computer Linux. Scopri come utilizzare 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 viene chiamata la creazione di un file system formattazione. Indipendentemente dal 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 necessita anche di un meccanismo per memorizzare i nomi e le posizioni di tali file, insieme ai relativi metadati come il timestamp di creazione del file, il timestamp di modifica del file, la dimensione del file e così via. Una volta mkfs ha creato la struttura necessaria per la gestione e l’archiviazione dei metadati dei file, puoi iniziare ad aggiungere file alla partizione.
La sintassi è molto semplice. Dillo e basta mkfs la partizione del dispositivo su cui desideri creare il file system e il tipo di file system che desideri. Questo è evidente. Dietro le quinte è un po’ diverso. Da qualche tempo sulla maggior parte delle distribuzioni Linux mkfs è stato un involucro per mke2fs. IL mkfs il comando chiama il file 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 utilizzeremo lo stile moderno.
La scelta dei file system
Il modo moderno di utilizzare mkfs è digitare “mkfs”. e poi il nome del file system che desideri creare.
Per vedere i file system che mkfs può creare, digitare “mkfs” e quindi premere due volte il tasto Tab. Non c’è spazio dopo “mkfs”, premi semplicemente 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 ciascuno. 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 journal. Man mano che viene scritto ogni file, il journal viene aggiornato e i record di scrittura in sospeso vengono aggiornati. Ciò consente al file system di riparare file danneggiati, parzialmente scritti, che si sono verificati a causa di un evento catastrofico come un’interruzione di corrente. Alcuni dei file system più vecchi non supportano il journaling. 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 dovuti all’interruzione della scrittura dei file.
- Est2: Il primo file system per Linux è stato il file system MINIX. Successivamente fu sostituito dal primo file system mai scritto specificatamente per Linux, che era Est. Ext2 era Il successore di Ext. Ext2 non è un file system con journaling.
- Est3: Questo era il successore di Ext2e può essere pensato come Ext2 con journaling, che protegge il file system dalla corruzione dei dati causata da arresti anomali e improvvise interruzioni di corrente.
- Est4: 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 system di avvio, che è progettato per un compito e uno soltanto: gestire i file nella partizione di avvio. È raro che tu crei manualmente un file system di avvio. Il processo di installazione di Linux lo farà per te.
- GRASSO: IL Tabella di allocazione 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 utilizzare questo file system senza journaling è la compatibilità con i sistemi operativi non Linux.
- NTFS: IL Nuovo file system tecnologico è un file system journaling di Microsoft introdotto con Windows NT. Era il successore di FAT. L’unico motivo per cui utilizzeresti questo file system è la compatibilità con i sistemi operativi non Linux.
- MINIX: Originariamente creato da Andrew S. Tanenbaum come sussidio educativo, MINIX è un sistema operativo “mini-Unix”. Al giorno d’oggi, l’obiettivo è fornire un sistema operativo autoriparante e tollerante ai guasti. Il file system MINIX è stato progettato come a versione semplificata del file system Unix. Forse se stai sviluppando in modo incrociato su un computer Linux e hai come target una piattaforma MINIX potresti utilizzare questo file system. O forse hai bisogno della compatibilità con un computer MINIX per altri motivi. I casi d’uso di questo file system su un computer Linux non mi saltano all’occhio, ma è disponibile.
- VFAT: Tabella di allocazione file virtuale, è stato introdotto con Windows 95 e ha rimosso il limite di otto caratteri per i nomi dei file. Sono diventati possibili nomi di file fino a 255 caratteri. L’unico motivo per cui utilizzeresti questo file system è 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. È normale che venga caricato prima un file system piccolo e transitorio in modo che i processi di bootstrap possano essere avviati per preparare il montaggio del sistema di avvio “reale”.
- MSDOS: il file system del file Sistema operativo disco Microsoft. Rilasciato nel 1981, è un file system elementare quanto di più elementare si possa immaginare. La prima versione non aveva nemmeno le directory. Occupa un posto di rilievo nella storia dell’informatica ma, al di là della compatibilità con i sistemi legacy, ci sono pochi motivi per utilizzarlo oggi.
Un modo sicuro per sperimentare 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 attesa di essere sperimentato.
Tuttavia, possiamo creare un file immagine e creare file system al suo interno. Una volta montato, potremo usarlo come se fosse una normale partizione. Possiamo esplorare e sperimentare con i file system senza bisogno di hardware di riserva. Utilizzeremo il dd comando a creare il nostro file immagine.
Il file immagine viene creato prendendo i dati di origine e inserendoli in un’immagine. Dobbiamo dirlo dd dove ottenere i dati di origine. Utilizzeremo l’opzione if (file di input) per dirlo dd usare /dev/zero come origine dati di input. Questo sarà un flusso di zeri.
L’opzione 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 vi aggiungiamo. Utilizziamo l’opzione bs (dimensione blocco) per richiedere una dimensione di 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 Il file viene creato per noi e dd riporta che sono stati creati per noi 250 blocchi, come richiesto.
Possiamo guardare il nostro file immagine con ls :
ls -hl Sono 250 MB come previsto, il che è incoraggiante.
Creazione del file system
Scegliamo un file system da utilizzare. Torneremo indietro nel tempo e utilizzeremo 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 al suo interno senza avere backup altrove. Noi usiamo il mkfs.ext2 variante del mkfs comando e gli diciamo di utilizzare il nostro file immagine come destinazione.
mkfs.ext2 ~/howtogeek.img Viene creato il file system e vengono visualizzati alcuni dettagli del file system.
Come puoi vedere dal testo evidenziato, mke2fs fa la sua comparsa.
Ora abbiamo un contenitore per il file system, il file immagine, che in questo scenario sostituisce un disco rigido. 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 una punto di montaggio all’interno di /mnt chiamato “geek”. Lo rimuoveremo quando avremo finito.
sudo mkdir /mnt/geek Ora possiamo montare il nostro file immagine.
sudo mount ~/howtogeek.img /mnt/geek Dobbiamo cambiare il proprietà del file del punto di montaggio in modo da potervi accedere in lettura e scrittura.
sudo chown dave:users /mnt/geek/ E ora dovremmo essere in grado di utilizzare il nostro nuovo file system. Passiamo al file system e copiamo alcuni file al suo interno.
cd /mnt/geek cp ~/Documents/Code/*.? . 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 I file sono stati copiati, quindi il nostro file system è stato creato, montato e utilizzato. O almeno così pensiamo. Ricontrolliamo. Dalla nostra home directory, lo faremo smontare il file system. Nota che c’è solo una “n” dentro smontare.
sudo umount /mnt/geek 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
Ulteriori esplorazioni
Ora che abbiamo definito il processo, provare un altro file system dovrebbe essere facile. Questa volta utilizzeremo il file system MINIX. Nella nostra directory home, 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 Senza alcun accenno alla domanda “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 Passiamo al nuovo file system in /mnt/geek e vediamo se riusciamo a creare un file.
touch geek.txt ls -ahl geek.txt 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
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 utilizzarli senza mettere a rischio il sistema o i dati?
Ora hai un metodo semplice per creare e provare i file system mkfs che lascia il tuo computer intatto.