Hoe de mkfs-opdracht op Linux te gebruiken

Een Linux-terminal op een laptop met een desktop in Ubuntu-stijl.
Fatmawati Achmad Zaenuri / Shutterstock

U moet een bestandssysteem maken voordat u een apparaat voor gegevensopslag kunt gebruiken dat op een Linux-computer is aangesloten. Leer hoe te gebruiken mkfs en andere hulpprogramma’s om precies dat te doen voor alle soorten bestandssystemen. We laten je zien hoe.

mkfs Maakt bestandssystemen

De mkfs commando maakt bestandssystemen. Op andere besturingssystemen wordt het maken van een bestandssysteem opmaak genoemd. Ongeacht de naam, het is het proces dat een partitie voorbereidt zodat deze gegevens kan opslaan. De partitie heeft een manier nodig om bestanden op te slaan, ja. Maar het heeft ook een mechanisme nodig om de namen en locaties van die bestanden op te slaan, samen met hun metagegevens, zoals het tijdstempel van het aanmaken van het bestand, het gewijzigde tijdstempel van het bestand, de grootte van het bestand, enzovoort. Een keer mkfs het nodige raamwerk heeft gebouwd voor het verwerken en opslaan van bestandsmetadata, kunt u beginnen met het toevoegen van bestanden aan de partitie.

De syntaxis is heel eenvoudig. Je vertelt het gewoon mkfs de apparaatpartitie waarop u het bestandssysteem wilt maken en welk type bestandssysteem u wilt. Dat is op het eerste gezicht. Achter de schermen is het een beetje anders. Al geruime tijd op de meeste Linux-distributies mkfs is een wrapper voor geweest mke2fs. De mkfs commando roept het mke2fs commando en geeft het de opties door die je hebt gespecificeerd. Arme oud mke2fs doet al het werk maar krijgt niets van de glorie.

De syntaxis van mkfs is bijgewerkt en het oude formaat is verouderd. Beide vormen zullen werken, maar we zullen de moderne stijl in dit artikel gebruiken.

De keuze van bestandssystemen

De moderne manier van gebruiken mkfs is om “mkfs” te typen. en vervolgens de naam van het bestandssysteem dat u wilt maken.

Om de bestandssystemen te zien die mkfs kan maken, typ “mkfs” en druk vervolgens tweemaal op de Tab-toets. Er is geen spatie na “mkfs”, druk gewoon twee keer op Tab.

Lijst met ondersteunde bestandssystemen in een terminalvenster

De lijst met beschikbare bestandssystemen wordt weergegeven in het terminalvenster. De schermafbeelding is van Ubuntu 18.04 LTS. Andere distributies bieden mogelijk meer of minder opties. We zullen deze doornemen en ze allemaal kort beschrijven. Na een kort woord over journaling.

