Erste Schritte mit ZFS auf Linux Ubuntu 20.04 LTS

Ich habe schon länger mit ZFS (an der Oberfläche) zu tun, da ich Privat ein FreeNAS einsetze. Jetzt wollte ich ZFS mal auf Linux einsetzen und testen und was soll ich sagen: Ich bin begeistert!

Dieser Blogeintrag soll einen ersten Einstieg bieten und für mich als Dokumentation dienen ;).

Warum ZFS? Ich habe mir in der Hetzner-Serverbörse einen kleinen Storage-Server für eine Nextcloud geklickt:

  • 2x SSD 512GB (Für Betriebssystem, Webserver und die Nextcloud-Daten)
  • 2x HDD 3TB (Für die abgelegten Daten der Nextcloud)

Installation Grundsystem

Das Grundsystem ist ein Standard Ubuntu 20.04 LTS, welches auf den SSDs (in einer RAID0 Konfiguration) installiert wurde.

Installation und Konfiguration ZFS

Erst mal ZFS installieren:

apt install zfsutils-linux

Nun möchte ich die zwei HDDs (/dev/sda und /dev/sdb) als zfs-mirror installieren:

zpool create storage mirror /dev/sda /dev/sdb

Fertig :). Ab jetzt kann man den Mirror unter /storage/ verwenden.

Da ich den Server zusammen mit ein paar Freunden verwende, möchte ich jedem sein eigenes Dataset. Dataset ist der generische Begriff für ein ZFS-Dateisystem, Volume, Snapshots oder Klone. Jedes Dataset besitzt einen eindeutigen Namen in der Form poolname/path@snapshot. Die Wurzel des Pools ist technisch gesehen auch ein Dataset (Weitere Infos: https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/zfs-term.html)

zfs create storage/[name]

Anstelle von [name] einfach den jeweiligen Namen des Datasets angeben. Jetzt kann optional noch die Kompression aktiviert werden:

zfs set compression=lz4 storage/[name]

lz4 Compression kann ohne größere Geschwindigkeitsverluste für Lesen/Schreiben (bei modernen CPUs) eingesetzt werden. Die Anzeige der Compression-Ratio kann über folgenden Befehl erreicht werden:

zfs get compression,compressratio storage/[name]

Jedes Dataset soll eine quota bekommen:

zfs set quota=1G storage/[name]

Fertig ist die Config. Weitere Informationen könnt ihr hier finden: https://www.42u.ca/2016/11/23/zfs-cheat-sheet/#:~:text=Dataset%20%E2%80%93%20This%20is%20the%20file,on%20top%20of%20the%20zpool.&text=If%20you%20were%20to%20think,you%20would%20use%20a%20zvol.

Automatischen Scrub aktivieren

Bei einem ZFS scrub werden die Festplatten auf Fehler geprüft und eventuelle defekte Dateien repariert. Man sollte den Scrub regelmäßig (etwa einmal im Monat durchführen). Dazu einfach einen einen Eintrag in die Crontab (crontab -e) schreiben:

0 2 1 * * /sbin/zpool scrub files

Der Status des letzten Scrub ist über den Befehl

zpool status

zu erhalten.

Wireguard Logo

Wireguard als Ersatz für openVPN auf Ubuntu 20.04 LTS und Arch Linux

Hallo Zusammen,

da mein openVPN in letzter Zeit performance-Probleme zeigt, habe ich mich dazu entschlossen mir mal Wireguard anzusehen.

Ich persönlich benötige openVPN um all meine Server und Maschinen zu erreichen. Manche davon befinden sich hinter Firewalls oder NAT und openVPN hat da eigentlich schon die perfekte Lösung parat. Da aber jeder von Wireguard schwärmt, wollte ich mir das mal ansehen und was soll ich sagen? Es ist wirklich wirklich einfach!

Das Setup

Was möchte ich erreichen?

+---------+
|         |
|   C01   +--------------------+
|         |                    |
+---------+                    |
                               |
+---------+               +----+----+
|         |               |         |
|   C02   +---------------+   S/C   |
|         |               |         |
+---------+               +----+----+
                               |
+---------+                    |
|         |                    |
|   C03   +--------------------+
|         |
+---------+

Mehrere Clients (C01-C0*) mit variablen oder festen IP-Adressen sollen mit einem Server (S/C) kommunizieren, der eine feste IP-Adresse hat. Der Server ist Server als auch Client, aber dazu komme ich später.

Die Installation

Dieser Schritt ist auf allen Clients als auch Server identisch:

#Ubuntu
apt install wireguard

#Arch
pacman -S wireguard-tools

Das war auch schon die installation. Tatsächlich ist wireguard sehr schlank.

Die initiale Konfiguration

Jeder Client oder Server bei Wiregard bekommt einen Public und Private-Key. Das Key-Paar muss für alle Clients un Server erstellt werden. Dazu auf jedem System mit root in das Verzeichnis /etc/wireguard/ wechseln und folgenden Befehl ausführen:

umask 077 $ wg genkey | tee private.key | wg pubkey > public.key

