# Einführung in Linux
YALC - Yet Another Linux Course
Author: Daniel Schubert

# LINUX

### Das universelle Betriebssystem

Eine Einführung - Teil 9

Deutsche Angestellten Akademie

Frage: Fragen zur letzten Stunde?

## Systemverwaltung

## Part 7 - Dateisysteme Fortsetzung

Partitionen mit systemd mounten
`/etc/systemd/system/mnt-backups.mount`

    [Unit]
    Description=Mount System Backups Directory

    [Mount]
    What=/dev/disk/by-uuid/86fef3b2-bdc9-47fa-bbb1-4e528a89d222
    Where=/mnt/backups
    Type=ext4
    Options=defaults

    [Install]
    WantedBy=multi-user.target

    systemctl start mnt-backups.mount

    systemctl status mnt-backups.mount

Mount Units müssen heissen wie das mount point Verzeichnis.:
`/mnt/backups -> mnt-backups.mount`
die Jungs das mache nlassen

#### ISO Mounten - Bootstick machen

Aufgabe:

- Ladet das aktuelle DVD Image von Knoppix herunter.
- http://www.knopper.net/knoppix/
- Verifiziert den Download anhand der sha1 checksum.

-     sha1sum -c datei.sha1

- Mountet es im Verzeichnis ~/knoppix.

-     sudo mount -o loop .....

Erstellt einen Bootbaren USB-Stick aus dem Image mit `dd`

    sudo dd if=KNOPPIX.iso of=/dev/USBSTICK bs=2MB status=progress

ACHTUNG: Ziel überprüfen!!1!

Versucht ob der Bootstick bootet ;-)

https://wiki.archlinux.de/title/Image-Erstellung_mit_dd

#### quota

- Beschränkung von :
  - Speicherplatz
  - Anzahl der Dateien
- per User oder per Group

Übung: Einrichten von Quotas auf einem isolierten Dateisystem

    sudo apt-get install quota

Verzeichnisse erstellen

    sudo mkdir /quota
    sudo mkdir -p /usr/disk-img

Erstellen einer 20 MB grossen Datei.
Dient als isoliertes Dateisystem.

    sudo dd if=/dev/zero of=/usr/disk-img/disk-quota.ext3 count=40960

dd benutzt eine block size von 512 bytes. 40960*512=20971520.

    ls -lh /usr/disk-img/disk-quota.ext3

Formatieren der Datei als ext3

    sudo mkfs -t ext3 -q /usr/disk-img/disk-quota.ext3 -F

in die /etc/fstab

    /usr/disk-img/disk-quota.ext3    /quota ext3    rw,loop,usrquota,grpquota  0 0

mounten

    sudo mount /quota

prüfen

    grep 'quota' /proc/mounts

    mount | grep '/quota'

Gruppe erstellen, Benutzer hinzufügen

    sudo groupadd quotagrp
    sudo usermod -aG quotagrp USERNAME

Verzeichnis erstellen, Rechte setzen

    sudo mkdir -p /quota/share
    sudo chown -R root.quotagrp /quota/share
    sudo chmod 2775 /quota/share

    ls -ld /quota/share
       drwxrwsr-x  2 root quotagrp 1024 Jul 19 15:16 /quota/share/
             ^---------- beachtet das s, setgid bit, von chmod 2775

Damit die neuen Rechte wirksam werden muss der betr. User neu angemeldet werden, oder:

    su - USER

2 Dateien als quota konfiguration erstellen : aquota.group aquota.user

    sudo quotacheck -cug /quota

Quota bearbeiten:

    sudo edquota -f /quota USER

    Disk quotas for user USER (uid 500):
      Filesystem   blocks   soft   hard  inodes soft  hard
      /dev/loop0        0    100    200       0   10    15

Quota einschalten:

    sudo quotaon

Quota prüfen:

    sudo quotaon -p -a

Dateien anlegen:

    ~$ for i in $(seq 20); do  touch "/quota/share/file_$i"; done

    ~$ sudo quota USER

    ~$ sudo repquota /quota

#### Was für Dateisysteme gibt es denn jetzt??

Wir nutzen heutzutage sog. journaling Filesysteme.
Jede Operation wird in das „Journal“ geschrieben, ausgeführt, anhand des Journals überprüft.
Erlaubt schnelle Konsistenzprüfung nach zB Stromausfall.

einige Dateisysteme sehen regelmässige Überprüfung beim Systemstart vor. Passiert nach einer gewisse Anzahl von mounts ( einstellbar mit `tune2fs` )

    sudo tune2fs -l /dev/sda1 | egrep -i 'check|mount count'

fsck nur mögl. bei ausgehängten Partitionen. Erzwinge Prüfung d. Systempartition bei Start mit Datei `/forcefsck`

#### Dateiysteme

- ext2, ext3, ext4
  - Ext4 max. Dateigrösse: 16 TByte
  - Ext4 max. Partitions-Grösse: 1024 PByte
- btrfs
  - Snapshots
  - Internes RAID
  - grösse lässt sich im Betrieb ändern
  - Subvolumes
  - Datei-Kompression
  - Copy-on-Write: geänd. Daten werden als Kopie geschrieben
  - max 16 Exabyte
- xfs - speziell für sehr grosse Dateien
- zfs - gilt als Maßstab; aktuell Lizenz Probleme.

#### windows / OSX

- fat32 / vfat - gebr. für SD-Karten / USB Sticks
- exfat - weiterentw. v. vfat - Linux ben. Treiber
- ntfs - Windoes..
- hfs - OS X - Linux kann lesen, schreiben nur wenn journaling aus

#### CD / DVD

- iso9660
- udf - häufig bei DVDs

#### Netzwerkdateisysteme

- nfs - Network File System; nur Linux
- smbfs / cifs - Windows- und Samba-Freigaben
- sshfs - Einbindung über SSH erreichbarer Verz.
- coda - wie NFS; selten

#### Spezielle Linux Dateisysteme

- devpts - /dev/pts/* Pseudeo Terminals ( PTY ); emulieren serielle Schnittstelle
- proc u. sysfs
  - /proc/ -> der Kernel
  - /sys/ -> Zusammenhänge zw. Kernel und Hardware
- tmpfs - Datenaustausch zw. Programmen

#### swap

Kann auch eine Datei sein:

    dd if=/dev/zero of=/swapfile count=1024
    mkswap /swapfile 1000
    sync
    swapon -v /swapfile
    cat /proc/swaps

#### Andere

- squashfs -> Read Only FS
- loop -> Adapter um gewöhnliche Datei wie eine Block-Device anzusprechen. zB um ein iso zu mounten
- unionfs / aufs /mhddfs -> erlaubt Dateisysteme transparent zu „stapeln“
- verschlüsselte Dateisysteme

`cat /proc/filesystems`

    man mkfs

    mkfs.ext4 /dev/sdXX

Kommentar zu Dual-Boot Systemen:

Windoes stop ggfls. in einem Schnellstart-Zustand.

Bei Schreib-Zugriff auf Windoes Partition aus Linux kann inkonsistentes Win-Dateisystem die Folge sein.

Windoes vorher komplett runterfahren!

#### RAID

##### Redundant Array of Independent Disks

Wikipedia RAID