Schritte zum Installieren von WSL2 Linux Debian Edition auf einem Windows-Rechner (Windows 10)

Windows PowerShell als Administrator starten (Run as Administrator)

wsl --install Debian

 

 Wenn dies mit einer Fehlermeldung "WslRegisterDistribution failed with error: 0x80370102" abbricht, dann fehlt noch der Eintrag unter "Windows Features" - dort "Virtual Machine Platform Windows" aktiv schalten.

Eventuell fehlt auch der Eintrag im BIOS, dass Virtualisierung nicht eingeschaltet (enabled) ist. Bei AMI Bios könnte das unter Avanced > SVM Mode > Enabled gesetzt werden.

Jetzt einen Benutzer-Namen eintragen nach der Installation sobald dies aufgefordert wird, z.B.

Enter new UNIX username: felix
New password: ****
Retype new password: ****
passwd: password updated successfully
Installation successful

Jetzt möchte man vielleicht einen ssh-Server laufen lassen, der vielleicht von Außen erreichbar ist...

Im Debian-Fenster einmal die momentane Version aktualisieren (updaten) mit:

sudo apt update
sudo apt upgrade

Jetzt kann man den SSH-Server installieren mit:

sudo apt install openssh-server

Wenn man die Standard-Optionen möchte kann man gleich den Service starten mit:

sudo service ssh restart

Hier sind meine Notizen die bei der Installation eines Linux-Systems auf einem EeePC 1018P von Asus entstanden sind.

Ziel war:

Verschlüsselung der neuen SSD-Platte (habe eine Samsung SSD 850 PRO mit 256 GB eingebaut), damit niemand bei Verlust oder Diebstahl des Notebooks an meine Daten kann.

BTRFS - Filesystem, mit dem riesen Vorteil, automatische Snapshots zu machen, Dateien beim Kopieren zu deduplizieren und vieles vieles mehr.

Notwendig dafür ist ein schlankes Linux mit aktuellem Linux-Kernel, damit das BTRFS auch auf dem aktuellen Stand ist. Bei Linux Mint Debian Edition (hatte ich vorher installiert) oder Ubuntu sind die BTRFS-Werkzeuge nicht aktuell und ich hatte den Kernel und BTRFS-Tools deshalb immer separat kompiliert und installiert. Die Wahl fiel auf Arch Linux.

Etwas Handarbeit ist deshalb beim Installieren dieser Distribution schon von Nöten, grundlegende Linux-Kenntnisse sind auch wichtig und man lernt Feinheiten von Linux so richtig gut kennen.

Arch Linux Installation

Aktuelle CD als ISO herunterladen unter: http://archlinux.org/download/

Zum Installieren auf dem Netbook wird ein USB-Stick verwendet (ein 1GB-Stick ist völlig ausreichend). Einfach den USB-Stick in eine USB-Buchse des Linux-Rechners einstecken und den Stick mit der heruntergeladeten ISO-Datei folgendermaßen herstellen:

Zum Feststellen des Gerätenamens: $> lsblk

Hier bei uns stellen wir fest, dass der Gerätenamen (Device) /dev/sdb lautet.

Die ISO kann jetzt einfach mit dd auf den Stick geschrieben werden (unetbootin o.ä. funktionieren nicht!):

$> dd if=archlinux*.iso of=/dev/sdb

Jetzt vom USB-Stick booten, beim Asus EeePC 1018P kann einfach während des Bootvorgangs die ESC-Taste gedrückt werden (ohne einen Ausflug ins BIOS zu machen) und das Medium (USB-Stick) ausgewählt werden. Das Arch-Linux-Startmenü erscheint. - Da das Netbook einen 64-bit-Atomprozessor besitzt kann die 64-bit-Version gewählt werden "x86_64". Der EeePC 1018P hat eine CPU N550 (1.5G) mit 2 Kernen. Wenn man sich unsicher ist, dann kann im Archlinux-Menu bei Hardware Information (HDT) nachgesehen werden ob unter > Processor > x86_64 der jeweilige Prozessor 64-bit verarbeiten kann. Wenn, ja dann kann mit Boot Arch Linux (x86_64) ein 64-bit-System installiert werden, ansonsten Boot Linux (i686) nur ein 32-bit-System. [2014-09-23: Arch Linux 3.16.1-1-ARCH (tty1) bootet.]

Erste Einstellungen (Tastatur etc.)

Um die deutsche Tastatur einzustellen (übliche Tastatur in Deutschland, Österreich) - Achtung, zur Eingabe von y die z-Taste bzw. für – das ß drücken::

