---
title: Dateisysteme
url: 'https://niklas-stephan.de/de/wiki/software/filesystems'
markdown: 'https://niklas-stephan.de/de/wiki/software/filesystems.md'
lang: de
date: '2026-11-14'
description: 'Dateisysteme BTRFS Davon ausgehend, dass wir das System wie zuvor dokumentiert mit BTRFS formatiert haben: sudo rm -rf /var/lib/docker # Create subvolumes sudo btrfs subvolume create /var/lib/docker sudo btrfs subvolume create /data sudo chown -R handtrixxx: /data sudo btrfs subvolume list / Sna…'
---

# Dateisysteme

## BTRFS

Davon ausgehend, dass wir das System wie zuvor dokumentiert mit BTRFS formatiert haben:

```bash
sudo rm -rf /var/lib/docker

# Create subvolumes
sudo btrfs subvolume create /var/lib/docker
sudo btrfs subvolume create /data

sudo chown -R handtrixxx: /data

sudo btrfs subvolume list /
```

Snapshots konfigurieren mit `sudo crontab -e`:

```bash
# Daily btrfs snapshots at 3:15
15 1 * * * btrfs subvolume snapshot -r /var/lib/docker /var/lib/docker-snap-$(date +\%F)
15 1 * * * btrfs subvolume snapshot -r /data /data-snap-$(date +\%F)

# Cleanup older than 14 days at 3:45
45 1 * * * find / -maxdepth 1 -name "docker-snap-*" -type d -mtime +14 -exec btrfs subvolume delete {} \;
45 1 * * * find / -maxdepth 1 -name "data-snap-*" -type d -mtime +14 -exec btrfs subvolume delete {} \;
```

## ZFS

ZFS kommt mit den meisten Betriebssysteme nicht mit, hat aber eine sehr gute Kompatibilität, z. B. zu Ubuntu.

Um OpenZFS zu installieren:

```bash
sudo apt-get install zfsutils-linux
```

ZFS bringt eigene Fähigkeiten mit, um ein Software-RAID zu definieren – das also direkt mit ZFS machen.

`lsblk` ausführen, um verfügbare disks und deren Basiskonfiguration zu zeigen:

```bash
handtrixxx@handtrixxx / $ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 953.9G  0 disk
├─sda1   8:1    0    32G  0 part [SWAP]
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0 920.9G  0 part /
sdb      8:16   0   7.3T  0 disk
sdc      8:32   0   7.3T  0 disk 
```

Spiegelnden ZFS-Pool anlegen:

```bash
sudo zpool create zfsdata mirror /dev/sdb /dev/sdc

sudo zpool status zfsdata
```

Datasets anlegen:

```bash
sudo zfs create zfsdata/apps
sudo zfs create zfsdata/backup
sudo zfs create zfsdata/downloads
sudo zfs create zfsdata/media
sudo zfs create zfsdata/sources
sudo zfs create zfsdata/temp

sudo chown -R handtrixxx: /zfsdata/apps
sudo chown -R handtrixxx: /zfsdata/backup
sudo chown -R handtrixxx: /zfsdata/downloads
sudo chown -R handtrixxx: /zfsdata/media
sudo chown -R handtrixxx: /zfsdata/sources
sudo chown -R handtrixxx: /zfsdata/temp
```

Job für Snapshots anlegen durch Ausführen von `sudo crontab -e`:

```bash
0 3 * * * zfs snapshot -r zfsdata@daily-$(date +\%F)
30 3 * * * zfs list -t snapshot -o name,creation -Hp | awk -v cutoff=$(date -d '14 days ago' +\%s) '$2 < cutoff {print $1}' | xargs -r -n1 zfs destroy
```

Verifizieren:

```bash
sudo zfs list -t snapshot
```

ZFS-Parameter rekursiv setzen:

```bash
zfs get compression zfsdata
sudo zfs set atime=off zfsdata
```

---

## Navigation

- Parent: [Software](https://niklas-stephan.de/de/wiki/software.md)
- Previous: [Docker](https://niklas-stephan.de/de/wiki/software/docker.md)
- Next: [next.js](https://niklas-stephan.de/de/wiki/software/nextjs.md)