Bei diesem Befehl werden mit wireguard die keys generiert und die Dateien private.key und public.key geschrieben. Nur root sollte darauf Zugriff haben. Die Quelle für diesen Befehl: https://manpages.debian.org/unstable/wireguard-tools/wg.8.en.html

Die Server Konfiguration

Eine genauere Eklärung zur Konfiguration folgt weiter unten. Auf dem Server muss zunächst das Interface für den Server definiert werden (der [Interface]-Part). Dort wird die private IP-Adresse des Servers, der Private-Key des Servers und weitere Einstellungen wie Port, etc. definiert.

Anschließend muss für jeden Client, der jeweilige Public-Key dem Server bekannt gemacht werden und die IP-Adresse des Clients definiert werden.

ACHTUNG: Der wireguard-Dienst darf bei einer Konfigurations-Änderung nicht laufen und sollte vorher mit systemctl gestoppt werden. Wenn ihr die Anleitung das erste mal durcharbeitet, ist der Server nocht nicht gestartet. Das gilt nur für jede Änderung die ihr nach dem Starten durchführt.

Erstellt die Datei /etc/wireguard/wg0.conf (root:root) mit folgenden Einträgen (natürlich eure einstellungen anpassen:

# Einstellungen für Server S/C
[Interface]
# Private IP-Adresse des Servers
Address = 10.10.0.1
SaveConfig = true
ListenPort = 41194
# Private-Key des Servers (statt ... den PrivateKey-Eintagen)
PrivateKey = ...
# IP-Forwarding innerhalb des VPNs
PostUp = sysctl net/ipv4/conf/%i/forwarding=1

# Einstellunge für Client C01
[Peer]
# Public-Key des Clients, statt ... den Public-Key des Clients eingeben
PublicKey = ...
AllowedIPs = 10.10.0.2/32

# Einstellungen für Client C02
[Peer]
# Public-Key des Clients, statt ... den Public-Key des Clients eingeben
PublicKey = ...
AllowedIPs = 10.10.0.3/32

# Einstellungen für Client C03
[Peer]
# Public-Key des Clients, statt ... den Public-Key des Clients eingeben
PublicKey = ...
AllowedIPs = 10.10.0.4/32

Für jeden weiteren Client muss lediglich ein weiterer [Peer]-Block mit den entsprechenden Keys/IPs definiert werden.

Hinweis: Das erstellte Interface wird den Namen der Konfigdatei haben. In unserem Fall also wg0.

Nun den Server starten:

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0.service

Die Client Konfiguration

Die Client-Konfiguration ist ähnlich zur Server-Konfiguration und sogar noch etwas einfacher.

Beim [Interface]-Part muss der Private-Key des Client eingetragen werden und die zu verwendende IP-Addresse.

Beim [Peer]-Part muss jetzt die Konfiguration de Servers angegeben werden. Also Endpoint (kann die feste öffentliche IP des Servers sein, egal ob ipv4 oder ipv6 oder eine Domain).

Auf allen Clients mit root die Datei /etc/wireguard/wg0.conf mit folgendem (ähnlichen) Inhalt anlegen:

# Einstellungen für Client C02
[Interface]
# Private-Key des Clients, statt ... den Private-Key des Clients eingeben
PrivateKey = ...
Address = 10.10.0.3/32

[Peer]
# Public-Key des Servers, statt ... den Public-Key des Servers eintargen
PublicKey = ...
AllowedIPs = 10.10.0.0/24
# Die feste IP bzw. Domain des wireguard-Servers
Endpoint = vpn.deinedomain.de:41194
PersistentKeepalive = 15

Auch hier wieder den Service starten:

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0.service

Fertig!

Test der Verbindung

Wenn keine Fehler fallen, solltet sich jetzt alle Server und Clients gegenseitig pingen können. Das Interface wird nach einem Neustart automatisch gestartet.

Erklärung der Konfiguration

Nun zur genaueren Erklärung der Konfiguration.

Der PostUP-Part beim Server

Dieser ist nötig, damit sich die Clients und Server gegenseitig sehen. Es handelt sich hierbei um das standard IP forwarding von Linux. In diesem Fall nur für das Interface „%i“ (%i wird automatisch durch den Interface-Namen ergänzt) in unserem Fall wg0.

AllowedIPs

Euch ist sicher aufgefallen, dass sich das Subnet für AllowedIPs beim Server und beim Client unterscheiden. Dies liegt darn, dass AllowedIPs beim Server und beim Client leicht unterschiedlich verwendet wird.

Auf dem Server verhält sich AllowedIPs wie ein Router und gibt an, wohin traffic geroutet werden soll. Es reicht daher /32 (also genau eine IP).

Auf dem Client verhält sich AllowedIPs wie eine access controll Liste. Wenn das Netzwerk dort nicht gelistet ist, wird der ankommende traffic einfach ignoriert. Daher haben wir hier /24 definiert. Es wird also alles von 10.10.0.* akzeptiert.

Reperaturanleitung: Ecovacs Deebot DM82 dreht sich einmal im Kreis, bleibt stehen und piept viermal (4x)

Unser Ecovacs Deebot DM82 hat nach kurzer Zeit im Kreis gedreht, bleibt stehen und piept viermal. Die 4 Warntöne weisen darauf hin, dass es ein Problem mit der Hauptbürste gibt. Eine einfache Reinigung hat keine Lösung gebracht. Mögliche Fehlerquellen:

  • Verschmutze Hauptplaine
  • Verschmutze Führung der Hauptbürste
  • Verschmutzer oder verrutschter Zahnriemen
  • Dreck unter dem Vorderrad

Diese Anleitung eignet sich auch für viele andere Deebot Modelle, die Saugstauberroboter sind alle ähnlich aufgebaut.

Vorderrad prüfen

Das Vorderrad lässt sich relativ leicht heraushebeln. Das Rad ist weiß/schwarz geteilt, da sich unter dem Rad ein Sensor befindet, der durch das Zählen der weißen Abschnitte die richtige Fahrrichtung definiert. Manchmal befindet sich zwischen Sensor und Rad eine Wollmaus, wesswegen der Roboter dann nicht mehr richtig fährt.

Hauptplatine und Zahnriemen

Manchmal reicht die standard Reinigung nicht mehr aus, dann müss das Gerät zerlegt werden. Daher zunächst alle Bürsten und Stuabbehälter entfernen, den Akku vom Stromkabel nehmen (befindet sich unter der Klappe mit Produktaufkleber) und die 6 großen silbernen Hauptschrauben öffnen (nicht die bei den Reifen).

Die Schrauben befinden sich in den Vertiefungen am äußeren Rand.

Danach lässt sich die weiße Abdeckung abheben. Vorsicht: Der Einschaltknopf hängt noch an Kabeln.

Auf das Kabel aufpassen

Um an den Montor (grau unten rechts im Bild) und an den Zahnriemen (schwarzer Kasten rechts am Montor) zu kommen, müssen zunächst die Schrauben der Hauptplatine entfernt werden. Es reicht die Platine leicht anzuheben, es müssen keine Kabel entfernt werden. Damit ässt sich der Saugmotor mit 3 großen Schrauben (die Schrauben sehen aus als hätten Sie eine Beilagscheibe dabei) entfernen. Der Saugmotor mit Luftkanal muss nicht abgesteckt werden und kann auf die Seite gelegt werden.

Nun kommt man an alle Schrauben die das Kunststoffkompartment mit Motor an dem Gehäuse hält. Dazu findet man 4 Schrauben: Zwei bei dem Staubbehälter, eine links neben dem Motor und eine neben dem linken Reifen. Danach kann man ein größeres Kunststoffteil abheben, an dem auch der Motor und Keilriemen angebracht ist. Nun muss die Keilriemenverkleidung mit vier Schrauben gelöst werden.

Der Keilriemen versteckt sich unter der Abdeckung mit vier Schrauben

Und dort sieht man erst wie viel Dreck sich darin befindet. Manchmal befindet sich auch unter dem Metallzahnrad Haare. Wenn dies der Fall ist, müssen außerdem noch die zwei silbernen Schrauben am Motor gelöst werden, das ist aber oft nicht nötig. Das Reinigen und anschließende Zusammensetzen hat unserem Deebot wieder Leben eingehaucht.

Quellen

Bluetooth-Kopfhörer im Dualboot in beiden Betriebssystemen automatisch verbinden

Heute ein kleiner Quicky. Ich fahre seit Neustem ein Dual-Boot (Arch Linux und Windows 10) auf meinem Laptop. Dadurch ergeben sich ungeahnte Problem:

Meine Bluetooth-Kopfhörer Bose Quiet Compfort 35 (QC35) müssen jedes mal neu gepaired werden. Dies liegt dran, dass beim Pairing-Prozess ein 128-Bit Key ausgehandelt wird, welcher zur Verschlüsselung der Bluetooth-Verbindung verwendet wird. Dieser wird natürlich nicht von den verschiedenen Betriebssystemen geteilt.

Wir müssen den Key also beiden Systemen bekannt machen.

Kopfhörer mit Linux pairen

Den Kopfhörer ganz normal mit Linux pairen, damit die Ordner-Struktur angelegt wird und wir später den Key austauschen können. Danach ins Windows booten.

Kopfhörer mit Windows pairen und Key herausfinden

Nun einfach ein pairing der Kopfhörer durchführen. Anschließend findet man mit regedit einen Key unter:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\[Device-ID]

Achtung bei Windows 10 20H2 sind die Keys nur vom System-Account auslesbar. Das heißt, es reicht nicht aus den Registierungs-Editor als Administrator zu öffnen. Es müssen auch Leserechte für Administratoren beim Key hinterlegt werden. Diese können nach dem Auslesen wieder entfernt werden.

Bluetooth-Key im Regedit

Um die richtige Device-ID herauszufinden kann man unter

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices

sich die Namen ansehen und die richtige Device-ID herausfinden. Benötigt wird der 32-Stellige Code (im Bild beginnend mit B8 und endend auf C3; Ein fiktiver Beispielkey: 38B72423E8D2748DC6273744155EF614).

Key unter Arch Linux eintragen

Ich schreibe die Anleitung für Arch-Linux, aber das sollte auch auf anderen Distributionen funktionieren: Unter

/var/lib/bluetooth/00:00:00:00:00:00/00:00:00:00:00:00

die Datei „info“ bearbeiten. Hinweis: Die erste MAC-Adresse ist der Bluetooth-Controller im Laptop, die zweite MAC die vom Gerät. Wenn mehrere MAC-Adressen zu finden sind, sind in der datei „info“ weitere Informationen zum Gerät. So kann man das richtige herausfinden. Nun den Wert

[LinkKey]
Key= 

gegen den Key von Windows austauschen (Ein fiktiver Beispielkey: 38B72423E8D2748DC6273744155EF614) .

Fertig! Nun noch einmal neustarten und anschließend sollten sich die Kopfhörer automatisch auf beiden Betriebssystemen connecten.

Quellenangaben und weitere Hilfen

https://superuser.com/questions/229930/finding-bluetooth-link-key-in-windows-7-to-double-pair-a-device-on-dualboot-com

https://superuser.com/questions/582697/share-bluetooth-device-between-different-windows-os-on-same-machine

LTE-Modem (Dell Wireless 5820e bzw. Intel XMM 7360) unter Arch installieren

Mein neuer Laptop (Dell Latitude 5501) hat unter anderem ein LTE-Modem (Dell Wireless 5820e). Bei näherer Recherche stellt sich raus, es handelt sich um ein Intel XMM 7360 Modem. Leider wird dies allerdings nicht im Linux-Kernel supported, da Intel die Treiber ausschließlich für Windows 10 raus bringt: https://github.com/intel/linux-intel-lts/issues/7

Dieses Issue brachte aber auch die Lösung und diese möchte ich hier beschreiben.

Pakete nachinstallieren

Wir brauchen ein paar Pakte die wir nachinstallieren müssen:

Ich gehe davon aus, dass der Network Manager bereits installiert ist.

Die Lösung: Das Modem vom PCIe-Modus in den USB-Modus bringen

Die Lösung ist hier näher beschrieben beschrieben: https://github.com/abrasive/xmm7360

Einfach das Repo klonen, und xmm2usb ausführen. Anschließend erscheint das Modem in den Netzwerk-Einstellungen.

Leider muss dieser Vorgang derzeit nach jedem Neustart durchgeführt werden. Ich werde hier noch weiter recherchieren. Tipps nehme ich gerne an 🙂

Ein Jahr: One Thing a Week

Vor einem Jahr, bin ich durch einen Freund auf „One Thing a Week“ gekommen. Im Grunde geht es darum, sich pro Woche ein „Ding“ vorzunehmen, es zu machen und Anderen davon zu erzählen. Für 2019 habe ich mir genau das vorgenommen und wollte es ein Jahr durchziehen.

Die Dinge

Fazit

Es hat wirklich Spaß gemacht, jede Woche etwas vorzubereiten und es hat mich auch gezwungen mehr Fotos zu machen und alles zu dokumentieren. Es kamem viel Rückmeldungen. Es gab einige Likes und Nachfragen, aber am tollsten fand ich immer $menschen die mich privat auf meine Aktionen angesprochen haben… Und das waren sehr viele. Ich kann jeden nur ermutigen, sowas auch zu machen. Man muss nicht jeden Tag etwas posten und fast immer hat man pro Woche ein Ding, das man vorstellen kann.

Die Fotos

Hier noch ein paar Eindrücke der $Dinge.

Dualboot mit Windows 10 (Bitlocker) und Arch Linux (LUKS Container)

Na da hab ich mir ja mal wieder was vorgenommen. Das neue Business-Notebook meines neuen Arbeitgeber ist eingetroffen. Leider komme ich bei meinem Arbeiten nicht um Windows 10 herum, aber ich kann es mir nicht nehmen lassen mir ein Linux auf der Kiste zu installieren.

Aufgrund von Sicherheitsrichtlinien müssen beide Systeme verschlüsselt sein. Windows 10 mit Bitlocker (AES 256-bit) und Arch Linux mit einem AES 512-bit LUKS-Container.

Die Konfiguration

Das Windows 10 kommt mit einer 250 GB Partition bereits von meiner IT. Daher muss ich lediglich das Linux installieren ohne das Windows zu zerstören.

Die Konfiguration der Festplatte

Auf die Festplatte kommt (bzw. ist) eine UEFI Partition (Bootloader). Von dort kann man dann entweder ins Windows booten oder in einen verschlüsselten LUKS Container mit Arch Linux und einer kleinen SWAP-Partition.

Vorbereitung

Bitlocker deaktivieren

Zunächst muss Bitlocker deaktiviert werden. Leider habe ich keine Informationen, warum das so ist, nur „das Internet“ berichtet sonst von Problemen. Mit Admin-Rechten kann man das ganz einfach im Windows erledigen. Bitlocker kann danach wieder aktiviert werden.

SATA Operation auf AHCI stellen

Damit Linux die Platte erkennt und die Geschwindigkeit der SSD vollumfänglich ausgenutzt werden kann, muss im BIOS die SATA Operation auf AHCI gestellt werden. Unter Dell unter „System Configuration“ -> „SATA Operation“ -> „AHCI“

ACHTUNG: Ist das Windows 10 bereits vorinstalliert und wurde dieses mit „RAID on“ installiert, muss das Windows erst für AHCI vorbereitet werden, ansonsten startet das Betriebssystem nicht mehr. Dazu wie folgt vorgehen (vgl. https://mauriceneumann.de/ahci-modus-nachtraeglich-in-windows-10-aktivieren/):

  1. BIOS zunächst nicht umstellen und z.B. im „RAID on“ Modus belassen
  2. Windows 10 starten
  3. Eingabeaufforderung (cmd.exe) als Administrator öffnen
  4. Abgesicherten Modus mit folgenden Befehl aktivieren: bcdedit /set {current} safeboot minimal
  5. PC neustarten
  6. Beim Neustart ins BIOS wechseln (Oft mit der Taste Entf oder F2)
  7. Wechsel von IDE oder RAID on auf den AHCI Modus. Einstellung speichern
  8. Windows 10 wird jetzt im abgesicherten Modus gestartet
  9. Eingabeaufforderung (cmd.exe) als Administrator öffnen
  10. Abgesicherten Modus mit folgenden Befehl beenden: bcdedit /deletevalue {current} safeboot
  11. PC neustarten
  12. Der AHCI Modus ist jetzt aktiviert

Hinweis für Thunderbolt Docking Stationen

Mein Dell Latitude 5501 hat eine WD19TB Dockingstation welche mit Thunderbolt angeschlossen wird. Diese wurde nach der Umstellung auf AHCI nicht mehr erkannt. Die Lösung: Im BIOS muss das Security Level auf „none“ gestellt werden.

Das Security Level muss aber für Linux sowieso herabgesetzt werden, da sonst Geräte an der Dockingstation nicht erkannt werden, bzw. alle Geräte am Thunderbolt nicht erkannt werden (vgl. https://eischmann.wordpress.com/2017/06/29/thunderbolt-security-levels-and-linux-desktop/).

Secureboot deaktivieren

Eine Installation von Arch Linux mit USB-Stick mit Secureboot ist zwar möglich. Es wird aber nicht empfohlen (vgl. https://wiki.archlinux.de/title/UEFI_Installation). Es können wohl auch weitere Probleme auftreten.

Installations-Medium erstellen

Und natürlich müssen wir auch noch Linux irgendwie installieren können. Daher brauchen wir einen leeren USB Stick und ein Arch-Image. Image herunterladen und dann mit DD auf einen leeren USB-Stick schreiben:

 dd bs=4M if=path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

(https://wiki.archlinux.org/index.php/USB_flash_installation_media#BIOS_and_UEFI_bootable_USB) Danach kann der USB-Stick angesteckt werden und (meistens) mit F12 beim Systemstart (temporäres Bootmedium einstellen) davon gebootet werden.

Installation von Arch Linux im LUKS Container

Eine Linux-root-Konsole sollte am Bildschirm erscheinen. Im Grunde ist alles im sehr ausführlichen Arch Wiki beschrieben. Leider sind die einzelnen Artikel aber teilweise leicht versteckt und es gibt Diskrepanzen zwischen den Übersetzungen. Einige Punkte sind nur im deutschen Wiki beschrieben, Anderes nur im englischen Wiki. Ich halte mich gerne an den Beginners guide: https://wiki.archlinux.org/index.php/Installation_guide

Ab jetzt folgt eine Kurzzusammenfassung. Im Beginners Guide ist alles ausführlicher Beschrieben.

Deutsches Tastaturlayout laden:

loadkeys de-latin1

Freien Speicherplatz partitionieren

Zunächst kann mit dem Befehl

fdisk -l

eine Übersicht geschaffen werden. Wie Windows die Partitionen angelegt hat. Bei mir ist eine 1TB NVME Festplatte verbaut bei der Windows drei Partitionen angelegt hat:

  • /dev/nvme0n1p1: EFI System – Die Partiton für den UEFI Bootloader
  • /dev/nvme0n1p2: Microsoft reserved – Reservierter Speicher für Sicherungsdaten von Microsoft
  • /dev/nvme0n1p3: Microsoft basic data – Die C-Partition für Windows 10

Damit sind 250GB belegt und es bleiben noch 750GB für Linux. Mit

gdisk /dev/nvme0n1

können die weiteren Partitionen angelegt werden. Die Wichtigsten Befehle:

p      # Print der aktuellen Tabelle
o      # Neue Tabelle anlegen
n      # Neue Partition erstellen
w      # Schreibe Tabelle auf die Festplatte

Da wir nur eine Partition für den LUKS-Container brauchen (siehe Bild oben) reicht es, wenn wir eine neue Partition über die restlichen 750GB des Speichers erstellen:

n [Enter]
Partition number (default 4): [Enter]
First sector: [Enter]
Last sector: [Enter]
Hex code or GUID: 8E00 (Für Linux LVM) [Enter]
p (Um nochmal alles anzuzeigen)
w (schreiben der Tabelle auf die Festplatte)

Mit „p“ kann man sich jetzt nochmal die gesamte Tabelle anzeigen lassen. Eine vierte Partition für Linux LVM sollte angelegt worden sein. Mit „w“ kann die Tabelle auf die Festplatte geschrieben werden.

Verschlüsselten LUKS Container mit LVM anlegen

Nun erstellen wir den verschlüsselten Container auf /dev/nvme0n1p4 mit LUKS.
Mehr Infos: https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS
Mehr Infos zu cryptsetup: https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption#Encryption_options_for_LUKS_mode

Die soeben angelegte Partition unter /dev/nvme0n1p4 wird nun verschlüsselt. Dazu können verschiedene Algorithmen und Schlüssellängen gewählt werden. Welche Algorithmen auf dem System am schnellsten funktionieren, kann mit einem Benchmark ermittelt werden:

cryptsetup benchmark

In meinem Fall fällt die Auswahl auf aes-xts-plain64 mit 512-bit Schlüssellänge:

cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/nvme0n1p4

Nun einfach der Anweisung auf dem Bildschirm folgen. Bitte sicherstellen, dass auch die richtige Partition ausgewählt wird, da LUKS alles verschlüsselt. Anschließend muss der Container wieder geöffnet werden und auf LVM gemapped werden.

# Öffnet verschlüsselten Cotainer wieder und mapped auf "lvm"
cryptsetup open --type luks /dev/nvme0n1p4 lvm

Mit dem Befehl „lsblk“ kann man Prüfen ob alles geklappt hat.

LVM innerhalb des LUKS-Containers erstellen

Wir haben zwar jetzt einen (offenen) verschlüsselten Container, haben darin aber noch kein LVM. Dieses wird mit den folgenden Befehlen erstellt:

vgcreate main /dev/mapper/lvm       # Erstelle Volume Group auf /dev/mapper/lvm mit Namen "main"
lvcreate -L 32G main -n swap        # Erstelle 32GB SWAP
lvcreate -l 100%FREE main -n root   # Erstelle root mit Rest

Achtet bitte beim letzten Befehl darauf: Ein kleines „-l“ kein „-L“. Zum Swap: Ich halte mich nach wie vor daran: 2x RAM-Größe = SWAP-Größe. Mit dem Befehl „lsblk“ kann man wieder Prüfen ob alles geklappt hat.

Filesystem erstellen

Jetzt fehlt nur noch das Filesystem auf den innerhalb des Containers erstellten Partitionen:

mkfs.ext4 /dev/mapper/main-root
mkswap /dev/mapper/main-swap

Festplatten mounten

Nun müssen lediglich die Partitionen an der richtigen Stelle gemounted werden und die Installation kann beginnen:

mount /dev/mapper/main-root /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/mapper/main-swap

Ab jetzt kann mit https://wiki.archlinux.org/index.php/Installation_guide#Installation fortgefahren werden, bis man zum Kernel kommt (Befehl mkinitcpio -P).

Hooks für Linux-Kernel anpassen

Folgende Datei muss angepasst werden: /etc/mkinitcpio.conf

HOOKS="base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown"

Die Reihenfolge ist dabei extrem wichtig! Danach folgenden Befehl ausführen:

mkinitcpio -p linux

systemd bootctl konfigurieren (ehemals Gummiboot)

Zunächst müssen zwei Pakete nachinstalliert werden

pacman -S lvm2 dhcpcd

Diese sind später wichtig für ein funktionierendes Internet und der entschlüsselung des lvm. Näheres zu den Folgenden Befehlen ist hier zu finden: https://wiki.archlinux.de/title/UEFI_Installation#systemd_bootctl_.28ehemals_Gummiboot.29

Nun bootctl auf die EFI-Partition installieren

bootctl install

Anschließend die Datei /boot/loader/entries/arch-uefi.conf mit folgendem Inhalt erstellen:

title    Arch Linux
linux    /vmlinuz-linux
initrd   /initramfs-linux.img
options  cryptdevice=/dev/nvme0n1p4:main root=/dev/mapper/main-root lang=de locale=de_DE.UTF-8

Außerdem noch den Fallback anlegen: /boot/loader/entries/arch-uefi-fallback.conf

title    Arch Linux Fallback
linux    /vmlinuz-linux
initrd   /initramfs-linux-fallback.img
options  cryptdevice=/dev/nvme0n1p4:main root=/dev/mapper/main-root lang=de locale=de_DE.UTF-8

Nun noch die Datei /boot/loader/loader.conf bearbeiten und folgende Einträge anpassen/ergänzen:

default   arch-uefi 
timeout   3

Damit wird lediglich festgelegt, welches der Default ist und wie viele Sekunden (timeout) gewartet wird.

Das wars! Jetzt kann Linux gestartet werden.

Bitlocker wieder aktivieren

Bitlocker kann nun im Windows wieder aktiviert werden. Achtung: Es kann vorkommen, dass Bitlocker eine neue Partition anlegt. Dadurch verschiebt sich der LUKS Container (z.B. von nvme0n1p4 auf nvme0n1p5 und Linux könnte nicht mehr starten wollen mit dem Fehler „Not a valid LUKS container“. Dazu muss dann die Konfiguration /boot/loader/entries/arch-uefi.conf bzw. /boot/loader/entries/arch-uefi-fallback.conf nochmal angepasst werden.

Wandern in Schottland

Zusammen mit zwei Freunden war ich 3 Wochen in Schottland um dort mit Zelt und Rucksack das Land zu bereisen. Ich bin wiedermal viel zu spät dran, um alle Eindrücke auf „Papier“ zu bringen, aber dafür gibts ein paar Anekdoten und viele Bilder vom Wandern in Schottland.

Anreise mit der Bahn

Dank der Überzeugungskraft von einer der Mitreisenden, sind wir mit dem Zug von Regensburg nach London gefahren. Zunächst zu den Fakten:

  • Kosten: Insgesamt hat die Bahnreise 238,80 € pro Person gekostet. Ist man realistisch und rechnet die Kosten für extra Gepäck, Bahnreise zum/vom Flughafen, etc. mit ein, kämen wir mit dem Flugzeug auf einen vergleichbaren, wenn nicht etwas günstigeren Preis.
  • Zeit: Das ist wohl der Knackpunkt. Die Reise hat 12 Stunden (pro Richtung) gedauert. Wenn ich hier realistisch bin, hätte diese mit dem dem Flugzeug wohl 5-6 Stunden gedauert. Im Vergleich zum fliegen, war es hier aber tatsächlich deutlich entspannter.
Thematisch passend waren wir natürlich auch beim „Harry Potter Zug“. Sind damit aber leider nicht gefahren 😉

Zusammenfassend würde ich beim nächsten Mal wahrscheinlich wieder mit dem Zug fahren. Lediglich die Reservierung der Züge und das Buchen der Tickets war ein absoluter Graus! Hier haben wir nach längerer Recherche dann loco2.com kennengelernt. Eine gute Seite mit gutem Interface. Deutlich besser als bahn.de und am Ende haben wir dann doch wieder Bahn.de-Tickets erhalten ;).

Die Menschen und das Land

Kennengelernt haben wir viele Menschen. Sowohl Engländer als auch Schotten und hatten auch mit der schottischen Polizei zu tun. Natürlich kann ich nur von den Menschen sprechen die ich kennengelernt habe, aber irgendwie hatten alle Engländer einen leichten Schlag. So wurde uns z.B. empfohlen zu behaupten wir kämen aus Frankreich, weil uns sonst alle hassen würden (war natürlich nicht der Fall).

Die Schotten wiederum kann man sehr schön mit den Bayern vergleichen. Klingen komisch, kleiden sich komisch, sind manchmal etwas grummelig, aber doch irgendwie ganz herzlich wenn man sie mal kennenlernt. Grundsätzlich aber deutlich entspannter! So trägt die Schottische Polizei nicht mal Schusswaffen mit der Begründung, die Waffengesetze seien so streng, dass die Gegenseite meisten auch nichts anderes hätte ;).

Blick auf Loch Lomond

Das Land war einfach nur unglaublich. Sowohl in Schottland (vor allem die Highlands!) als auch England (hier sind die Nationalparks sehr zu empfehlen) bietet wunderschöne Hotspots. Die schönsten Orte waren allerdings mindestens einen Tagesmarsch von der Zivilisation entfernt.

Bothys und das Hinterland

Die schönste Tour war allerdings die 3-Tagestour ins Hinterland von Schottland. Die Reise führte uns auf den zweithöchsten Berg Schottlands, zum schönsten Loch in Schottland und anschließend auf einer traumhaft schönen Tour zurück in die Zivilisation. Das besondere: Wir waren mindestens eine Tagestour von der Zivilisation entfernt. In der Nacht zuvor hat unser Zeit einen Riss bekommen und das ganze hat mich ein wenig auf den Boden der Wirklichkeit zurück geholt: Haben wir wirklich an alles gedacht? Was wenn sich jemand was bricht/etwas passiert? Wir waren aber tatsächlich gut ausgerüstet. Das Zelt kam dank Bothys nicht zum Einsatz und die fehlende Zivilisation hat allen so unendlich gut getan.

Eine winzige Bothy auf der 3-Tages-Tour

Bothys haben wir tatsächlich erst einen Tag vor der Reise kennengelernt: Ein kostenloses Hüttensystem in Schottland von dem quasi keiner weiß. Niemand darf in einer Bothy abgewiesen werden, niemand kann dir aber garantieren, dass ein Platz frei ist. Die Bothys sind völlig unterschiedliche. Es gibt sie mit mehreren Stockwerken und Kunst an der Wand oder auch nur ein Raum und statt Plumpsklo einen Spaten. So eine sieht man im Foto oben. Wir hatten das Zelt immer dabei, sollten wir mal keinen Platz bekommen, aber wir hatten immer Glück.

Wir wollen die Bilder sehen!

Jaja hier kommen sie auch schon 🙂

Bonuslevel: Verschlusssysteme

Als kleinen Bonus gibts eine kleine Auswahl von Verschlusssystemen von Türen/Toren und Zäunen in Schottland. Im Gegensatz zu England waren in Schottland quasi alle Türen und Tore unverschlossen. Und in der Form und Ausprägung der Verschlusssysteme sind die Schotten wirklich kreativ geworden. Das hat mir gefallen :).

Chaos Communication Camp 2019: Licht vs. Staub

Man kommt nach 9 Tagen Chaos Communication Camp nach Hause und ist irgendwie noch immer nicht ganz in der normalen Welt angekommen. Es war einfach unglaublich. Die Lichter, die Farben, die Menschen die man kennen lernen durfte! Und alles bedeckt mit einer leichten Staub-/Dreckschicht ob des heißen Wetters.

Irgendwie fällt es mir gerade noch etwas schwer, das erlebte in Worte zu fassen. Es gibt viel zum nachdenken und überlegen und 1000 neue Ideen. Es war wunderschön! Nun genug der gestammelten Worte und Kamera ab für ein paar Eindrücke.

Moskau – Rammstein, Metro und die Katzen

tl;dr: Moskau & Rammstein waren genial! Unten sind die Bilder!

Was war denn das? Eigentlich ging es nur wegen eines Kurztrips (4 Tage) nach Moskau, angefühlt hat es sich aber wie 2 Wochen. Eine traumhaft schöne Stadt, tolle Menschen, Katzen (!) und Rammstein. Besser gehts fast nicht :).

Moskau und die Metro

Zuerst mal: Wie toll ist denn bitte diese Metro? Wir sind am Weißrussischen Bahnhof vom Flughafenexpress angekommen (extrem pünktlich) und sind direkt in die Ubahn (Metro): Ticketverkauf gestaltet sich extrem einfach. Nicht wie in Deutschland erst mal die Zone festlegen, oder den Tag oder den Aszendenten Jupiters sondern eines der folgenden Möglichkeiten wählen:

  • Einfache Fahrt (55 Rubel, 0,80 €)
  • Tagesticket (auch für mehrere Tage, 3 Tage ~240 Rubel)
  • Gruppenticket

Das wars. Super einfach zu bestellen, mega günstig und auch ohne Russisch einwandfrei möglich :). Und dann kommt man in diese Metro und traut seinen Augen nicht mehr! Kunst, wunderschöne Wandarbeiten und alles blitzeblank.

Es war einfach ein Traum. Alle zwei Minuten fuhr eine UBahn, das System ist leicht verstanden und man kann sich quasi nicht verlaufen. Sowas wünscht man sich in jeder Großstadt.

Katzen-Café perfekt umgesetzt

Ich möchte gar nicht so viel über Moskau erzählen, das kann man in jedem Reiseführer nachlesen. Eine Sache fand ich aber schön und das Konzept war zumindest mir neu: Sogenannte Anti-Cafés: Orte an denen man nicht für die Dienstleistung oder das Produkt bezahlt sondern für die Zeit die man dort verbringt. Perfekt umgesetzt im Anti-Café Котокафе „Котофейня“ Einem Katzencafé.

Als wäre die Vorstellung Katzen streicheln zu können nicht schon gut genug, verfolgt das Café auch noch ein geniales Konzept:

Die etwa 20-24 Katzen werden aus Tierheimen/Sheltern geholt. Es sind zumeist Katzen die dort keine neue Familie gefunden haben, weil Sie zu dünn, krank, verletzt o.Ä. sind. Im Café haben die Katzen dann ein schönes Leben, werden versorgt und von vielen Menschen gestreichelt. Wenn sie darauf keinen Bock haben, sind die Rückzugsmöglichkeiten zahlreich vorhanden. Möchte ein Besucher einer Katze ein neues Zuhause geben muss er durch eine art „Check“ (ich habe an dieser Stelle nicht genau nachgefragt) und kann dann die Katze adoptieren. So wurden schon über 100 Katzen vermittelt. Geniale Idee!

Rammstein!

Argh! Was für eine Band. Natürlich ist die Musik speziell, das muss nicht allen gefallen. Aber diese Show? Ich habe selten noch nie etwas imposanteres gesehen.

Auch hier will ich weniger über die Show reden, da lasse ich die Fotos reden. Das Drum-Herum war allerdings schon etwas anders als in Deutschland: Überall (!!) Hundertschaften (!!) von „Polizisten“. Ich verwende Anführungszeichen, da nicht sofort ersichtlich war, dass es sich um Polizei handelt, ich hatte eher den Eindruck, es würde sich um das Militär handeln.

Das hinterlies zumindest ein komisches Gefühl. Später wurden die Polizisten als Wegeleitsystem zurück zur Metro verwendet. Hier habe ich eigentlich erwartet, dass wir zumindest eine Stunde warten müssten, da gerade 50000 Menschen dort hin strömen. Pustekuchen! Alles Reibungslos, alles ohne Problem und warten.

Fotos

Und jetzt Schluss mit dem Gequatsche und endlich kommen wir zu den Fotos.