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
- Partition /dev/sda1 mit 250 MB (ID 83 Linux) für die /boot - Partition
- 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}