Opprettelse av filsystemer i Linux
Før en datalagringsenhet kan brukes på en Linux-maskin, må et filsystem etableres. Denne artikkelen utforsker hvordan man bruker kommandoen `mkfs` og andre verktøy for å sette opp ulike typer filsystemer. Vi skal gå gjennom prosessen trinnvis.
`mkfs`: Grunnlaget for filsystemer
Kommandoen `mkfs` er sentral i opprettelsen av filsystemer. I andre operativsystemer kalles denne prosessen gjerne «formatering». Uavhengig av begrepet, handler det om å forberede en partisjon for datalagring. En partisjon trenger ikke bare plass til filer, men også en mekanisme for å lagre filnavn, plasseringer og metadata (som opprettelsestidspunkt, endringstidspunkt og størrelse). Når `mkfs` har satt opp dette rammeverket, kan data lagres på partisjonen.
Syntaksen for `mkfs` er enkel: spesifiser enhetspartisjonen og ønsket filsystemtype. Likevel foregår det mer i kulissene. I de fleste Linux-distribusjoner er `mkfs` en «wrapper» for `mke2fs`. Kommandoen `mkfs` kaller opp `mke2fs` og overfører de spesifiserte alternativene. `mke2fs` utfører selve arbeidet, men får ikke alltid anerkjennelsen.
Selv om eldre syntaks for `mkfs` fortsatt fungerer, vil vi fokusere på den moderne stilen i denne artikkelen.
Filsystemtyper: Et mangfold av muligheter
For å bruke `mkfs` på den moderne måten, skriver man «mkfs.» etterfulgt av navnet på ønsket filsystem. For å se en liste over filsystemer som `mkfs` kan opprette, skriv «mkfs» i terminalen og trykk Tab-tasten to ganger. Dette vil vise en liste over tilgjengelige filsystemer, som kan variere mellom Linux-distribusjoner. La oss se nærmere på noen av disse, og diskutere konseptet journalføring først.
Journalføring er en viktig egenskap i moderne filsystemer. Journalførende filsystemer registrerer alle ventende filskriveoperasjoner i en journal. Dette gjør det mulig for filsystemet å reparere delvis skrevne eller ødelagte filer, for eksempel etter strømbrudd. Eldre filsystemer mangler denne funksjonaliteten, og selv om de kan skrive raskere, er de mer sårbare for korrupsjon.
Her er en oversikt over de mest vanlige filsystemene:
Filsystem | Beskrivelse |
Ext2 | Det første filsystemet spesifikt for Linux, uten journalføring. |
Ext3 | Et forbedret Ext2-system med journalføring for økt sikkerhet mot datatap. |
Ext4 | Det mest brukte filsystemet for Linux, kjent for sin pålitelighet og funksjoner som reduserer filfragmentering. |
BFS | «Boot File System» som er spesielt utviklet for oppstartspartisjonen, vanligvis automatisk opprettet under installasjon. |
FAT | Et eldre filsystem utviklet for disketter, mest brukt for kompatibilitet med eldre operativsystemer. |
NTFS | Microsofts «New Technology File System», brukt for kompatibilitet med Windows-systemer. |
MINIX | Et filsystem som er en forenklet versjon av Unix-filsystemet, brukt i MINIX-operativsystemet. Kan være aktuelt i kryssutviklingsmiljøer. |
VFAT | «Virtual File Allocation Table» som støtter lengre filnavn enn FAT-systemet. Brukes hovedsaklig for kompatibilitet med eldre Windows-systemer. |
CRAMFS | «Compressed ROM File System» er et skrivebeskyttet system for innebygde systemer og oppstartsprosesser. |
MSDOS | Filsystemet fra Microsoft Disk Operating System. Grunnleggende og egner seg mest for eldre systemer. |
Eksperimentering med filsystemer: En trygg tilnærming
Å opprette et filsystem på en partisjon sletter eksisterende data. Derfor er det en god idé å bruke en ekstra harddisk eller en annen maskin for å eksperimentere. Hvis dette ikke er mulig, kan vi lage en bildefil og opprette filsystemer inni denne. Dette tillater testing uten fare for å skade eksisterende data.
Vi kan bruke `dd` kommandoen for å opprette en bildefil. Den tar kildedata og legger det inn i en bildefil. I dette tilfellet bruker vi `/dev/zero` som kilde, som genererer en strøm av nuller.
Vi bruker `if` parameteren for å spesifisere inndata filen til `/dev/zero`, `of` parameteren spesifiserer utdata filen til `~/wdzwdz.img`. Vi spesifiserer en blokkstørrelse på 1MB med `bs` parameteren og teller 250 blokker med `count` parameteren for å opprette en fil på 250MB.
dd if=/dev/zero of=~/wdzwdz.img bs=1M count=250
`dd` bekrefter at filen er opprettet som ønsket.
Vi kan bekrefte størrelsen med ls kommandoen:
ls -hl
Filen har nå en størrelse på 250 MB, som forventet.
Opprettelse av filsystem i bildefilen
La oss velge Ext2 filsystemet, den tidligste versjonen av Ext som `mkfs` kan opprette. Husk at dette er et filsystem uten journalføring, så ikke lagre viktige data her uten en sikkerhetskopi. Kommandoen for å lage filsystemet er:
mkfs.ext2 ~/wdzwdz.img
Filsystemet er nå opprettet, og det vises informasjon om filsystemet. Vi ser at `mke2fs` dukker opp.
Nå trenger vi å montere filsystemet slik at vi kan bruke det. Vi oppretter et midlertidig monteringspunkt i `/mnt`, kalt `geek`.
sudo mkdir /mnt/geek
Monter bildefilen:
sudo mount ~/wdzwdz.img /mnt/geek
Vi endrer eierskapet av monteringspunktet slik at vi har lese- og skrivetilgang.
sudo chown dave:users /mnt/geek/
Nå kan vi kopiere filer til det nye filsystemet:
cd /mnt/geek
cp ~/Documents/Code/*.? .
Dette vil kopiere alle filer med en bokstavsutvidelse fra `~/Documents/Code` katalogen til vårt nye filsystem. Vi bekrefter at filene er kopiert.
ls
Filene er kopiert, så filsystemet fungerer som det skal. Vi demonterer filsystemet fra hjemmekatalogen vår.
sudo umount /mnt/geek
Hvis vi nå går inn i `/mnt/geek` ser vi at det ikke er noen filer, fordi filsystemet har blitt demontert.
cd /mnt/geek
ls
Utforsking av andre filsystemer
Nå som vi har fått erfaring med prosessen, kan vi prøve et annet filsystem. La oss prøve MINIX denne gangen. Vi kan lage et nytt filsystem i den eksisterende bildefilen vår.
Vær forsiktig! Hvis det er viktige filer på filsystemet i bildefilen, må du først montere den og hente dem før du oppretter et nytt filsystem.
mkfs.minix ~/wdzwdz.image
Det nye filsystemet opprettes over det gamle uten ytterligere spørsmål. Vi monterer bildefilen med samme kommando som før:
sudo mount ~/wdzwdz.img /mnt/geek
Vi bytter til `/mnt/geek` og oppretter en fil:
touch geek.txt
ls -ahl geek.txt
Dermed har vi opprettet og brukt et nytt filsystem enkelt og raskt.
Fjerning av monteringspunktet
Til slutt kan vi fjerne monteringspunktet `geek`. Vi bruker `rmdir` for dette:
cd /mnt
sudo rmdir geek
Sikker eksperimentering
Med Linux lærer man best ved å gjøre. Noen kommandoer kan være risikable, så det er viktig å øve på en trygg måte uten å sette systemet i fare. Denne metoden med bildefiler gir deg en mulighet til å eksperimentere med filsystemer trygt, uten å risikere systemet eller dataene.