Journaling is een belangrijk concept in bestandssystemen. Het bestandssysteem registreert het in behandeling zijnde bestand in een journaal. Terwijl elk bestand wordt geschreven, wordt het journaal bijgewerkt en worden de wachtende schrijfrecords bijgewerkt. Hierdoor kan het bestandssysteem kapotte, gedeeltelijk geschreven bestanden repareren die zijn opgetreden als gevolg van een rampzalige gebeurtenis, zoals een stroomstoring. Sommige van de oudere bestandssystemen ondersteunen geen journaling. Degenen die dat niet doen, schrijven minder vaak naar de schijf omdat ze het journaal niet hoeven bij te werken. Ze kunnen sneller presteren, maar ze zijn gevoeliger voor schade als gevolg van onderbroken schrijven van bestanden.

  • Ext2: Het allereerste bestandssysteem voor Linux was het MINIX-bestandssysteem. Het werd later vervangen door het eerste bestandssysteem dat ooit specifiek voor Linux was geschreven, namelijk Ext. Ext2 was de opvolger van Ext. Ext2 is geen logboekbestandssysteem.
  • Ext3: Dit was de opvolger van Ext2, en kan worden gezien als Ext2 met journaling, dat uw bestandssysteem beschermt tegen datacorruptie veroorzaakt door crashes en plotselinge stroomuitval.
  • Ext4: Ext4 is het standaard bestandssysteem voor veel Linux-distributies. Het is een solide, beproefd en vertrouwd bestandssysteem. Het heeft functies die bestandsfragmentatie verminderen en kan worden gebruikt met grotere schijven, partities en bestanden dan Ext3.
  • BFS: Dit is het opstartbestandssysteem, dat is ontworpen voor slechts één taak: om de bestanden in de opstartpartitie af te handelen. Het komt zelden voor dat u met de hand een opstartbestandssysteem maakt. Je Linux-installatieproces zal dit voor je doen.
  • DIK: Het File Allocation Table-bestandssysteem is ontworpen voor diskettes door een consortium van zwaargewichten uit de computerindustrie. Het werd geïntroduceerd in 1977. De enige reden waarom je dit niet-journaalbestandssysteem zou gebruiken, is vanwege de compatibiliteit met niet-Linux-besturingssystemen.
  • NTFS: Het New Technology File System is een Microsoft-journaling-bestandssysteem dat is geïntroduceerd met Windows NT. Het was de opvolger van FAT. De enige reden waarom u dit bestandssysteem zou gebruiken, is voor compatibiliteit met niet-Linux-besturingssystemen.
  • MINIX: Oorspronkelijk gemaakt door Andrew S. Tanenbaum als een educatief hulpmiddel, MINIX is een “mini-Unix” besturingssysteem. Tegenwoordig is het gericht op het bieden van zelfherstellend en fouttolerant besturingssysteem. De MINIX bestandssysteem is ontworpen als een vereenvoudigde versie van het Unix-bestandssysteem. Misschien kun je dit bestandssysteem gebruiken als je je cross-ontwikkelt op een Linux-computer en je richt op een MINIX-platform. Of misschien heeft u om andere redenen compatibiliteit met een MINIX-computer nodig. Gebruiksscenario’s voor dit bestandssysteem op een Linux-computer springen er niet uit, maar het is beschikbaar.
  • VFAT: Virtual File Allocation Table, werd geïntroduceerd met Windows 95 en verwijderde de limiet van acht tekens voor bestandsnamen. Bestandsnamen van maximaal 255 tekens werden mogelijk. De enige reden waarom u dit bestandssysteem zou gebruiken, is voor compatibiliteit met niet-Linux-besturingssystemen.
  • CRAMFS: Het gecomprimeerde ROM-bestandssysteem is een alleen-lezen bestandssysteem dat is ontworpen voor embedded systemen en gespecialiseerd alleen-lezen gebruik, zoals in de opstartprocessen van Linux-computers. Het is gebruikelijk om eerst een klein, tijdelijk bestandssysteem te laden, zodat bootstrap-processen kunnen worden gestart ter voorbereiding op het aankoppelen van het “echte” opstartsysteem.
  • MSDOS: Het bestandssysteem van het Microsoft Disk Operating System. Uitgebracht in 1981, het is een elementair bestandssysteem dat zo eenvoudig mogelijk is. De eerste versie had niet eens mappen. Het neemt een prominente plaats in in de computergeschiedenis, maar afgezien van compatibiliteit met oudere systemen, is er tegenwoordig weinig reden om het te gebruiken.

VERWANT: Welk Linux-bestandssysteem moet u gebruiken?

Een veilige manier om te experimenteren met bestandssystemen

Het aanmaken van een bestandssysteem op een partitie is destructief voor alle gegevens die zich mogelijk al op die partitie bevinden. Het gebruik van een reserve harde schijf – of zelfs een reservecomputer – is de perfecte manier om te experimenteren met het maken en gebruiken van verschillende bestandssystemen. Maar natuurlijk hebben veel mensen geen reserve hardware rondslingeren, wachtend om te worden geëxperimenteerd.

We kunnen echter een afbeeldingsbestand maken en daarbinnen bestandssystemen maken. Als we het eenmaal hebben aangekoppeld, kunnen we het gebruiken alsof het een gewone partitie is. We kunnen bestandssystemen verkennen en ermee experimenteren zonder dat we extra hardware nodig hebben. We gebruiken de dd opdracht om ons afbeeldingsbestand te maken.

Het afbeeldingsbestand wordt gemaakt door brongegevens te nemen en deze in een afbeelding te plaatsen. We moeten het vertellen dd waar de brongegevens vandaan komen. We gebruiken de if (invoerbestand) optie om te vertellen dd om / dev / zero te gebruiken als de invoergegevensbron. Dit wordt een stroom nullen.

De of (uitvoerbestand) optie stelt ons in staat om een ​​naam voor het afbeeldingsbestand op te geven. We noemen het “howtogeek.img”.

De grootte van het afbeeldingsbestand wordt bepaald door de grootte en het aantal blokken dat we eraan toevoegen. We gebruiken de bs (blokgrootte) optie om een ​​blokgrootte van 1 MB en de count mogelijkheid om 250 blokken aan te vragen. Dit geeft ons een bestandssysteem van 250 MB. Wanneer je dit commando geeft, pas dan het aantal blokken aan naargelang je behoeften en de reservecapaciteit die je op je Linux-computer hebt.

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

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

Het bestand is gemaakt voor ons en dd meldt dat er 250 blokken voor ons zijn gemaakt, zoals gevraagd.

Uitvoer van het dd-commando in een terminalvenster

We kunnen ons afbeeldingsbestand bekijken met ls :

ls -hl

ls -hl in een terminalvenster

Het is zoals verwacht 250 MB, wat bemoedigend is.

Het bestandssysteem maken

Laten we een bestandssysteem kiezen om te gebruiken. We gaan terug in de tijd en gebruiken Ext2, de vroegste versie van Ext die deze implementatie heeft mkfs kan maken. Dit is een niet-journaal bestandssysteem, dus bewaar er niets kostbaars in zonder ergens anders back-ups te maken. Wij gebruiken de mkfs.ext2 variant van de mkfs commando, en we vertellen het om ons afbeeldingsbestand als doel te gebruiken.

