Hej,
FreeBSD ist perfekt für die volle Festplattenverschlüsselung geeignet. Ich hatte mir mal Notizen für die Installation von FreeBSD und OpenBSD damitgemacht. Hier ist der FreeBSD Teil. Danach habe ich FreeBSD auf meinem Thinkpad X240 installiert und es hat wunderbar funktioniert.
Ich hoffe, es hilft dir weiter. Partitionsgrößen und Gerätenamen können in deinem Fall natürlich abweichten.
Zuerst ist FreeBSD zu installieren. Dazu das Installationsmedium starten und
dann in das Live-System wechseln. Auf keinen Fall den Standarddialog
zur Installation folgen.
Es werden zwei Partitionen für FreeBSD benötigt. Eine für den Bootcode
und eine für den ZFS Pool. Zusätzlich muß natürlich noch eine EFI
Systempartition erstellt werden.
Zunächst erst ein leere GPT Partitionstabelle erstellen. Die Option -s
bezeichnet das Partitionsschema.
Code:
# gpart create -s gpt ada0
Nun die erforderlichen Partitionen anlegen und dabei genug Platz für
die OpenBSD Installation lassen. Dieses Beispiel verwendet eine SSD mit
168 G Speicherplatz. Die Option -a gibt die Ausrichting (Alignment)
an, -s bezeichnent die Größe der Partition, -t den Typ und -l den
Namen (Label).
Code:
# gpart add -a 4k -s 128k -t freebsd-boot -l freebsd-boot ada0
# gpart add -a 4k -s 80G -t freebsd-zfs -l freebsd-zroot ada0
# gpart add -a 4k -s 8G -t freebsd-swap -l freebsd-swap ada0
Das Partitionsschema sieht nun so aus:
Code:
Index Typ
1 EFI System Partition
2 freebsd-boot
3 freebsd-swap
4 freebsd-zfs
Jetzt muß der Bootcode in die Boot-Partition installiert werden. Die
Option -p gibt an, welcher Bootcode installiert werden soll und -p
gibt an, von welcher Art die Boot-Partition ist, in diesem Fall also
eine ZFS Partition auf einem GPT Laufwerk.
Code:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 ada0
Zunächst muß die Verschlüsselung durchgeführt werden. Dazu müssen
noch die Kernel-Module geom_eli und aesni geladen werden.
Code:
# kldload geom_eli
# kldload aesni
Die Verschlüsselung erfolgt danach mit
Code:
# geli init -b -g -e AES-XTS -l 256 -s 4096 /dev/ada0p4
Anschließend ist die Partition zu enschlüsseln, damit darauf die
Installation erfolgen kann.
Code:
# geli attach /dev/ada0p4
Nach der Eingabe des Kennwortes ist die Partition unter
zugängig. Nun kann darauf der ZFS Pool angelegt werden, der die Dateisystem enthalten
soll. Dazu ist zunächst auf die Ausrichtung auf 4k Sektoren zu achten:
Code:
# sysctl vfs.zfs.min_auto_ashift=12
Hierbei bezeichnet 12 die Ausrichtung auf 4096 Byte Sektoren und 9 die
Ausrichtung auf 512 Byte Sektoren.
Dann kann der ZFS Pool erzeugt werden:
Code:
# zpool create -o altroot=/mnt -O atime=off -m none -f zroot /dev/ada0p4.eli
Der Pool ist jetzt unter /mnt verfügbar. Nun sind die Einhängepunkte
für die Dateisysteme zu erzeugen und zu konfigurieren.
Zunächst sind die Dateisysteme zu erzeugen:
Code:
# zfs create -o mountpoint=none zroot/ROOT
# zfs create -o mountpoint=/ zroot/ROOT/default
# zfs create -o mountpoint=/tmp -o exec=on -o setuid=off zroot/tmp
# zfs create -o mountpoint=/usr -o canmount=off zroot/usr
# zfs create zroot/usr/home
# zfs create -o setuid=off zroot/usr/ports
# zfs create zroot/usr/src
# zfs create -o mountpoint=/var -o canmount=off zroot/var
# zfs create -o exec=off -o setuid=off zroot/var/audit
# zfs create -o exec=off -o setuid=off zroot/var/crash
# zfs create -o exec=off -o setuid=off zroot/var/log
# zfs create -o atime=on zroot/var/mail
# zfs create -o setuid=off zroot/var/tmp
Dann muß der Mount Point für root festgelegt werden:
Code:
# zfs set "mountpoint=/zroot" zroot
Die Rechte für temporäre Verzeichnisse und Dateien sind anzupassen:
Code:
# chmod 1777 /mnt/tmp
# chmod 1777 /mnt/var/tmp
Schließlich ist das Dateisystem für den Systemstart festzulegen:
Code:
# zpool set bootfs="zroot/ROOT/default" zroot
[(CODE]
Der Cache für den Pool muß noch konfiguriert werden:
[CODE]
# mkdir -p /mnt/boot/zfs
# zpool set cachefile="/mnt/boot/zfs/zpool.cache" zroot
# zfs set "canmount=noauto" "zroot/ROOT/default"
Nun kann die Installation beginnen. Dazu sind die Archive des Systems
manuell zu entpacken.
Code:
# cd /mnt
# tar xvJf /usr/freebsd-dist/base.txz
# tar xvJf /usr/freebsd-dist/kernel.txz
# tar xvJf /usr/freebsd-dist/lib32.txz
# tar xvJf /usr/freebsd-dist/ports.txz
# tar xvJf /usr/freebsd-dist/src.txz
Anschließend muß die Grundkonfiguration durchgeführt werden, damit das
neue System korrekt starten kann. Dazu in der Datei /mnt/etc/loader.conf
folgendes eintragen:
Code:
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
vfs.root.mountfrom=”zfs:zroot/ROOT/default”
zfs_load=”YES”
aesni_load=”YES”
geom_eli_load=”YES”
loader_logo="beastie"
und in der Datei /tmp/zfs/etc/rc.conf die Einträge
Code:
zfs_enable="YES"
hostname="dirac"
keymap="de.acc.kbd"
Schließlich ist in der Datei /etc/sysctl.conf folgender Eintrag
vorzunehmen:
Code:
vfs.zfs.min_auto_ashift=12
Abschließend ist noch die Swap-Partition durch folgenden Eintrag in
der Datei /etc/fstab zu konfigurieren:
Code:
/dev/ada0p3.eli none swap sw 0 0
Nun ist das System fast einsatzbereit. Lediglich der UEFI Bootloader
muß noch installiert werden. Das passiert wie foigt. Zunächst muß die
EFI Systempartition vorbereitet und eingehängt werden:
Code:
# newfs_msdosfs /dev/ada0p1
Dann einen temporären Mount Point erzeugen und die Partition dort einhängen:
Code:
# mkdir /tmp/efi
# mount -t msdosfs /dev/ada0p1 /tmp/efi
Nun das Zielverzeichnis für den Bootloader anlegen:
Code:
# cd /tmp/efi
# mkdir -p EFI/BOOT
Nun den UEFI Bootloader vom Installationsmedium in das Zielverzeichnis
kopieren:
Code:
# cp /boot/loader.efi EFI/BOOT/BOOTX64.efi
Die Installation ist nun abgeschlossen und das neu installierte System
kann jetzt gestartet werden. Das Kennwort von root sollte sofort nach
dem Neustart gesetzt werden, denn es ist sonst leer.