Linux

Storage

A simple description of the UNIX system, also applicable to Linux, is this: "On a UNIX system, everything is a file; if something is not a file, it is a proces."

Leerdoelen

  • We gaan werken met files en disks
  • We leren dat een disk een bestand is
  • We leren dat een disk partities heeft
  • We leren dat een partitie een bestandssysteem heeft
  • We leren een disk te koppelen aan Linux
  • We leren een disk te ontkoppelen van Linux

Everything is a file

  • Ook apparaten zijn bestanden
  • Devices zijn te vinden in /dev/
  • Bijzondere devices
    • /dev/zero levert nullen
    • /dev/urandom levert random data (binair)
    • /dev/null de bittenbak

Opdracht: Werken met data

Maken van bestanden

  • Zoek uit wat dd doet
  • dd if=/dev/zero of=~/leeg.bin bs=1 count=10
    • Schrijft 10 nullen naar leeg.bin
    • Zoek uit wat bs en count doen
  • dd if=/dev/urandom of=~/data.bin bs=1 count=10

Lezen bestanden

  • hexdump leeg.bin
    • Laat leeg.bin zien
  • hexdump data.bin
  • hexdump data.bin > /dev/null
    • Schrijft de inhoud van data.bin naar /dev/null

Storage devices on Linux

  • /dev/sr0 – CDROM of DVD player
  • /dev/cdrom – CDROM of DVD player
    ls -l /dev/cdrom
  • IDE-harddisks /dev/hdX – hda tot hdzz
  • SCSI-harddisks /dev/sdX – sda tot sdzz
  • SATA en USB maken gebruik van het SCSI subsystem voor hun devices, dus die beginnen ook met sd
  • NVME-drives /dev/nvmeNNNN

VMWare voeg een harddisk toe

  • Selecteer je VM
  • Klik rechts
  • Selecteer: Settings
  • Selecteer: Harddisk
  • Klik: Add
  • Selecteer: Harddisk
  • Klik: Next
  • Selecteer: SCSI
  • Klik: Next
  • Selecteer: Create a new virtual disk
  • Klik: Next
  • Set: 8 GB
  • Wijzig de bestandnaam
  • Klik: Finish
  • Klik: Save

Linux disks

  • Op Linux kunnen we de disk meteen zien
  • Hiervoor gebruiken we het lsblk commando
lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   10G  0 disk
|- sda1  8:1    0    9G  0 part /
|- sda2  8:2    0    1K  0 part
 - sda5  8:5    0  975M  0 part [SWAP]
sdb      8:16   0    8G  0 disk
sr0     11:0    1 1024M  0 rom

Disks & partitions

  • Partitioneren: Het indelen van een disk
  • Partition (mag er ook maar 1 zijn op een disk)
    • Is een container met een file system
  • 2 soorten partition tables:
    • MBR - Master Boot Record
    • GPT - GUID Partion Table

MBR & GPT

  • MBR partities
    • Maximaal 2T
    • Maximaal 4 primaire partities
    • Oplosbaar met extended partities
  • GPT partities
    • Maximaal 9.4 ZB
    • Maximaal 128 primaire partities

MBR - Primary & Logical partitions

  • Primary partitions /dev/sda1,2,3,4
  • Een primary partition kan een extended partition zijn
  • Een extended partition kan logical partitions bevatten
  • Logical partitions /dev/sda5,6,7,8,etc.

Partitioning tools

  • GPT-tools
    • fdisk
    • parted
    • gdisk
    • cgdisk
    • sgdisk
  • MBR-tools
    • fdisk
    • parted
    • cfdisk
    • sfdisk

Check disks

  • We gebruiken fdisk
  • sudo fdisk -l
    • Je ziet nu 2 disks waarvan 1 de nieuwe 8 GB disk is
      • De nieuwe is zonder een Disklabel
  • Vermoedelijk /dev/sdb

Maak partities (1)

  • sudo fdisk /dev/sdb
    • p – print de huidige partitie tabel
    • g – maak een nieuwe lege GPT tabel
    • n – maak een nieuwe partitie
      • Kies: p
        • p - primary
        • e - extended
      • Partitie: 1
      • First sector: 2048
      • Last sector: +1G

Maak partities (2)

  • Vervolg...

    • t - change filesystem type
      • L - geeft lijst van opties
      • Kies: 07
    • p – print de nieuwe partitie tabel
    • w – write en quit (als je klaar bent)

Opdracht

  • sdb2: extended partitie met de rest van de disk
  • sdb5: fat32 - 1,5 GB
  • sdb6: ext4 - 2 GB
  • Hulp:
    • n - nieuwe partitie
    • t - wijzig disk type
    • p - print partitie tabel
    • m - help
    • w - save and quit

File systems

  • De manier waarop bestanden op disk worden opgeslagen
  • En hoe ze terug gevonden kunnen worden
  • Welk bestand is een directory
  • Welk bestand is een normaal data bestand

Ondersteuning

  • Standaard aanwezig (sudo mkfs.<tab><tab>):
    • ext2,3,4 - default filesystems
    • cramfs - compressed ROM fs
    • bfs - SCO filesystem
    • minix - Minix filesystem
  • Te installeren:
    • APFS (Expirementeel)
    • BTRFS
    • DOS FS
    • exFAT
    • ... en nog vele anderen

Ondersteuning extended

  • NTFS en tools om NTFS om te zetten naar BTRFS
  • Ook filesystems die Linux niet kan maken maar wel lezen en/of schrijven
  • Network filesystems (smb (cifs), SSHfs, NFS)
  • CDROM: ISO-9660
  • Etc.

Filesystem maken

  • mkfs.<fstype> <disk-partition>
  • mkfs.ext4 /dev/sdb6

Opdracht

  1. Installeer de tools voor exfat
  2. Formateer sdb1 als exfat
  3. Installeer de tools voor Microsoft fat
  4. Formateer sdb5 als fat32
  5. Check het resultaat met
    lsblk -f

Werken met disks

Mount points

  • Linux heeft geen drive-letters
  • Een disk wordt gemount in (verbonden aan) de directory tree
  • Een disk/partition wordt gekoppeld aan een directory (mount point)

Tijdelijke mount points

  • Tijdelijke mount point voor root: /mnt
  • Mount points per gebruiker:
    • /media/<username>/<uuid>
    • uuid van een disk opvragen met
      sudo blkid
    • Let op rechten voor gebruiker!

Permanent maken van mounts

  • /etc/fstab
    • Entries die altijd gemount worden
  • Dit gebeurt bij het opstarten
  • Voorbeeld:
# <file system>                           <mount point>   <type>  <options>         <dump>  <pass>
UUID=dd353b28-4717-4e06-bfac-f63a4839cb93       /          ext4   errors=remount-ro    0      1

Verwijderen van mounts

  • Het commando om een mount te verwijderen is umount
    • LET OP: umount, dus niet unmount!

Voorbeelden

sudo mount /dev/sdb1 /mnt
sudo cp data.bin /mnt
ls -l /mnt
sudo umount /mnt
sudo mount /dev/sdb5 /mnt
sudo umount /dev/sdb5

Samenvatting

  • We hebben gezien dat disks bestanden (files) zijn
  • We hebben een disk gepartitioneerd
  • We hebben een partitie geformateerd
  • We hebben een partitie gemount en geunmount