mkfs.ext2 ~/howtogeek.img

mkfs.ext2 ~ / howtogeek.img in een terminalvenster

Het bestandssysteem is gemaakt en enkele details van het bestandssysteem worden weergegeven.

Uitvoer van het mkfs.ext2 commando in een terminalvenster

Zoals u kunt zien aan de hand van de gemarkeerde tekst, mke2fs verschijnt.

Nu hebben we een container voor het bestandssysteem – het afbeeldingsbestand – dat in dit scenario in de plaats komt van een harde schijf. Binnen die container hebben we een bestandssysteem gemaakt. Nu moeten we het bestandssysteem mounten zodat we het kunnen gebruiken.

Dit is een tijdelijke set-up, dus we maken een mountpoint binnen / mnt genaamd ‘geek’. We zullen het verwijderen als we klaar zijn.

sudo mkdir /mnt/geek

mkfs.ext2 ~ / howtogeek.img in een terminalvenster

Nu kunnen we ons afbeeldingsbestand mounten.

sudo mount ~/howtogeek.img /mnt/geek

mkfs.ext2 ~ / howtogeek.img in een terminalvenster

We moeten het bestandseigendom van het koppelpunt wijzigen zodat we er lees- en schrijftoegang toe hebben.

sudo chown dave:users /mnt/geek/

sudo chown dave: users / mnt / geek / in een terminalvenster

En nu zouden we ons nieuwe bestandssysteem moeten kunnen gebruiken. Laten we naar het bestandssysteem gaan en er enkele bestanden naartoe kopiëren.

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

cp ~ / Documenten / Code / *.?  .  in een terminalvenster

Hiermee worden alle bestanden met een extensie van één letter uit de map ~ / Documents / Code naar ons nieuwe bestandssysteem gekopieerd. Laten we eens kijken of ze zijn gekopieerd.

ls

ls in een terminalvenster

De bestanden zijn gekopieerd, dus ons bestandssysteem is gemaakt, aangekoppeld en gebruikt. Of zo denken we. Laten we eens kijken. Vanuit onze homedirectory ontkoppelen we het bestandssysteem. Merk op dat er slechts één “n” in umount is.

sudo umount /mnt/geek

sudo umount / mnt / geek in een terminalvenster

Als we nu teruggaan naar / mnt / geek en controleren op bestanden, zouden we er geen moeten vinden omdat ze zich in ons afbeeldingsbestand bevinden en dat is ontkoppeld.

cd /mnt/geek
ls

cd / mnt / geek in een terminalvenster

VERWANT: Opslagapparaten koppelen en ontkoppelen vanaf de Linux Terminal

Verdere verkenning

Nu we het proces hebben uitgewerkt, zou het gemakkelijk moeten zijn om een ​​ander bestandssysteem te proberen. We zullen deze keer het MINIX-bestandssysteem gebruiken. In onze homedirectory kunnen we een nieuw bestandssysteem maken binnen ons bestaande afbeeldingsbestand.

Wees voorzichtig! Als er belangrijke bestanden op het bestandssysteem in het afbeeldingsbestand staan, koppel dan het afbeeldingsbestand en haal ze op voordat je maakt een nieuw bestandssysteem aan.

mkfs.minix ~/howtogeek.image

mkfs.minix ~ / howtogeek.image in een terminalvenster

Zonder enige aanwijzing om u te vragen “als u het zeker weet”, wordt het nieuwe bestandssysteem over het oude heen gemaakt. We kunnen ons afbeeldingsbestand mounten met exact hetzelfde commando als hiervoor:

sudo mount ~/howtogeek.img /mnt/geek

sudo mount ~ / howtogeek.img / mnt / geek in een terminalvenster

Laten we naar het nieuwe bestandssysteem gaan op / mnt / geek en kijken of we een bestand kunnen maken.

touch geek.txt

raak geek.txt aan in een terminalvenster

ls -ahl geek.txt

ls -ahl geek.txt in een terminalvenster

En zo eenvoudig en snel als dat, hebben we een nieuw bestandssysteem gemaakt, het aangekoppeld en kunnen we het gebruiken.

Het montagepunt verwijderen

Als u klaar bent, kunnen we het “geek” -koppelingspunt verwijderen. Om dat te doen gebruiken we rmdir:

cd /mnt
sudo rmdir geek

sudo rmdir geek in een terminalvenster

Jongleren met vuur

Met Linux leer je, zoals bij de meeste dingen, door te doen. Het probleem met sommige commando’s is dat ze potentieel destructief zijn. Het dilemma is hoe u ze kunt oefenen zonder uw systeem of gegevens in gevaar te brengen?

U hebt nu een eenvoudige methode om bestandssystemen te maken en uit te proberen met mkfs dat laat uw computer onaangeroerd.

Nieuwste artikelen

Gerelateerde artikelen