Cue Column


  • Partitions

  • Mounting of Drives

Action Items for Self


  • list my partitions

  • [ ]

  • [ ]

Questions


  • What is a Partition ?

  • What about the Layering ?

  • What is UEFI ?

  • Was ist FS ?

Action Items for Others


  • [ ]

  • [ ]

  • [ ]

Partitions and File Systems


Drives and Capacity - Examples

DriveBandwidth (read)CapacityEUR/GB
Hard disk drive1 GB/s12 TB0.01
Solid state drive6 GB/s1 TB0.05
Secure digital memory card150 MB/s128 GB0.20
USB memory stick80 MB/s256 GB0.20

Logical Layering

  • Device : Device stellt nur RAW Blöcke von Speicher bereit

  • Partition Table : Teilt das Gerät in logische Stücke ein

    • Die Partitionstabelle sagt: „Von Block 0 bis 100.000 ist Partition 1, von 100.001 bis … ist Partition 2 usw.“

  • Partition : Ist wie ein virtuelles Laufwerk innerhalb des Gerätes

    • An Ihr wird ein DateiSystem angehängt.

    • Voteil : Trennung verschiedener Zecke : ( / , /var, /home )

  • FileSystem : Innerhalb einer Partition organisiert das OS selbst die Daten

    • wie etwa : Verzeichnisse, MetaDaten, Dateien

    • Beispiele : ext4, NTFS, FAT32

Partitions: Design Decision for First PC Systems

  • 4 Main Partitions : C, D, E, F (32 MB Restrictions in 1987)

  • Today : Slowly getting replaced by UEFI / GPT

UEFI - Unified Extensible Firmware Interface

  • EFI : 1998

  • UEFI : April 2011

  • GPT : GUID Partition Table

Important

GUID → Global unique Identifier

  • Kann bis zu 8 Milliarden Terrabyte adressieren

  • Hat ein Eigenes Mini-OS, es kann beispielsweise FirmWare installieren

Partition vs. File System

  • Partitions unterteilen Speicher von :

    • Hard Disk

    • Floppy Disks

    • CDROMs

    • RAMDISK

Important

Ein File System Organisiert die Partition, wir haben ein FileSystem/ Partition

FreeBSD Device Naming - SKIP

Linux Device Naming

  • /dev/hda : first drrive, first IDE controller

  • /dev/sda : first drive, first SATA/SCSI controller

    • first partition : /dev/sda1

    • second partition : /dev/sda2

  • /dev/sdb2 : second drive

    • first partition : /dev/sdb1

    • second partition : /dev/sdb2

Important

Mittels dmesg können wir checken welche devices bei dem boot menu gefunden werden.

FreeBSD GPT Device and Partition Naming - SKIP

File System - FS

Welche Eigenschaften hat ein File System ?

  • ”lebt” innerhalb einer Partition

  • mapped die Directory-Baum Struktur und Dateien auf die Festplatte.

  • Hier gibt es Inodes (Meta Daten) und Files/Verzeichnisse (Daten)

  • Maximale FS Größe, Maximale Datei Größe, Crash Recovery

Typen von File Systems : FreeBSD vs Linux

FreeBSD

  • UFS - UNIX File System, FFS - Berkeley Fast FileSystem

  • ext2fs

Linux 🐧

  • ext2 : Standard Linux File System

  • ext3 : journaling extension of ext2

  • ext4 : extension of ext3

Show supported FS types

ls -l /sbin/mount_*

Was ist Partitioning ?

Vorteile :

  • Unterteilter Speicher

  • Kontrollierte Subsysteme

Nachteile :

  • Fixe Größe

  • Jede Partition muss konfiguriert werden

Wie vorgehen beim Partitioning ? 🔪

  • Sollte mit Vorsicht konfiguriert werden

  • Der System Kernel sollte nicht von Benutzer I/O beeinträchtigt werden

  • swap sollte mindestens so groß sein wie RAM

  • /var sollte mindestens so groß sein wie RAM

Was ist Mounting ? 🧗‍♂️

Ein DateiSystem ist erstmal nur eine Partition des Speichers. Um darauf zugreifen zu können, müssen wir es erstmal in den Verzeichnisbaum anhängen. Das nennen wir mounten.

Grundsätzlich wird immer beim boot gemountet.

Important

In Linux gibt es keine Laufwerkbuchstaben wie C: oder D:. Alles “hängt” in einem Baum : /

Was ist ein Mount Point ? ⛰️

Ein Mount Point is ein leeres Verzeichnis, dass wir in unser DateiSystem anhängen.

Beispiel aus den Folien:

  • /dev/ada0p2 ist deine Root-Partition mit /, /usr, /etc, /home, /tmp.

  • /dev/ada0p3 enthält User-Daten (dweber, kratschmer, …).

  • Wenn du /dev/ada0p3 auf /home mountest, dann „ersetzt“ es das /homeVerzeichnis in deinem Verzeichnisbaum.

Wie mountet man ?

Befehle

  • Mounten:

    bash
    CopyEdit
    mount /dev/ada0p6 /tmp

    /dev/ada0p6 wird im Verzeichnis /tmp eingebunden.

  • Unmounten:

    bash
    CopyEdit
    umount /tmp

    → hebt die Verbindung auf (aber nur, wenn das FS gerade nicht benutzt wird).

