Tips en Trucs 2021

Opslagmedia en partities formatteren

De terminal opdracht mkfs staat voor make file system en wordt gebruikt om opslagmedia te formatteren met een specifiek bestandssysteem.

De mkfs opdracht heeft, omdat het ingrijpende bewerkingen op opslagmedia en partities kan uitvoeren, root rechten nodig. Je voert de mkfs opdracht dan ook steeds uit als root gebruiker of met root rechten via sudo.

Wat is een bestandssysteem ook alweer?

Een bestandssysteem (file system of kortweg fs) zorgt voor een structuur en de logica waarmee gegevens op media beheerd worden. Het bestandssysteem bepaald dus hoe gegevens worden weggeschreven (opgeslagen) en gelezen (geopend).

Er zijn verschillende bestandssystemen en elk hebben ze hun eigen voor- en nadelen. Dit zijn de meest gebruikte bestandssystemen: (Ex)FAT, NTFS, ext, APFS en HFS.

Bestandssystemen worden dikwijls geassocieerd met besturingssystemen. Zo is (Ex)FAT/NTFS ontworpen voor Windows, wordt Ext gebruikt met Linux en zijn APFS/HFS macOS bestandssystemen.

Opslagapparaat zoeken

Formatteren is risicovol, zorg dus dat je steeds weet waar je mee bezig bent. Een verkeerde schijf/partitie formatteren kan verstrekkende gevolgen hebben. Ik gebruik voor de opdrachten bij deze tip dan ook een USB stick waarop geen bestanden staan die ik nog nodig heb.

Een overzicht van alle aangesloten opslagmedia krijg je met de opdracht:

dany@pindabook:~> sudo fdisk -l
Schijf /dev/sda: 238,47 GiB, 256060514304 bytes, 500118192 sectoren
Disk model: SAMSUNG MZ7TD256
Eenheid: sectoren van 1 * 512 = 512 bytes
Sectorgrootte (logisch/fysiek): 512 bytes / 512 bytes
In-/uitvoergrootte (minimaal/optimaal): 512 bytes / 512 bytes
Schijflabeltype: gpt
Schijf-ID: 4377B292-5385-4B4B-8FDA-FA94290B7512

Apparaat       Begin     Einde  Sectoren Grootte Type
/dev/sda1       2048   2050047   2048000   1000M Windows recovery-omgeving
/dev/sda2    2050048   2582527    532480    260M EFI-systeem
/dev/sda3    2582528  19357695  16775168      8G Linux wisselgeheugen
/dev/sda4   19357696 187131903 167774208     80G Linux bestandssysteem
/dev/sda7  187131904 500117503 312985600  149,2G Microsoft basisgegevens


Schijf /dev/sdb: 3,64 GiB, 3909091328 bytes, 7634944 sectoren
Disk model: USB DISK 2.0    
Eenheid: sectoren van 1 * 512 = 512 bytes
Sectorgrootte (logisch/fysiek): 512 bytes / 512 bytes
In-/uitvoergrootte (minimaal/optimaal): 512 bytes / 512 bytes
Schijflabeltype: dos
Schijf-ID: 0x79691180

Apparaat   Op. Begin   Einde Sectoren Grootte ID Type
/dev/sdb1       2048 7634943  7632896    3,6G  c W95 FAT32 (LBA)

Hieruit blijkt dat /dev/sda mijn systeemschijf is en /dev/sdb de aangesloten USB stick.

Loskoppelen

Een aangekoppeld bestandssysteem, m.a.w. in gebruik, formatteren is geen goed idee. Je kunt een gekoppeld bestandssyteem (opslagapparaat) loskoppelen met de opdracht:

dany@pindabook:~> sudo umount /dev/sdb1
[sudo] wachtwoord voor root: 
umount: /dev/sdb1: not mounted.

Nogmaals /dev/sdb1 is in het voorbeeld de enige partitie op mijn USB stick. In het voorbeeld wordt gemeld dat de USB stick partitie niet gekoppeld was. Voorkomen is echter beter dan genezen.

Mkfs opdrachten

Nu de doel partitie gekend en losgekoppeld is, kunnen we er een bestandssysteem op aanmaken:

dany@pindabook:~> sudo mkfs /dev/sdb1
[sudo] wachtwoord voor root: 
mke2fs 1.43.8 (1-Jan-2018)
/dev/sdb1 bevat een vfat-bestandssysteem met label 'SNT Stick'
Proceed anyway? (y,N) y
Aanmaken van bestandssysteem met 954112 blokken (van 4K) en 238560 inodes.
Bestandssysteem-UUID: 496dedc1-71bd-415e-843e-98ed463a024e
Superblokreservekopieƫn zijn opgeslagen in blokken: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Reserveren van groepstabellen: voltooid                        
Schrijven van inodetabellen: voltooid                        
Schrijven van superblokken en bestandssysteem-metagegevens: voltooid