root@archiso ~ # loadkeys de-latin1

Wichtig ist jetzt eine Internetverbindung damit wir richtig arbeiten können (hier WLAN-Anbindung):

root@archiso ~ # iw dev | grep -i interface

Notieren des WLAN-Adapters:

wlp2s0

(Seit der Version v197 von systemd bzw.udev wird das Interface nicht mehr als wlan0, eth0, usw. benannt) - Interface wird jetzt eingeschaltet mit:

root@archiso ~ # ip link set wlp2s0 up

Jetzt kann das Wifi-Netz gescannt werden, welche Netzwerke sind vorhanden:

root@archiso ~ # iw dev wlp2s0 scan | grep SSID

Wähle ein Netzwerk aus und mit Hilfe des WPA2-Schlüssels kann der wpa_supplicant gestartet werden. Zwischen '<' und '(' kein Leerzeichen eingeben:

root@archiso ~ # wpa_supplicant -B -i wlp2s0 -c <(wpa_passphrase "WifiNet" "mypassword4WifiNet")

Jetzt kann der DHCP-Dämon gestartet werde - Voraussetzung: Im Netz existiert ein DHCP-Server (meist das Wifi-Modem).

root@archiso ~ # dhcpcd wlp2s0

Jetzt müsste eine erste Internet-Verbindung funktionieren:

root@archiso ~ # ping -c 3 8.8.8.8

Ein weiterer Test folgt mit Namensauflösung (DNS funktioniert):

root@archiso ~ # ping -c 3 www.f0x.at

Partitionieren und Crypt einrichten

Die vorhandene Festplatte muss in zwei Partitionen eingeteilt werden, da zum die Boot-Partition nicht verschlüsselt sein darf. Wir haben hier eine 250 GB SSD-Platte und teilen diese in 2 Partitionen ein

  1. Partition /dev/sda1 mit 250 MB (ID 83 Linux) für die /boot - Partition
  2. Partition /dev/sda2 mit den restlichen Sektoren, etwa 238,2 GB

Hierbei ist zu beachten, dass zum Partitionieren der Platte ein relativ junges Partitionierungswerkzeug verwendet wird, damit die erste Partition auf Sektor 2048 startet. Wir erreichen dadurch eine höhere Schreibperformance, da aktuelle SSDs interne Seitengrößen von 4096 oder 8192 Bytes haben. Siehe auch http://www.thomas-krenn.com/en/wiki/Partition_Alignment .

Erstellt mit:

root@archiso ~ # cfdisk /dev/sda
/dev/sda1  2048  514047  51200  250M 83 Linux
/dev/sda2  514048  500118191  499604144  238.2G 83 Linux

Die Boot-Partition darf nicht verschlüsselt werden, wir formatieren diese:

root@archiso ~ # mke2fs -L BOOT /dev/sda1

Crypt - Partition

Verwendung findet AES-XTS-plain64 mit SHA 512 Bit auf der zweiten Partition:

root@archiso ~ # cryptsetup -c aes-xts-plain64 -y --hash sha512 -s 512 -i 5000 luksFormat /dev/sda2

Eingabe einer Passphrase - ein wirklich gutes Passwort!

Dann wird das Crypt-Gerät das erste Mal aufgeschlossen mit:

root@archiso ~ # cryptsetup open /dev/sda2 crypt

Jetzt gibt es ein Gerät (device) mit dem Namen /dev/mapper/crypt das als root-Device verwendet werden kann.

BTRFS erstellen

Die gesamte verschlüsselte Partition bekommt jetzt das BTRFS-Filesystem aufgesetzt:

root@archiso ~ # mkfs.btrfs -L CRYPT /dev/mapper/crypt

Mit dem Werkzeug btrfs filesystem show kann man sich das erstellte Filesystem ansehen.

Das Laufwerk wird jetzt ins System eingebunden, d.h. wir erstellen das künftige root-Wurzelverzeichnis mit:

root@archiso ~ # mount -o noatime /dev/mapper/crypt /mnt

Nun werden mehrere BTRFS-Subvolumes und Verzeichnisse erstellt

root@archiso ~ # cd /mnt
root@archiso /mnt # mkdir __snapshot
root@archiso /mnt # btrfs subvolume create __active && cd __active
root@archiso /mnt/__active # btrfs subvolume create home
root@archiso /mnt/__active # cd /
root@archiso / # umount /mnt
root@archiso / # mount -o noatime,compress=lzo,ssd,space_cache,subvol=__active /dev/mapper/crypt /mnt
root@archiso / # mkdir -p /mnt/boot
root@archiso / # mount /dev/sda1 /mnt/boot

