{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreid5gucl2olk6dthtx2utcuig2444z5mnfwsxdqcrwy2zaunxdmqve",
"uri": "at://did:plc:nkxz2ojdvmieg2nhphvputvp/app.bsky.feed.post/3mmohfjkashl2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiam35lnfnnwiuupk5s23vpnlkvdtzdxa5qtjwxotaiy6bpyblybru"
},
"mimeType": "image/png",
"size": 632808
},
"description": "ZFS-Snapshots des Notebook-Pools auf eine USB-Platte schieben, die komplett mit geli verschluesselt ist. geli-Init mit AES-XTS-256, ZFS-Pool auf dem entschluesselten Geraet, ein knapper Backup-Workflow per zfs send und der Schluessel-Aufbewahrungs-Hinweis am Schluss.",
"path": "/2015/05/23/freebsd-pc-bsd-backup-zfs-auf-usb-hdd/",
"publishedAt": "2026-05-25T12:15:38.000Z",
"site": "https://www.kernel-error.de",
"tags": [
"Encryption",
"FreeBSD",
"Hardening",
"InfoSec",
"SelfHosted",
"Sysadmin",
"ZFS",
"Differenz zwischen zwei Snapshots übertragen",
"Automatische ZFS-Snapshots",
"ZFS send/recv Fehler beheben",
"Einfach melden."
],
"textContent": "Ein Notebook mit Full-Disk-Encryption verdient auch ein verschlüsseltes Backup. Plan: ZFS-Snapshots per `zfs send` auf eine USB-Platte schieben, die komplett mit `geli` verschlüsselt ist. Schlüssel und Passphrase sicher aufbewahren, fertig.\n\n**Hinweis:** Seit OpenZFS 2.0 (FreeBSD 13+) gibt es native ZFS-Verschlüsselung (`zfs create -o encryption=aes-256-gcm`). Damit entfällt geli als Zwischenschicht. Auf älteren Systemen oder wenn man die gesamte Platte unabhängig vom Dateisystem verschlüsseln will, bleibt geli die richtige Wahl.\n\n### USB-Platte verschlüsseln\n\nPlatte einstecken und per `dmesg` das Device identifizieren, in diesem Fall `da0`. Dann mit `gpart` eine neue GPT-Partitionstabelle anlegen und eine Partition erstellen.\n\ngeli braucht einen Schlüssel aus Zufallsdaten:\n\n\n dd if=/dev/random of=./backup-key bs=256 count=1\n\nMit diesem Schlüssel die verschlüsselte Partition einrichten:\n\n\n geli init -s 4096 -K ./backup-key -l 256 /dev/da0s1\n Enter new passphrase:\n Reenter new passphrase:\n\n Metadata backup can be found in /var/backups/da0s1.eli and\n can be restored with the following command:\n\n # geli restore /var/backups/da0s1.eli /dev/da0s1\n\nPartition öffnen:\n\n\n geli attach -k ./backup-key /dev/da0s1\n Enter passphrase:\n\n### ZFS-Pool anlegen\n\nAuf der geöffneten geli-Partition (`da0s1.eli`) den ZFS-Pool erstellen:\n\n\n zpool create usb-backup /dev/da0s1.eli\n\n zpool list\n NAME SIZE ALLOC FREE CAP HEALTH\n zroot 460G 184G 276G 40% ONLINE\n usb-backup 928G 296K 928G 0% ONLINE\n\n### Backup starten\n\nInitiales Vollbackup per `zfs send -R` (rekursiv, alle Datasets und Snapshots):\n\n\n zfs send -R zroot@auto-2015-05-23-21-00-00 | zfs recv -u usb-backup/notebook\n\nDie Option `-R` sendet alles rekursiv. Die Option `-u` beim Empfänger verhindert, dass die Datasets auf der USB-Platte gemountet werden. Bei allen folgenden Backups muss nur noch die Differenz zwischen zwei Snapshots übertragen werden.\n\n### Platte sicher aushängen\n\nDrei Schritte in der richtigen Reihenfolge:\n\n * Sync erzwingen, alle Daten sicher auf die Platte schreiben\n * ZFS-Pool exportieren\n * geli-Partition schließen\n\n\n\n\n sync\n zpool export usb-backup\n geli detach /dev/da0s1\n\n**Wichtig:** Den Schlüssel (`backup-key`) an einem dritten Ort aufbewahren, weder auf dem Notebook noch auf der Backup-Platte. Ohne Schlüssel und Passphrase sind die Daten nicht wiederherstellbar.\n\nMehr zu ZFS-Backups: Automatische ZFS-Snapshots und ZFS send/recv Fehler beheben. Fragen? Einfach melden.",
"title": "FreeBSD: Verschlüsseltes ZFS-Backup auf USB-Platte mit geli"
}