Het formatteren van grote en of trage opslagmedia kan wat tijd in beslag nemen, wees dus geduldig. In deze eenvoudigste vorm maakt mkfs een ext2 bestandssysteem aan op de opgegeven partitie.

Ext2 is echter een verouderd bestandssysteem. Vandaag de dag wordt standaard Ext4, het meest recente Ext bestandssysteem gebruikt. Een Ext4 bestandssysteem maak je aan met:

dany@pindabook:~> sudo mkfs.ext4 /dev/sdb1 -v
[sudo] wachtwoord voor root: 
mke2fs 1.43.8 (1-Jan-2018)
/dev/sdb1 bevat een ext2-bestandssysteem
        aangemaakt op Sat Aug 21 15:36:36 2021
Proceed anyway? (y,N) y
Lijst met bestandssysteemsoorten voor mke2fs.conf: 'ext4'
Bestandssysteemlabel=
Soort besturingssysteem: Linux
Blokgrootte=4096 (log=2)
Fragmentgrootte=4096 (log=2)
'stride'=0 blokken, 'stripe'-breedte=0 blokken
238560 inodes, 954112 blokken
47705 blokken (5.00%) gereserveerd voor systeembeheer
Eerste gegevensblok=0
Maximum aantal bestandssysteemblokken=977272832
30 blokgroepen
32768 blokken per groep, 32768 fragmenten per groep
7952 inodes per groep
Bestandssysteem-UUID: 17629e72-e570-41c9-a1cc-7431c9d291c4
Superblokreservekopieƫn zijn opgeslagen in blokken: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Reserveren van groepstabellen: voltooid                        
Schrijven van inodetabellen: voltooid                        
Aanmaken van journal (16384 blokken): voltooid
Schrijven van superblokken en bestandssysteem-metagegevens: voltooid

Dankzij de -v (--verbose) wordt meer informatie op het scherm weergegeven.

Test

Na het aanmaken van het bestandssysteem kan het geen kwaad te testen of alles naar behoren werkt. Eerst controleren we of het juiste bestandssysteem werd aangemaakt:

dany@pindabook:~> sudo file -sL /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=17629e72-e570-41c9-a1cc-7431c9d291c4 (extents) (64bit) (large files) (huge files)

Daarna kunnen we het bestandssysteem koppelen:

dany@pindabook:~> sudo mount /dev/sdb1 /mnt/

Geen nieuws is goed nieuws. Even kijken wat er op de USB stick staat:

dany@pindabook:~> ls -l /mnt/
totaal 16
drwx------ 2 root root 16384 21 aug 15:46 lost+found

Uit deze informatie blijkt dat we het bestandssysteem voor de root gebruiker gekoppeld hebben.

Met de volgende opdrachten testen we het aanmaken van een map en een bestand, schrijven we tekst naar het bestand en lezen we het bestand terug uit:

dany@pindabook:~> sudo mkdir /mnt/test && cd /mnt/test
dany@pindabook:/mnt/test> sudo touch test.txt
dany@pindabook:/mnt/test> echo "Dit is een eenvoudige test." | sudo tee test.txt
Dit is een eenvoudige test.
dany@pindabook:/mnt/test> cat test.txt 
Dit is een eenvoudige test.
dany@pindabook:/mnt/test> ls -l
totaal 4
-rw-r--r-- 1 root root 28 21 aug 16:00 test.txt
dany@pindabook:/mnt/test> cd
dany@pindabook:~> sudo umount /dev/sdb1

De sudo opdrachten zorgen ervoor dat we bij het aanmaken en schrijven naar bestanden en mappen root rechten krijgen. Na het loskoppelen kan je de USB stick veilig uit de computer halen.

De USB stick als nieuw

USB sticks zijn bij de aankoop meestal met het FAT bestandssysteem geformatteerd. Dit bestandssysteem kan namelijk door alle besturingssystemen standaard gebruikt worden. Met de volgende opdracht formatteer ik mijn USB stick met het FAT bestandssysteem en geef ik er meteen mijn naam aan. Handig als ik hem weer eens op een computer laat zitten:

dany@pindabook:~> sudo mkfs.vfat -n "Dany Pinoy" /dev/sdb1
[sudo] wachtwoord voor root: 
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
dany@pindabook:~> sudo file -sL /dev/sdb1
/dev/sdb1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 8, Media descriptor 0xf8, sectors/track 62, heads 121, hidden sectors 2048, sectors 7632882 (volumes > 32 MB), FAT (32 bit), sectors/FAT 7440, serial number 0xa7db9f97, label: "Dany Pinoy "
mkfs