Installieren des Basis-Systems sowie wichtigen Programmen

Mit dem Arch-Paket-Manager pacman und dem anschließenden chroot geht das recht einfach:

root@archiso / # pacstrap /mnt base base-devel btrfs-progs grub zsh iw b43-fwcutter wpa_supplicant wireless_tools wpa_actiond

Alternative, wenn kein Wireless benötigt wird:

root@archiso / # pacstrap /mnt base base-devel btrfs-progs grub zsh 

Die Datei fstab wird auf dem System eingerichtet:

root@archiso ~ # genfstab -L -p /mnt >> /mnt/etc/fstab

Kontrolle, ob alles richtig eingerichtet ist:

root@archiso ~ # cat /mnt/etc/fstab

Ab mit CHROOT in das neue BTRFS-System unter Verwendung der zsh-Shell:

root@archiso ~ # arch-chroot /mnt /bin/zsh

Editiere locale.gen und kommentiere die Zeile aus: en_DK.UTF-8 UTF-8

archiso# nano /etc/locale.gen

Nach dem Auskommentieren (entfernen des #-Zeichens bei der obigen Zeile) wird mit folgendem Befehl das System lokalisiert. Entsprechende Sprachdateien werden erstellt.

archiso# locale-gen

Da ich persönlich die amerikanischen Einstellungen für die Kommandozeile bevorzuge, stelle ich dies mit:

archiso# echo LANG=en_DK.UTF-8 > /etc/locale.conf
archiso # export LANG=en_DK.UTF-8

Für Fremdsprachmuffel einfach die obigen beiden Befehle durch folgendes ersetzen (kann auch nachträglich gemacht werden), dann sind beispielsweise Datumsangaben u.v.m. in der Konsole für eine deutsche Ausgabe eingestellt (dabei muss in der locale.gen vorher auch de_DE.UTF8 UTF8 auskommentiert worden sein):

archiso# echo LANG=de_DE.UTF-8 > /etc/locale.conf
archiso # export LANG=de_DE.UTF-8

Das Tastatur-Layout wird auf eine gewöhnliche deutsche Tastatur eingestellt, die Konsolenschrift auf  lat9w-12:

archiso# echo KEYMAP=de-latin1 > /etc/vconsole.conf
archiso# echo FONT=lat9w-12 >> /etc/vconsole.conf

Die lokale Uhrzeit wird mit den folgender Verlinkung parametriert (Vienna):

archiso# ln -s /usr/share/zoneinfo/Europe/Vienna /etc/localtime

Die Hardware-Uhr des Rechners läuft im Linux üblicherweise auf UTC (GMT):

archiso# hwclock --systohc --utc

Setzen des Hostnamen (Rechnername):

archiso# echo meinRechnerName > /etc/hostname

Benutzereinstellungen

Setzen des Root-Passwortes, das Passwort in heute üblicher Art generieren und merken.

archiso# passwd

Enter new UNIX password: p-OSf4345+1
Retype new UNIX password: p-OSf4345+1

BTRFS-Feineinstellungen

Das "Copy-on-Write" (Kopieren beim Schreiben) wird aus Performance-Gründen für das Log-Verzeichnis ausgeschaltet: /var/log/journal/ Informationen dazu auf der Seite https://wiki.archlinux.org/index.php/Systemd#Timers

archiso# chattr +C /var/log/journal

Überprüfung mit:

archiso# lsattr /var/log

Werden virtuelle Maschinen (virtualbox) oder eine Datenbank installiert, so sollten die entsprechenden Verzeichnisse der virtuellen Festplatten bzw. die Datenbank-Resource auch mit dem obigen Attribute "Copy-on-Write" versehen werden.

Automatische Snapshots -- Zeit-Schnappschüsse mit BTRFS

... in Bearbeitung ...

SSH - Zugriff

... in Bearbeitung ...

vorher noch Benutzer anlegen mit useradd anlegen!

pacman -S openssh

Intel Microcode aktualisieren

install the package intel-ucode

% pacman -S intel-ucode

% grub-mkconfig -o /boot/grub/grub.cfg

Installing iucode-tool from AUR (archlinux repository)

Download (as normal user) the iucode-tool to a separate directory

tar -xvf iucode-tool.tar.gz

cd iucode-tool

makepkg

pacman -U iucode-tool-1.1.1-1-x86_64.pkg.tar.xz

{attachment}