Linux Mint auf ZFS Mirror booten

Linux Mint ZFS Mirror Installation: Schritt-für-Schritt Anleitung

Voraussetzungen

  • USB-Stick mit Linux Mint ISO (mindestens 4GB)
  • Zwei identische Festplatten für den ZFS Mirror
  • Mindestens 4GB RAM (8GB empfohlen)
  • Backups aller wichtigen Daten
  • UEFI-fähiges System (empfohlen)

1. BIOS-Vorbereitung

  1. Starten Sie das BIOS/UEFI-Setup
  2. Aktivieren Sie UEFI-Boot
  3. Deaktivieren Sie Secure Boot
  4. Stellen Sie sicher, dass beide Festplatten erkannt werden
  5. Setzen Sie USB als ersten Boot-Device

2. Live-System vorbereiten

# System booten und Terminal öffnen

# ZFS Pakete installieren
sudo apt update
sudo apt install zfsutils-linux zfs-initramfs

# Optional: Performance-Monitoring Tools
sudo apt install htop iotop

3. Festplatten vorbereiten

# Identifizieren Sie Ihre Festplatten
ls -l /dev/disk/by-id/

# Ersetzen Sie in allen folgenden Befehlen YOUR_DISK1 und YOUR_DISK2 
# mit Ihren tatsächlichen Disk-IDs, z.B.:
# ata-Samsung_SSD_850_EVO_1TB_S2RBNX0H123456B
DISK1=/dev/disk/by-id/YOUR_DISK1
DISK2=/dev/disk/by-id/YOUR_DISK2

# Partitionstabellen erstellen
sudo sgdisk --zap-all $DISK1
sudo sgdisk --zap-all $DISK2

# Partitionen erstellen
# 1. EFI (512M)
# 2. Boot (2G)
# 3. Root (Rest)
sudo sgdisk -n1:1M:+512M -t1:EF00 $DISK1
sudo sgdisk -n2:0:+2G -t2:BF01 $DISK1
sudo sgdisk -n3:0:0 -t3:BF01 $DISK1

# Partition-Layout auf zweite Platte kopieren
sudo sgdisk -R $DISK2 $DISK1
sudo sgdisk -G $DISK2

4. ZFS-Pools erstellen

# Boot-Pool erstellen
sudo zpool create -f -o ashift=12 \
    -o autotrim=on \
    -O acltype=posixacl \
    -O canmount=off \
    -O compression=lz4 \
    -O devices=off \
    -O normalization=formD \
    -O relatime=on \
    -O xattr=sa \
    -O mountpoint=/boot \
    bpool mirror \
    ${DISK1}-part2 \
    ${DISK2}-part2

# Root-Pool erstellen
sudo zpool create -f -o ashift=12 \
    -o autotrim=on \
    -O acltype=posixacl \
    -O canmount=off \
    -O compression=zstd \
    -O dnodesize=auto \
    -O normalization=formD \
    -O relatime=on \
    -O xattr=sa \
    -O mountpoint=/ \
    rpool mirror \
    ${DISK1}-part3 \
    ${DISK2}-part3

5. ZFS Datasets erstellen

# Datasets für Boot-Pool
sudo zfs create -o canmount=off -o mountpoint=none bpool/BOOT
sudo zfs create -o canmount=on -o mountpoint=/boot bpool/BOOT/mint

# Datasets für Root-Pool
sudo zfs create -o canmount=off -o mountpoint=none rpool/ROOT
sudo zfs create -o canmount=on -o mountpoint=/ rpool/ROOT/mint

# Datasets für Benutzer-Daten
sudo zfs create -o canmount=off -o mountpoint=none rpool/DATA
sudo zfs create -o canmount=on -o mountpoint=/home rpool/DATA/home
sudo zfs create -o canmount=on -o mountpoint=/root rpool/DATA/root