Important

👉 Bildlich gesprochen:

  • Stell dir den Dateibaum als Haus vor.

  • Jede Partition ist ein extra Raum.

  • Mit mount baust du eine Tür ein, die diesen Raum zugänglich macht.

  • Ohne Mount ist der Raum da, aber keine Tür führt hinein.

  • Mittels /etx/fstab kann man automatisch mounten.

  • WE SHOULD NOT UNMOUNT A **FS** IN USE

FileSystems on a RAMDISK

Important

Ein RAMDISK ist ein DateiSystem, welches nicht auf einer Festplatte sondern im RAM liegt.

Vor und Nachteile von RAMDISK

Da Daten nicht auf Festplatten liegen : sehr schneller zugriff , Daten sind nach Reboot gelöscht.

Speicher Kommandos df vs du

Important

Mittels des Kommandos df - dist free ist es möglich, die verwendeten Partitions und die jeweiligen Informationen darüber anzusehen. Mit du - disk usage kann man sehen, wie viel Speicher Dateien und Verzeichnisse benutzen.

  • df schaut auf die ganze Partition / Mountpoint.

  • du schaut auf die Inhalte innerhalb des Dateisystems.

The Root File System

Important

In Linux ist das Root Verzeichnis - / das oberste Directory.
Es enthält :

  • wichtige Directories,

  • System configs,

  • shared libs,

  • admin commands

Welche DIrecotries enthält root - / ?

  • /bin → essentielle User-Kommandos (ls, sh)

  • /sbin → System-Admin-Kommandos (shutdown, init)

  • /lib → wichtige Shared Libraries (z. B. libc.so)

  • /etc → Konfigurationsdateien (passwd, fstab, rc)

  • /dev → Geräte-Dateien (/dev/ada0)

  • /boot → Kernel und Module

  • (/proc) → Prozessinformationen (Pseudo-Filesystem)

Was ist mit /var , /usr , /home , /tmp ?

Diese Directories werden in das Root Verzeichnis - / gemountet.

The Boot Problem

Important

Das OS kümmert sich um Prozesse, I/O, Speicher und DateiSysteme.

ABER : Um selbst geladen zu werden, braucht es schon I/O und DateiSysteme.

Booting

  • BIOS/UEFI → startet Hardware, lädt MBR/GPT.

  • Boot Manager (MBR/GPT) → wählt Partition/OS.

  • Boot Loader (Partition) → lädt Kernel aus dem Dateisystem.

  • Kernel → startet Grundfunktionen, ruft init.

  • /sbin/init → startet Dienste über /etc/rc.

  • Login Prompt → Text oder GUI (GDM, KDM …).

Important

Boot ManagerBoot LoaderKernelinitDiensteLogin

Was ist MBR/GPT ?

MBR/GPT-Sektor 0 = erster Sektor der Platte, der beim Booten geladen wird.

  • MBR: enthält direkt den Boot Manager.

  • GPT: enthält Schutz-MBR + Verweis auf GPT-Daten.

Warum hat GPT den MBR ersetzt ?

  • MBR kann nur bis 2TB adressieren

  • GPT unterstützt bis zu 8 Milliarden TB

  • MBR : Typischerweise nur 4 Partitionen

  • GPT : unbegrenzt (Typisch : 128)

Starting to Boot - Boot Manager

  • BIOS : Basic I/O System (Firmware im ROM/EEPROM/Flash)

    • Initialisiert Hardware

    • Sucht die Boot-Disk

  • Liest den MBR/GPT-Sektor 0 (die ersten 512 Bytes).

  • Dort liegt der Boot Manager (z. B. GRUB bei Linux, boot0 bei FreeBSD, Windows Boot Manager).

    • Der Boot Manager ist oft sehr klein → Nur ein Menu

Boot Manager / Boot Loader

  • A Boot Manager ist OS- unabhängig (Bei MBR/GPT)

  • A Boot Loader ist OS-spezifisch

    • The Boot Manager on MBR/GPT loads boot loader

    • Ein Boot Loader kann Datei Systeme lesen, und den Kernel finden.

Starting Kernel

  • Initialisiere Device Drivers

  • Erkenne Typ von root Deteisystem

  • mount root filesystem read–only

  • start process /sbin/init with PID=1

  • init: /etc/rc, rc = resource configuration

THE FOLLOWING ARE SKIPPED IF NOT HIGHLIGHTED :

/sbin/init

/etc/rc

/etc/rc, the original idea

/etc/rc configuration (1)

/etc/rc configuration (2)

Problem: Dependencies between Services

/etc/rc, Enhanced Version

/etc/rc, SYSVINIT Version

Startscripts (1)

each daemon/service has a start script

  • checks configuration files

  • determines if service may be started

  • starts service (usually in /usr/sbin)

  • Muss auch die Kontrolle über Shutdown des Service übernehmen

  • Sollte die Parameter : start, stop, restart, reload, status implementieren

Startscripts (2, FreeBSD, NetBSD)

  • Jedes StartScript ist in /etc/rc.d zu finden.

  • Es zeigt auf ein Service welches gestarter werden soll

Summaries


Important