|
|
(64 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| Nur für eigene Zwecke:
| | {{SEITENTITEL:sway}}{{righttoc}} |
| Hier auf dieser Seite gibt es nur chaotische Arbeitsnotizen
| |
|
| |
|
| | <u>Erzeugen einer Schlüsseldatei zur Vermeidung einer zweiten Eingabe des Verschlüsselungspassworts:</u><br> |
| | <code style=font-size:12px>dd bs=512 count=4 if=/dev/urandom of=/keyfile.bin</code><br> |
| | <code style=font-size:12px>cryptsetup luksAddKey /dev/disk/by-label/ROOT /keyfile.bin</code><br> |
| | <code style=font-size:12px>chmod 000 /keyfile.bin</code><br><br> |
|
| |
|
| Dieser Artikel behandelt die Installation eines ArchLinux-Grundsystems mit verschlüsseltem [[LVM]] und der kompletten Integration von [[systemd]]. Die Anleitung wurde unter Verwendung der Installations-Medien 2015.07.01 (archlinux-2015.07.01-dual.iso) erstellt. Die Installation sollte aber auch mit zukünftigen Medien (zumindest vorerst) nicht großartig anders verlaufen.
| | <code style=font-size:12px>nano /etc/mkinitcpio.conf</code><br> |
| | | <u>'/keyfile.bin' zu Files hinzufuegen:</u><br> |
| == Installationsmedium vorbereiten ==
| | <code style=font-size:12px>FILES=(/keyfile.bin)</code><br> |
| * Das Installations-Image von http://www.archlinux.org/download/ herunterladen.
| |
| * Das Image auf CD brennen oder unter einem funktionierendem Linux-System (z. B. Live-CD) auf einen USB-Stick kopieren. Dies funktioniert wie folgt:
| |
| | |
| dd if=archlinux.iso of=/dev/sdx
| |
| | |
| | |
| == Installation starten ==
| |
| * Nun wird vom vorbereiteten Installations-Medium gebootet.
| |
| * Auf der Konsole angekommen, wird zuerst einmal das deutsche Tastatur-Layout geladen.
| |
| | |
| root@archiso ~ # loadkeys de-latin1
| |
| | |
| Da das Layout derzeit noch auf Englisch eingestellt ist, muss '''z''' anstatt '''y''' und '''ß''' anstatt '''-''' eingegeben werden.
| |
| | |
| == Festplatte vorbereiten ==
| |
| * Jetzt wird es Zeit, die Festplatten zu partitionieren. Dies kann bei Bios-Boot Systemen und Festplatten bis 2TB mit [[fdisk]], ansonsten immer mit [[gdisk]] durchgeführt werden. Für das System mit LVM werden zwei Partitionen erstellt:
| |
| '''sda1''' mit einer Größe von 100 MB und boot-Flag (dies wird später die Boot-Partition)
| |
| | |
| '''sda2''', welche den Rest der Festplatte einnimmt (hier wird das verschlüsselte LVM abgelegt)
| |
| | |
| | |
| * Zur Sicherheit wird die Festplatte jetzt überschrieben:
| |
| | |
| root@archiso ~ # shred -v /dev/sda2
| |
| | |
| Standardmäßig wird dieser Vorgang drei Mal durchgeführt, wobei ein Durchgang bei einer ca. 2 TB großen Festplatte schon mal fünf bis sechs Stunden in Anspruch nehmen kann.
| |
| | |
| * Wer deswegen den Vorgang nur einmal durchführen möchte, kann stattdessen folgenden Befehl ausführen:
| |
| | |
| shred -v -n 1 /dev/sda2
| |
| | |
| == Verschlüsseltes LVM einrichten ==
| |
| | |
| * Jetzt werden die benötigte Kernel-Modul für die Verschlüsselung geladen:
| |
| | |
| root@archiso ~ # modprobe dm-crypt
| |
| | |
| * Anschließend wird sda2 verschlüsselt:
| |
| | |
| root@archiso ~ # cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
| |
| | |
| Für Volumes größer als 2 TiB sollte aes-xts-plain64 verwendet werden. Kernelunterstützung hierfür gibt es seit Kernel 2.6.33. Die Option aes-xts-plain64 kann auch für Volumes kleiner 2 TiB verwendet werden.
| |
| | |
| * Die Eingabeaufforderung mit YES bestätigen und anschließend ein sicheres Passwort vergeben. Hierbei sollten schon 20 Zeichen inkl. Sonderzeichen und Zahlen verwendet werden.
| |
| * Jetzt wird die verschlüsselte Partition geöffnet und das LVM eingerichtet:
| |
| | |
| cryptsetup luksOpen /dev/sda2 lvm
| |
| pvcreate /dev/mapper/lvm
| |
| vgcreate main /dev/mapper/lvm
| |
| lvcreate -L 200GB -n root main
| |
| lvcreate -L 8GB -n swap main
| |
| lvcreate -l 100%FREE -n home main
| |
| | |
| Je nach Festplattengröße und/oder zukünftiger Erweiterung des Grundsystems kann auch eine geringere Größe für das root-Volume (-n root) festgelegt werden. Wenn das home-Volume (-n home) nicht den verbleibenden Platz komplett ausfüllt, können später LVM-Snapshots erstellt werden. Dazu kann - wie bei den anderen lvcreate-Befehlen - eine geringere Größe angegeben werden, zum Beispiel -L 50GB.
| |
| | |
| * Mit mkfs wird nun das Dateisystem auf die Partitionen geschrieben. Bei boot muss mit -O die 64-Bit-Fähigkeit deaktiviert werden, weil syslinux nur von einem 32-Bit-Dateisystem booten kann.
| |
| | |
| mkfs.ext4 -L root /dev/mapper/main-root
| |
| mkfs.ext4 -L home /dev/mapper/main-home
| |
| mkfs.ext4 -L boot -O '^64bit' /dev/sda1
| |
| mkswap -L swap /dev/mapper/main-swap
| |
| | |
| * Dann werden die Partitionen gemountet:
| |
| | |
| mount /dev/mapper/main-root /mnt
| |
| mkdir /mnt/home
| |
| mount /dev/mapper/main-home /mnt/home
| |
| mkdir /mnt/boot
| |
| mount /dev/sda1 /mnt/boot
| |
| | |
| == Basissystem und Bootloader installieren ==
| |
| * Vor der Installation des Basissystems sollte zunächst die Internetverbindung getestet werden:
| |
| | |
| root@archiso ~ # ping -c 3 www.google.com
| |
| | |
| * Besteht keine Verbindung, sollte folgender Befehl Abhilfe schaffen:
| |
| | |
| root@archiso ~ # dhcpcd
| |
| | |
| * In der Mirrorliste sollten alle weit entfernten Server jetzt mit '''#''' auskommentiert werden.
| |
| | |
| nano /etc/pacman.d/mirrorlist
| |
| | |
| Dies kann bei der Installation Geschwindigkeitsvorteile von ca. 30 Minuten bringen.
| |
| | |
| * Dann wird das Basissystem inkl. Bootloader (in diesem Fall [[Syslinux]]) installiert.
| |
| | |
| root@archiso ~ # pacstrap /mnt base base-devel syslinux nano linux linux-firmware mkinitcpio lvm2 dhcpcd
| |
| | |
| * Nach der Basis-Installation wird syslinux in den MBR von sda geschrieben:
| |
| | |
| root@archiso ~ # syslinux-install_update -i -a -m -c /mnt
| |
| | |
| * Dann wird syslinux konfiguriert:
| |
| | |
| root@archiso ~ # nano /mnt/boot/syslinux/syslinux.cfg
| |
| | |
| * Die APPEND-Zeile muss bei beiden Einträgen (arch und archfallback) angepasst werden:
| |
| | |
| APPEND cryptdevice=/dev/sda2:main root=/dev/mapper/main-root rw lang=de locale=de_DE.UTF-8
| |
| | |
| == System konfigurieren ==
| |
| * Nun wird die Swap-Partition aktiviert:
| |
| | |
| swapon -L swap
| |
| | |
| * Dann wird die [[fstab]] generiert und im Editor kontrolliert:
| |
| | |
| genfstab -U -p /mnt >> /mnt/etc/fstab
| |
| nano /mnt/etc/fstab
| |
| | |
| * Jetzt wird in die chroot-Umgebung gewechselt:
| |
| | |
| arch-chroot /mnt
| |
| | |
| * Spracheinstellungen werden in /etc/locale.conf festgelegt:
| |
| {{hc|1=/etc/locale.conf|2=<nowiki>LANG="de_DE.UTF-8"
| |
| | |
| # Keep the default sort order (e.g. files starting with a '.'
| |
| # should appear at the start of a directory listing.)
| |
| LC_COLLATE="C"
| |
| | |
| LC_TIME="de_DE.UTF-8"</nowiki>}}
| |
| | |
| * /etc/locale.gen wird editiert und die locales generiert:
| |
| | |
| nano /etc/locale.gen
| |
| | |
| * '''#''' vor folgenden locales entfernen:
| |
| | |
| de_DE.UTF-8 UTF-8
| |
| de_DE ISO-8859-1
| |
| de_DE@euro ISO-8859-15
| |
| | |
| * locales wird generiert:
| |
| | |
| locale-gen
| |
| | |
| * Config-Dateien für systemd werden angepasst:
| |
| | |
| echo myhostname >> /etc/hostname
| |
| echo KEYMAP=de-latin1 >> /etc/vconsole.conf
| |
| echo FONT=lat9w-16 >> /etc/vconsole.conf
| |
| echo FONT_MAP=8859-1_to_uni >> /etc/vconsole.conf
| |
| | |
| * Symlink für die Zeitzone wird erstellt:
| |
| | |
| ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
| |
| | |
| * /etc/mkinitcpio.conf wird angepasst:
| |
| | |
| nano /etc/mkinitcpio.conf
| |
| | |
| * Die MODULES- und HOOKS-Werte werden entsprechend angepasst:
| |
| | |
| MODULES=(ext4)
| |
| HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)
| |
| | |
| Die hier vorgegebenen Hooks sind für das Booten von einer S-ATA-Festplatte mit einer USB-Tastatur gedacht und müssen daher evtl. angepasst werden. Alle verfügbaren Hooks sind unter https://wiki.archlinux.org/index.php/Mkinitcpio#HOOKS zu finden.
| |
| | |
| == Kernel-Image erstellen und der erste Neustart ==
| |
| * Das Kernel-Image wird erstellt mittels:
| |
| | |
| mkinitcpio -p linux
| |
| | |
| * Für root wird ein Passwort angelegt:
| |
| | |
| passwd
| |
| | |
| * Damit per DHCP automatisch eine IP-Adresse beim Bootvorgang bezogen wird, muss jetzt der entsprechende systemd-Dienst aktiviert werden:
| |
| | |
| systemctl enable dhcpcd.service
| |
| | |
| * Anschließend werden die chroot-Umgebung verlassen und die Partitionen ausgehängt:
| |
| | |
| exit
| |
| umount /mnt/{boot,home,}
| |
| reboot
| |
| | |
| * Der PC startet nun neu und man wird – sofern bisher alles gut gegangen ist – vom Bootloader gefolgt von der Eingabeaufforderung zur Entschlüsselung des cryptdevice begrüßt. Nun ist das Passwort einzugeben. Nachdem der Bootvorgang abgeschlossen ist, muss man sich als root anmelden.
| |
| | |
| | |
| == systemd einrichten ==
| |
| * Sollte das Netzwerk nicht gestartet sein, folgenden Befehl ausführen:
| |
| | |
| dhcpcd
| |
| | |
| * Welche IP-Adresse vergeben wurde, kann mittels ip-Programm festgestellt werden:
| |
| | |
| ip addr
| |
| | |
| * Services für systemd einrichten:
| |
| | |
| systemctl enable cronie.service
| |
| | |
| * Im Falle, dass ein x86_64 System installiert wurde, kann in der /etc/pacman.conf noch das multilib-repo aktiviert werden. Anschließend müssen pacman’s Paketlisten wieder auf den neusten Stand gebracht werden:
| |
| | |
| pacman -Syy
| |
| | |
| * Ein letzter Reboot und man kann damit anfangen, das frisch installierte Arch an die eigenen Bedürfnisse anzupassen.
| |
| | |
| reboot
| |
| | |
| [[Kategorie:Installation]]
| |
| [[en:dm-crypt/Encrypting an entire system]]
| |