# Datasets für System-Daten
sudo zfs create -o canmount=on -o mountpoint=/var rpool/DATA/var
sudo zfs create -o canmount=on -o mountpoint=/var/log rpool/DATA/var_log
sudo zfs create -o canmount=on -o mountpoint=/var/spool rpool/DATA/var_spool
sudo zfs create -o canmount=on -o mountpoint=/var/tmp rpool/DATA/var_tmp

6. EFI-Partitionen vorbereiten

# EFI-Partitionen formatieren
sudo mkfs.fat -F 32 -n EFI ${DISK1}-part1
sudo mkfs.fat -F 32 -n EFI2 ${DISK2}-part1

# EFI-Partition mounten
sudo mkdir -p /boot/efi
sudo mount ${DISK1}-part1 /boot/efi

7. Linux Mint Installation

  1. Starten Sie den Linux Mint Installer
  2. Wählen Sie „Something else“ bei der Partitionierung
  3. WICHTIG: Markieren Sie die vorhandenen ZFS-Datasets, aber führen Sie KEINE Formatierung durch
  4. Wählen Sie das root Dataset (rpool/ROOT/mint) als / (ohne Formatierung)
  5. Setzen Sie den Bootloader auf die erste Festplatte (${DISK1})
  6. Führen Sie die Installation durch, aber BRECHEN SIE VOR DEM NEUSTART AB

8. Chroot und Systemkonfiguration

# In das neue System chrooten
sudo mount -o bind /dev /target/dev
sudo mount -o bind /proc /target/proc
sudo mount -o bind /sys /target/sys
sudo chroot /target

# ZFS in initramfs aufnehmen
echo "zfs" >> /etc/modules

# GRUB für ZFS konfigurieren
echo 'GRUB_CMDLINE_LINUX="root=ZFS=rpool/ROOT/mint"' >> /etc/default/grub

# Update initramfs und GRUB
update-initramfs -c -k all
update-grub

# GRUB auf beide Platten installieren
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=mint ${DISK1}
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=mint ${DISK2}

# ZFS Cache erstellen
zpool set cachefile=/etc/zfs/zpool.cache rpool
zpool set cachefile=/etc/zfs/zpool.cache bpool

# Chroot verlassen
exit

9. System starten

  1. Fahren Sie das System herunter
  2. Entfernen Sie den USB-Stick
  3. Starten Sie neu

10. Nach dem ersten Start

# ZFS Status überprüfen
zpool status
zfs list

# ZFS Trim aktivieren
sudo zpool trim rpool
sudo zpool trim bpool

# Automatische Snapshots einrichten (optional)
sudo apt install zfs-auto-snapshot

# ZFS Performance optimieren
echo "options zfs zfs_arc_max=$(( $(grep MemTotal /proc/meminfo | awk '{print $2}') * 1024 * 4 / 10 ))" > /etc/modprobe.d/zfs.conf

Wartung und Monitoring

Regelmäßige Überprüfungen

# Wöchentlicher Scrub
sudo zpool scrub rpool
sudo zpool scrub bpool

# Status überprüfen
zpool status -v

# Speicherplatz überprüfen
zfs list

Snapshots verwalten

# Manuellen Snapshot erstellen
sudo zfs snapshot rpool/DATA/home@datum

# Snapshots auflisten
zfs list -t snapshot

# Zu Snapshot zurückkehren
sudo zfs rollback rpool/DATA/home@datum

Troubleshooting

Pool importieren

# Falls der Pool nicht automatisch importiert wird
sudo zpool import -f rpool
sudo zpool import -f bpool

Boot-Probleme

  1. Von Live-System booten
  2. Pools importieren:
sudo zpool import -f rpool
sudo zpool import -f bpool
  1. Chroot durchführen und GRUB neu installieren

Wichtige Hinweise

  • Erstellen Sie regelmäßig Backups
  • Überwachen Sie den ZFS-Status regelmäßig
  • Führen Sie System-Updates vorsichtig durch
  • Behalten Sie genug freien Speicherplatz (mindestens 20%)