dev0
Rock Hopper
Ich möchte die tolle Beschreibung von franco98 zur Installation von NetBSD auf UEFI System um die Festplattenverschlüsselung ergänzen. Ich habe auf meinem Thinkpad X270 NetBSD 8.1 und 9.0 RC1 nach der folgenden Anleitung erfolgreich installiert:
Anlegen der Partitionen
Es werden mindestens drei Partitionen benötigt.
1. EFI System Partition
2. NetBSD root Partition
3. NetBSD CGD Partition
NVMe Geräte heißen unter NetBSD ld?, d.h ld0 für das erste Gerät, usw.
NetBSD braucht eine unverschlüsselte root-Partition. Alles andere kann
in den verschlüsselten CGD Container installiert werden.
Nach dem Anlegen der Partitionen sieht das Layout etwa so aus:
Anschließend kann das root Dateisystem erzeugt werden:
Erzeugen des CGD
Zunächst muß die root Partition temporär eingehängt werden:
Dann muß das Zielverzeichnis für die Krypto-Konfiguration anlegt werden:
Anschließend wird die Krypto-Konfiguration erzeugt:
Nun kann der Krypto-Bereich geöffnet und ein Kennwort festgelegt werden:
In diesem Beispiel wird das Gerät cgd0 angelegt und initialisiert. Nun können die
entsprechenden Partitionen darauf erzeugt werden.
Folgendes Layout wurde für das Beispiel gewählt:
und dieses Layout für die Dateisysteme konfiguriert:
Anschließend müssen die Datensysteme erzeugt und der Swap Space initialisiert werden:
Installation des Systems
Nun müssen die neuen Dateisystem in das Installationsverzeichnis eingehängt werden:
Jetzt kann die eigentliche Installation erfolgen:
In das Installationsverzeichnis wechseln und chroot aufrufen:
Devices erstellen:
Die EFI Partition vorbereiten:
und den Boot-Code dorthin kopieren:
Die Datei /boot.cfg wie folgt anpassen:
Nun kann der Bootsektor geschrieben werden:
Konfiguration
Anschließend muß die rc.conf angepaßt werden:
Besonders wichtig ist die CGD Konfiguration, da sonst die Partition beim
Start nicht entschlüsselt wird. Dazu muß zusätzlich folgende Datei /etc/cgd/cgd.conf erstellt werden:
Damit das System nach dem Start ein deutsches Tastaturlayout hat, muß folgendes Eintrag in der Datei
/etc/wscons.conf vorgenommen werden:
Das Kennwort für das Entschlüsseln des CGD muß allerdings leider mit US Layout eingegeben werden, da
zu diesem Zeitpunkt das Tastaturlayout noch nicht konfiguriert ist.
Außerdem wird natürlich noch eine fstab benötigt. Sie würde so aussehen:
Dafür müssen noch die Verzeichnisse /proc und /kern manuell angelegt werden:
Nun kann das installierte System neu gestartet werden. Nach dem
Neustart erfolgt nun eine Kennwortabfrage. Erst nach Eingabe des beim
Anlegen des CGD gewählten Kennwortes wird das System vollständig
hochgefahren.
Anlegen der Partitionen
Es werden mindestens drei Partitionen benötigt.
1. EFI System Partition
2. NetBSD root Partition
3. NetBSD CGD Partition
NVMe Geräte heißen unter NetBSD ld?, d.h ld0 für das erste Gerät, usw.
NetBSD braucht eine unverschlüsselte root-Partition. Alles andere kann
in den verschlüsselten CGD Container installiert werden.
Nach dem Anlegen der Partitionen sieht das Layout etwa so aus:
Code:
dkctl ld0 listwedges
dk0: EFI System
dk1: NetBSD root
dk2: NetBSD encrypted
Anschließend kann das root Dateisystem erzeugt werden:
Code:
newfs -O2 /dev/dk1
Zunächst muß die root Partition temporär eingehängt werden:
Code:
mount /mnt
Code:
mkdir -p /mnt/etc/cgd
Code:
cgdconfig -g -i encblkno8 -o /mnt/etc/cgd/dk2 aes-cbc 256
Code:
cgdconfig -V re-enter cgd0 /dev/dk2 /mnt/etc/cgd/dk2
entsprechenden Partitionen darauf erzeugt werden.
Code:
disklabel -i cgd0
Code:
# /dev/rcgd0:
type: cgd
disk: cgd0
label: fictitious
flags:
bytes/sector: 512
sectors/track: 2048
tracks/cylinder: 1
sectors/cylinder: 2048
cylinders: 261120
total sectors: 534773760
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
7 partitions:
# size offset fstype [fsize bsize cpg/sgs]
b: 67108864 0 swap # (Cyl. 0 - 32767)
d: 534773760 0 unused 0 0 # (Cyl. 0 - 261119)
e: 419430400 67108864 4.2BSD 0 0 0 # (Cyl. 32768 - 237567)
f: 8388608 486539264 4.2BSD 0 0 0 # (Cyl. 237568 - 241663)
g: 39845888 494927872 4.2BSD 0 0 0 # (Cyl. 241664 - 261119)
Code:
Filesystem Size Used Avail %Cap Mounted on
/dev/dk1 241M 122M 107M 53% /
/dev/cgd0f 3.9G 106M 3.6G 2% /var
/dev/cgd0e 197G 1.9G 185G 1% /usr
/dev/cgd0g 18G 19M 17G 0% /home
kernfs 1.0K 1.0K 0B 100% /kern
ptyfs 1.0K 1.0K 0B 100% /dev/pts
procfs 4.0K 4.0K 0B 100% /proc
tmpfs 3.9G 0B 3.9G 0% /var/shm
Code:
newfs -O2 /dev/cgd0e
newfs -O2 /dev/cgd0f
newfs -O2 /dev/cgd0g
swapon /dev/cgd0b
Installation des Systems
Nun müssen die neuen Dateisystem in das Installationsverzeichnis eingehängt werden:
Code:
mount /dev/cgd0e /mnt/usr
mount /dev/cgd0f /mnt/var
mount /dev/cgd0g /mnt/home
Code:
cd /mnt
for pkg in base comp etc games kern-GENERIC man misc modules text xbase xcomp xetc xfont xserver ; do \
xz -dc /amd64/binary/sets/$pkg.tar.xz | tar -xvf - ; done
In das Installationsverzeichnis wechseln und chroot aufrufen:
Code:
chroot /mnt
Code:
cd /dev
./MAKEDEV all
Die EFI Partition vorbereiten:
Code:
mkdir /mnt/efi
mount /dev/dk0 /mnt/EFI
Code:
cp /usr/mdec/*.efi /mnt/EFI/efi/boot/
Code:
hd0b:netbsd
hd0b:netbsd -s
Code:
installboot /dev/rdk1/usr/mdec/bootxx_ffsv1
Konfiguration
Anschließend muß die rc.conf angepaßt werden:
Code:
rc_configured=YES
cgd=YES
wscons=YES
Start nicht entschlüsselt wird. Dazu muß zusätzlich folgende Datei /etc/cgd/cgd.conf erstellt werden:
Code:
#
# Configuration of cryptographic disk devices
#
cgd0 /dev/dk2
/etc/wscons.conf vorgenommen werden:
Code:
encoding de
Das Kennwort für das Entschlüsseln des CGD muß allerdings leider mit US Layout eingegeben werden, da
zu diesem Zeitpunkt das Tastaturlayout noch nicht konfiguriert ist.
Außerdem wird natürlich noch eine fstab benötigt. Sie würde so aussehen:
Code:
#
# /etc/fstab
#
/dev/dk1 / ffs rw,log 1 1
/dev/cgd0b none swap sw,dp 0 0
/dev/cgd0e /usr ffs rw,log,noatime 1 2
/dev/cgd0f /var ffs rw,log,noatime 1 2
/dev/cgd0g /home ffs rw,log,noatime 1 2
#
kernfs /kern kernfs rw
ptyfs /dev/pts ptyfs rw
procfs /proc procfs rw
tmpfs /var/shm tmpfs rw,-m1777,-sram%25
#
# End fstab
#
Code:
mkdir /proc
mkdir /kern
Neustart erfolgt nun eine Kennwortabfrage. Erst nach Eingabe des beim
Anlegen des CGD gewählten Kennwortes wird das System vollständig
hochgefahren.