In diesem zweiten Teil der Serie von Artikeln über den Umstieg auf Arch Linux soll die Installation des Basissystems dieser Linux-Distribution erläutert werden. Eine ausführliche Dokumentation über den Installationsvorgang für Einsteiger ist im offiziellen, englischsprachigen Arch-Wiki unter diesem Link verfügbar. Eine Dokumentation die sich an erfahrene Arch-Benutzer richtet ist dagegen unter diesem Link zu finden.
Die Beispiele dieser schrittweisen Anleitung orientieren sich an den Konfigurationen, die ich bei der Installation von Arch Linux auf meinem System getroffen habe. Dazu gehört die Partitionierung mittels GPT, wobei eine separate Boot-Partitiion genutzt wird. Der übrige Festplattenplatz wird mittels LVM verschlüsselt und in eine logische Root-, Var- und Home-Partition aufgeteilt. Als Boot-Manager wird Syslinux eingesetzt. Es bestehen darüber hinaus zahlreiche weitere Konfigurationsmöglichkeiten, die in diesem Artikel zwar erwähnt, jedoch aufgrund der Komplexität nicht näher aufgezeigt werden.
Die Beispiele dieser schrittweisen Anleitung orientieren sich an den Konfigurationen, die ich bei der Installation von Arch Linux auf meinem System getroffen habe. Dazu gehört die Partitionierung mittels GPT, wobei eine separate Boot-Partitiion genutzt wird. Der übrige Festplattenplatz wird mittels LVM verschlüsselt und in eine logische Root-, Var- und Home-Partition aufgeteilt. Als Boot-Manager wird Syslinux eingesetzt. Es bestehen darüber hinaus zahlreiche weitere Konfigurationsmöglichkeiten, die in diesem Artikel zwar erwähnt, jedoch aufgrund der Komplexität nicht näher aufgezeigt werden.
1 Schreiben des Images auf einen Datenträger
Als erster Schritt zur Installation von Arch Linux muss zunächst das ISO-Image, das die hierfür notwendigen Daten enthält, über die Download-Seite bezogen werden. Das Image unterstützt dabei sowohl 32-, als auch 64-Bit-Architekturen.
Anschließend muss das Image auf eine CD oder DVD gebrannt werden. Alternativ kann auch ein bootfähiger USB-Stick zur Installation genutzt werden. Wie das Image hierfür unter Ubuntu auf den USB-Stick kopiert werden kann, wurde in diesem Blog bereits in diesem Artikel thematisiert. Ergänzend soll an dieser Stelle erwähnt werden, dass ebenfalls eine Netzwerk-Installation möglich ist, welche in diesem Artikel jedoch außen vor gelassen werden soll. Die Vorgehensweise hierfür ist in den eingangs erwähnten Wiki-Artikeln beschrieben.
2 Starten der Installation
Zum Starten der Installation muss nun von dem gewählten Installationsmedium gebootet werden. Aus dem erscheinenden Menü lassen sich dann zur Installation, je nach Rechnerarchitektur, die Optionen Boot Arch Linux (x86_64) oder Boot Arch Linux (i686) auswählen. Nachdem der darauffolgende Ladevorgang abgeschlossen ist, erscheint eine Kommandozeile, über die folgenden Schritte der Installation abgewickelt werden.
Das Boot-Menü von Arch Linux (Bildquelle: linuxuser.co.uk, Klicken zum Vergrößern) |
3 Sprachauswahl
Zunächst muss über die Konsole das korrekte Keyboard-Layout geladen werden. Für das deutsche Layout muss hierfür folgender Befehl ausgeführt werden (Zu diesem Zeitpunkt ist noch das englische Tastaturlayout aktiv, weshalb das y-Zeichen auf der z-Taste und der Bindestrich auf der ß-Taste liegt). Eine komplette Liste der verfügbaren Keyboard-Layouts findet sich unter diesem Link.
# loadkeys de-latin1
Anschließend sollte die verwendete Schriftart geändert werden, so dass mehr als die 26 Zeichen des englischen Standard-Alphabets dargestellt werden können.
Im nächsten Schritt gilt es, die Internetverbindung, die später für das Herunterladen der zu installierenden Pakete verwendet wird, zu konfigurieren. Es ist hierfür ratsam, auf eine kabelgebundene Netzwerkverbindung zurückzugreifen, da der hierfür notwendige DHCPCD-Daemon beim Start der Installation automatisch gestartet wird. Alternativ soll im Folgenden auch die Möglichkeit zur Einrichtung einer WLAN-Verbindung erläutert werden.
Die Konnektivität der LAN-Verbindung lässt sich beispielsweise über den folgenden ping-Befehl testen:
Soll stattdessen eine WLAN-Verbindung genutzt werden, muss zunächst der Name des hierfür zu verwendenden WLAN-Adapters ermittelt werden. Dies ist über den folgenden Befehl möglich:
Um die Verbindung zu einem Drahtlosnetzwerk herzustellen, kann das Programm wifi-menu verwendet werden, das über den unten stehenden Befehl gestartet werden kann. Es ermöglicht die Auswahl von gefundenen Netzwerken und die anschließende Eingabe des, für die Verbindungsherstellung notwendige, Passworts.
Bevor das System auf die Festplatte installiert werden kann, muss in diesem Schritt deren Partitionierung durchgeführt werden. Für die Partitionierung gibt es viele verschiedene Varianten, die abhängig von den persönlichen Wünschen und der Hardware des Computers sind. Aufgrund des Umfangs ist es in diesem Artikel nicht möglich alle Varianten abzudecken. Stattdessen wird im Folgenden die Einrichtung einer einzigen dieser möglichen Partitionierungen vorgestellt und lediglich auf unterschiedliche Möglichkeiten hingewiesen. Für deren Umsetzung ist bei Bedarf wieder einmal das Arch-Wiki heranzuziehen. Außerdem ist zu beachten, dass das Partitionieren der Festplatte zu Datenverlust führen kann, weshalb es ratsam ist, relevante Daten zuvor zu sichern.
Vor der eigentlichen Partitionierung gilt es zunächst, zu entscheiden, welche Art von Partitionstabelle verwendet werden soll. Zur Auswahl stehen eine GUID-Partitionstablle (GPT) oder ein Master Boot Record (MBR). GPT stellt dabei die modernere Variante dar und ist auf aktuellen Systemen zu empfehlen, weshalb diese Anleitung im Folgenden diese Variante verwenden wird.
Desweiteren muss für UEFI-Motherboards eine UEFI System-Partition eingerichtet werden, während BIOS-Mainboards eine BIOS Boot-Partition benötigen. Im folgenden Beispiel wird angenommen, dass eine solche Boot-Partition, auf der später der Bootloaded GRUB zum Einsatz kommen soll, eingerichtet werden muss.
Die Einrichtung der GPT-Partitionen erfolgt durch das Tool cgdisk, das über den unten stehenden Befehl gestartet werden kann, wobei es sich bei /dev/sda um den Einhängepunkt der Festplatte handelt, die partitioniert werden soll.
Um die Boot-Partition anzulegen, muss zunächst der Menüpunkt New ausgewählt werden. Anschließend wird der Sektor abgefragt, in dem die Partition starten soll. Da diese Partition die erste auf der Festplatte sein soll, kann der Standardwert 2048 mit Enter bestätigt werden. Der Bereich von Sektor 0 bis 2047 bleibt ungenutzt. Als nächstes wird die gewünschte Größe der Partition abgefragt. Hierfür eine solche Boot-Partition eignet sich ein Wert von etwa 100 MiB, was dem Wert 100M entspricht. Für den daraufhin abgefragten Hex-Code muss dann der Wert EF02 eingegeben werden, welcher die Partition als BIOS Boot-Partition identifiziert. Zuletzt kann noch ein Name für die neu erstellte Partition angegeben werden, welcher in diesem Beispiel für boot sein soll. Die Einrichtung der Boot-Partition ist hiermit abgeschlossen und das Ergebnis sollte in der angezeigten Partitionstabelle sichtbar sein.
Über die Cursor-Tasten navigiert man nun in der angezeigten Partitionstabelle zu dem ungenutzten Bereich hinter der zuvor erstellten Boot-Partition und wählt erneut den Menüpunkt New um die eine zweite Partition anzulegen, die den restlichen Festplattenplatz einnimmt. Für den Startsektor kann wieder mit Enter der Standardwert übernommen werden, so dass die Partition direkt an die bereits angelegte Boot-Partition anschließt. Auch die Abfrage zur Größe der Partition kann mit Enter bestätigt werden um den kompletten freien Speicherbereich zu belegen. Das selbe gilt für die Abfrage des Hex-Codes, der den Partitionstyp beschreibt. Der Standardwert beschreibt hierbei eine Standard-Linux-Datenpartition. Als Name wird zuletzt noch system vergeben. Damit ist die Erstellung der Partition abgeschlossen und sie sollte ebenfalls in der Partitionstabelle angezeigt werden.
Bevor die angelegten Partitionen auf die Festplatte geschrieben werden, sollte man die Partitionstabelle noch einmal prüfen. Falls man mit dem Ergebnis nicht zufrieden ist, kann das Programm über die Tastenkombination Strg+C beendet werden, ohne das die Änderungen angewandt werden. Ist man dagegen mit den Einstellungen zufrieden, können die Änderungen über den Menüpunkt Write und ein anschließendes Bestätigen durch die Eingabe von yes geschrieben werden.
Das sogenannte Logical Volume Management, das in diesem Schritt der Installation eingerichtet werden soll, ist nicht zwingend erforderlich, bietet aber einige zusätzliche Möglichkeiten, indem es von dem physikalischen Festplattenspeicher abstrahiert. Dazu gehört zum Beispiel, dass Partitionen später konfortabler vergrößert oder verkleinert werden können oder dass mehrere Festplatten zu einer einzigen virtuellen Festplatte zusammengeschlossen werden können. Der für mich jedoch wichtigste Punkt ist, Partitionen komplett zu verschlüsseln, so dass auf die Daten, die sich darauf befinden, nur nach der Eingabe eines Passwortes beim Bootvorgang zugegriffen werden kann. Wie eine solche Verschlüsselung mittels LVM eingerichtet werden kann, soll im Folgenden erläutert werden.
Die beiden, im vorherigen Schritt angelegten, Partitionen sind den Einhängepunkten /dev/sda1 für die Boot-Partition, sowie /dev/sda2 für die System-Partition, zugeordnet. Die Boot-Partition kann aus technischen Gründen nicht verschlüsselt werden, da ansonsten nicht gebootet werden kann. Dies schränkt die Sicherheit jedoch nicht ein, da auf die verschlüsselten Daten der System-Partition trotzdem nicht zugegriffen werden kann. Um eine optimale Sicherheit zu erzielen, sollte man den Inhalt der zu verschlüsselnden Partition zunächst mit Nullen überschreiben, was über den folgenden Befehl erreicht werden kann:
Um auf die zuvor erstellten Partitionen Datein kopieren zu können, müssen diese außerdem noch formatiert werden. Als Dateisystem soll hierfür in diesem Beispiel ext4 zum Einsatz kommen. Die Boot-, Root-, und Home-Partition können durch die folgenden Befehle mit diesem Dateisystem formatiert werden:
Um die einzelnen Partitionen für den weiteren Verlauf der Installation zu nutzen, müssen diese in diesem Schritt gemountet werden. Eine hilfreiche Übersicht über die existierenden Partitionen lässt sich über den folgenden Befehl anzeigen:
Mit Mirrors sind an dieser Stelle die Online-Quellen für Software-Installationen und -Updates gemeint. Die Liste aller Server, die als Quellen herangezogen werden, ist unter /etc/pacman.d/mirrorlist gespeichert und lässt sich in diesem Schritt optional edititieren. Hierfür ist unter dieser Adresse ein Generator-Tool verfügbar, über das sich Kriterien wie die etwa die Region des Servers oder ob das HTTP- bzw. HTTPS-Protokol genutzt wird, einstellen lassen und eine Ergebnisliste angezeigt wird. Zu beachten ist hierbei, dass Server, die das HTTP- oder HTTPS-Protokol nutzen, in der Regel schneller sind als FTP-Server.
Falls die Liste von Mirrors edititert werden soll, lässt sich die entsprechende Datei über folgenden Befehl in einem Editor öffnen. Die Datei enthält Standardmäßig alle verfügbaren Mirrors. Die nicht erwünschten Adressen müssen aus der Datei gelöscht, oder die jeweilige Zeile durch das Voranstellen eines #-Zeichens auskommentiert werden. Über Strg-X kann der Editor anschließend wieder beendet werden. Die Änderungen müssen dabei bestätigt werden.
Nach den bereits getätigten Konfigurationen ist es nun an der Zeit, das Basissystem zu installieren. Die Installation wird folgendermaßen über das pacstrap-Skript durchgeführt (Falls die Installation ohne Benutzerinteraktion zur Bestätigung der Installation der einzelnen Pakete erfolgen soll, kann der i-Parameter weggelassen werden):
Bei der sogenannten File System Table handelt es sich um eine Datei, die alle zu mountenden Dateisysteme des Systems enthält. Diese Datei, die nach diesem Schritt unter /mnt/etc/fstab zu finden sein wird, lässt sich einfach über den folgenden Befehl generieren:
Die hier aufgeführten Optimierungen für SSD-Laufwerke wurden diesem Artikel des Debian-Wikis entnommen, der eben dieser Thematik gewidmet ist.
In dem nun folgenden Schritt gilt es, das zuvor installierte Basissystem zu konfigurieren. Hierfür muss das aktuell verwendete Rootverzeichnis zunächst über folgenden Befehl auf den Einhängepunkt /mnt geändert werden:
Die sogenannten Locales werden von Programmen dazu genutzt länderspezifische Währungseinheiten, Zeit- und Datumsformate, sowie andere regional abhängige Werte korrekt darzustellen. Um hierfür die Unterstützung für die jeweilige Region einzurichten, in der man sich befindet, ist das Editieren der beiden Dateien /ect/locale.gen und /etc/locale.conf nötig.
Um die Datei /etc/locale.gen zu editieren, muss sie über folgenden Befehl in einem Editor geöffnet werden:
Die Änderungen in der Datei müssen nach dem Editieren über den folgenden Befehl übernommen werden:
Die Datei /etc/locale.conf existiert standardmäßig nicht. Um auch sie für den deutschsprachigen Raum zu konfigurieren, kann sie über die folgenden beiden Konsolenbefehle erzeugt werden:
Bereits ganz zu Beginn der Installation wurden das Tastaturlayout und die verwendete Schriftart geändert. Dieser Schritt ist nun erneut nötig:
Anschließend muss die Zeitzone festgelegt werden, in der man sich befindet. Die verfügbaren Zeitzonen sind im Verzeichnis /usr/share/zoneinfo gespeichert. Um sich auf eine Zeitzone festzulegen, muss ein symbolischer Link auf das Verzeichnis /etc/localtime erstellt werden. Für Deutschland lautet der Befehl um diesen Link einzurichten beispielsweise:
Im nächsten Schritt muss die Echtzeituhr des Systems gesetzt werden, was über den folgenden Befehl geschieht:
Letzendlich muss noch ein beliebiger Hostname für das System gesetzt werden, indem er in die Datei /etc/hostname geschrieben wird. Dies ist über folgenden Befehl zu bewerkstelligen, wobei "hostname" durch den gewünschten Hostnamen zu ersetzen ist:
Wie auch das Tastaturlayout und die Schriftart muss auch die Netzwerkverbindung in diesem Schritt erneut konfiguriert werden.
Wenn der Computer über eine direkte LAN-Verbindung angeschlossen ist, genügt hierfür der unten stehende Befehl:
Zur Konfiguration einer WLAN-Verbindung müssen zunächst die Pakete iw, wpa_supplicant und wpa_actiond installiert werden:
In diesem Schritt muss das sogenannte Ramdisk Environment kofiguriert weren. Da in dieser Installationsanleitung logische LVM-Partitionen erstellt wurde, werden hierfür Änderungen an der Datei /etc/mkinitcpio.conf notwendig. Hierfür lässt sich die Datei in einem Editor über folgenden Befehl starten:
In diesem nächsten Schritt muss das Root-Passwort gesetzt werden. Hierfür muss der folgenden Befehl ausgeführt werden und anschließend das gewünschte Passwort, sowie eine Bestätigung dessen, eingegeben werden.
Nun muss ein Bootloader installiert werden, der später dafür sorgen wird, dass das Betriebssystem gestartet werden kann. Zur Auswahl für Systeme mit BIOS-Mainboards, wie das System, das in diesem Beispiel verwendet wird, stehen hierfür Syslinux und GRUB zur Verfügung. In diesem Beispiel soll Syslinux verwendet werden. Für die Einrichtung des Bootloaders auf einem UEFI-System sei auf die eingangs erwähnten Artikel des Arch-Wikis verwiesen.
Für die Einrichtung von Syslinux muss dieses zuerst installiert werden, was mittels des Arch-Linux eigenen Paketmanagers Pacman durch den folgenden Befehl erreicht wird:
Die Installation desArch Linux-Basissystems ist hiermit abgeschlossen und das frisch installierte System kann neu gestartet werden. Zur Vorbereitung des Neustarts muss zunächst die chroot-Umgebung über folgenden Befehl verlassen werden:
# setfont Lat2-Terminus16
Optional kann nun die Sprache geändert werden, die für die Installation genutzt werden soll. Die zu verwendende Sprache ist dabei in der Datei /etc/locale.gen definiert. Über den unten stehenden Befehl lässt sich die Datei in einem Editor bearbeiten. Das #-Zeichen vor der Zeile, die die gewünschte Sprache enthält, muss darin entfernt werden (in diesem Beispiel wird de_DE.UTF-8 für Detusch verwendet) un der Editor anschließend über die Tastenkombination Strg+X beendet werden. Dabei muss das Speichern der Änderungen mit Y und Enter bestätigt werden.
# nano /etc/locale.gen
Abschließend müssen zur erfolgreichen Übernahme der geänderten Sprachkonfiguration die beiden folgenden Befehle ausgeführt werden:
# locale-gen
# export LANG=de_DE.UTF-8
4 Herstellen der Internetverbindung
Im nächsten Schritt gilt es, die Internetverbindung, die später für das Herunterladen der zu installierenden Pakete verwendet wird, zu konfigurieren. Es ist hierfür ratsam, auf eine kabelgebundene Netzwerkverbindung zurückzugreifen, da der hierfür notwendige DHCPCD-Daemon beim Start der Installation automatisch gestartet wird. Alternativ soll im Folgenden auch die Möglichkeit zur Einrichtung einer WLAN-Verbindung erläutert werden.
Konfiguration einer direkten LAN-Verbindung:
Die Konnektivität der LAN-Verbindung lässt sich beispielsweise über den folgenden ping-Befehl testen:
# ping -c 3 www.google.com
Wenn eine funktionierende Internetverbundung besteht, sollte als Ergebnis des Befehls eine Ausgabe, die der unten aufgeführten ähnelt, erscheinen. Falls stattdessen der Fehler "ping: unknown host" zurück gegeben wird, wurde die Internetverbindung nicht korrekt konfiguriert. Dies is etwa der Fall wenn eine statische IP-Adresse oder ein Proxy-Server verwendet werden muss. Für die Behandlung solcher Fälle ist es ratsam, einen der eingangs erwähnten Artikel aus dem Arch-Wiki zu Rate zu ziehen. PING www.l.google.com (74.125.132.105) 56(84) bytes of data.
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms
--- www.l.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms
Konfiguration einer WLAN-Verbindung:
Soll stattdessen eine WLAN-Verbindung genutzt werden, muss zunächst der Name des hierfür zu verwendenden WLAN-Adapters ermittelt werden. Dies ist über den folgenden Befehl möglich:
# iw dev
Die Ausgabe des Befehls könnte etwa wie folgt aussehen. Die Bezeichnung "wlp12s0" entspricht dabei dem gesuchten Namen. phy#0
Interface wlp12s0
ifindex 3
wdev 0x1
addr 00:21:6a:5e:52:bc
type managed
Unter Verwendung des zuvor ermittelten Namens kann das Netzwerkinterface durch den folgenden Befehl aktiviert werden: # ip link set wlp12s0 up
Falls bei der Ausführung dieses Befehls die Fehlermeldung "SIOCSIFFLAGS: No such file or directory" zurück gegeben wird, handelt es sich bei dem verwendeten Netzwerkinterface um eines der wenigen, dessen Firmware manuell geladen werden muss. Für die Behandlung eines solchen Falles sei an dieser Stelle einmal mehr auf die eingangs erwähnten Artikel des Arch-Wikis verwiesen.Um die Verbindung zu einem Drahtlosnetzwerk herzustellen, kann das Programm wifi-menu verwendet werden, das über den unten stehenden Befehl gestartet werden kann. Es ermöglicht die Auswahl von gefundenen Netzwerken und die anschließende Eingabe des, für die Verbindungsherstellung notwendige, Passworts.
# wifi-menu wlp12s0
Die Konnektivität der auf diese Weise hergestellten drahtlosen Internetverbindung, kann ebenfalls über den oben erwähnten ping-Befehl getestet werden.5 Partitionierung der Festplatte
Bevor das System auf die Festplatte installiert werden kann, muss in diesem Schritt deren Partitionierung durchgeführt werden. Für die Partitionierung gibt es viele verschiedene Varianten, die abhängig von den persönlichen Wünschen und der Hardware des Computers sind. Aufgrund des Umfangs ist es in diesem Artikel nicht möglich alle Varianten abzudecken. Stattdessen wird im Folgenden die Einrichtung einer einzigen dieser möglichen Partitionierungen vorgestellt und lediglich auf unterschiedliche Möglichkeiten hingewiesen. Für deren Umsetzung ist bei Bedarf wieder einmal das Arch-Wiki heranzuziehen. Außerdem ist zu beachten, dass das Partitionieren der Festplatte zu Datenverlust führen kann, weshalb es ratsam ist, relevante Daten zuvor zu sichern.
Vor der eigentlichen Partitionierung gilt es zunächst, zu entscheiden, welche Art von Partitionstabelle verwendet werden soll. Zur Auswahl stehen eine GUID-Partitionstablle (GPT) oder ein Master Boot Record (MBR). GPT stellt dabei die modernere Variante dar und ist auf aktuellen Systemen zu empfehlen, weshalb diese Anleitung im Folgenden diese Variante verwenden wird.
Desweiteren muss für UEFI-Motherboards eine UEFI System-Partition eingerichtet werden, während BIOS-Mainboards eine BIOS Boot-Partition benötigen. Im folgenden Beispiel wird angenommen, dass eine solche Boot-Partition, auf der später der Bootloaded GRUB zum Einsatz kommen soll, eingerichtet werden muss.
Die Einrichtung der GPT-Partitionen erfolgt durch das Tool cgdisk, das über den unten stehenden Befehl gestartet werden kann, wobei es sich bei /dev/sda um den Einhängepunkt der Festplatte handelt, die partitioniert werden soll.
# cgdisk /dev/sda
Über das Tool sollen im Folgenden die notwendige Boot-Partition, sowie eine weitere System-Partition, die den restlichen Festplattenspeicher einnimmt, erstellt werden. Diese zweite Partition wird dann im Folgenden, wie im nächsten Abschnitt erklärt, mit LVM verschlüsselt und über sogenannte Logical Volumes in weitere virtuelle Partitionen aufgeteilt, die die Aufgaben einer Swap-Partition für das Auslagern von Daten bei überfülltem RAM, einer Root-Partition auf der das eigentliche Betriebssystem installiert wird, einer Var-Partition für Caching und Logging, sowie einer Home-Partition auf der getrennt die Benutzerdaten gespeichert werden, erfüllen.Boot-Partition:
Um die Boot-Partition anzulegen, muss zunächst der Menüpunkt New ausgewählt werden. Anschließend wird der Sektor abgefragt, in dem die Partition starten soll. Da diese Partition die erste auf der Festplatte sein soll, kann der Standardwert 2048 mit Enter bestätigt werden. Der Bereich von Sektor 0 bis 2047 bleibt ungenutzt. Als nächstes wird die gewünschte Größe der Partition abgefragt. Hierfür eine solche Boot-Partition eignet sich ein Wert von etwa 100 MiB, was dem Wert 100M entspricht. Für den daraufhin abgefragten Hex-Code muss dann der Wert EF02 eingegeben werden, welcher die Partition als BIOS Boot-Partition identifiziert. Zuletzt kann noch ein Name für die neu erstellte Partition angegeben werden, welcher in diesem Beispiel für boot sein soll. Die Einrichtung der Boot-Partition ist hiermit abgeschlossen und das Ergebnis sollte in der angezeigten Partitionstabelle sichtbar sein.
System-Partition:
Über die Cursor-Tasten navigiert man nun in der angezeigten Partitionstabelle zu dem ungenutzten Bereich hinter der zuvor erstellten Boot-Partition und wählt erneut den Menüpunkt New um die eine zweite Partition anzulegen, die den restlichen Festplattenplatz einnimmt. Für den Startsektor kann wieder mit Enter der Standardwert übernommen werden, so dass die Partition direkt an die bereits angelegte Boot-Partition anschließt. Auch die Abfrage zur Größe der Partition kann mit Enter bestätigt werden um den kompletten freien Speicherbereich zu belegen. Das selbe gilt für die Abfrage des Hex-Codes, der den Partitionstyp beschreibt. Der Standardwert beschreibt hierbei eine Standard-Linux-Datenpartition. Als Name wird zuletzt noch system vergeben. Damit ist die Erstellung der Partition abgeschlossen und sie sollte ebenfalls in der Partitionstabelle angezeigt werden.
Bevor die angelegten Partitionen auf die Festplatte geschrieben werden, sollte man die Partitionstabelle noch einmal prüfen. Falls man mit dem Ergebnis nicht zufrieden ist, kann das Programm über die Tastenkombination Strg+C beendet werden, ohne das die Änderungen angewandt werden. Ist man dagegen mit den Einstellungen zufrieden, können die Änderungen über den Menüpunkt Write und ein anschließendes Bestätigen durch die Eingabe von yes geschrieben werden.
6 Einrichten von LVM
Das sogenannte Logical Volume Management, das in diesem Schritt der Installation eingerichtet werden soll, ist nicht zwingend erforderlich, bietet aber einige zusätzliche Möglichkeiten, indem es von dem physikalischen Festplattenspeicher abstrahiert. Dazu gehört zum Beispiel, dass Partitionen später konfortabler vergrößert oder verkleinert werden können oder dass mehrere Festplatten zu einer einzigen virtuellen Festplatte zusammengeschlossen werden können. Der für mich jedoch wichtigste Punkt ist, Partitionen komplett zu verschlüsseln, so dass auf die Daten, die sich darauf befinden, nur nach der Eingabe eines Passwortes beim Bootvorgang zugegriffen werden kann. Wie eine solche Verschlüsselung mittels LVM eingerichtet werden kann, soll im Folgenden erläutert werden.
Die beiden, im vorherigen Schritt angelegten, Partitionen sind den Einhängepunkten /dev/sda1 für die Boot-Partition, sowie /dev/sda2 für die System-Partition, zugeordnet. Die Boot-Partition kann aus technischen Gründen nicht verschlüsselt werden, da ansonsten nicht gebootet werden kann. Dies schränkt die Sicherheit jedoch nicht ein, da auf die verschlüsselten Daten der System-Partition trotzdem nicht zugegriffen werden kann. Um eine optimale Sicherheit zu erzielen, sollte man den Inhalt der zu verschlüsselnden Partition zunächst mit Nullen überschreiben, was über den folgenden Befehl erreicht werden kann:
# shred -vzn 0 /dev/sda2
Anschließend müssen für die Einrichtung der Verschlüsselung die dafür notwendigen Kernel-Module geladen werden: # modprobe dm-crypt
Die eigentliche Verschlüsselung kann dann über den unten stehenden Befehl eingerichtet werden (Falls eine Partition mit einer Größe von mehr als 2 TiB verschlüsselt werden soll, sollte stattdessen der Befehl aes-xts-plain64 verwendet werden). Der Befehl muss zunächst durch Eingabe von YES quittiert werden, anschließend muss das Passwort eingegeben und bestätigt werden, das für die Verschlüsselung genutzt werden soll. # cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
Für die weitere Verwendung der eben verschlüsselten Partition für den weiteren Verlauf der Installation, muss diese anschließend durch Eingabe des gewählten Passworts eingebunden werden. Dies geschieht über folgenden Befehl, woraufhin eine neue Gerätedatei mit dem Namen lvm in dem Verzeichnis /dev/mapper erscheint. # cryptsetup luksOpen /dev/sda2 lvm
Das eigentliche LVM und die zugehörige Volume Group kann nun über die folgenden Befehle eingerichtet werden: # pvcreate /dev/mapper/lvm
# vgcreate main /dev/mapper/lvm
Abschließend müssen noch die einzelnen Logical Volumes, also die virtuellen Partitionen des LVM definiert werden. In diesem Beispiel handelt es sich dabei um eine Swap-Partition, eine Root-Partition und eine Home-Partition. Die optimale Größe ist dabei abhängig von der Größe des verfügbaren Arbeitsspeichers. Bei weniger als 512 MiB RAM sollte die Größe der Swap-Partition das Doppelte betragen. Ansonsten genügt eine Swap-Partition deren Größe der Größe des RAMs entspricht. In diesem Beispiel wird angenommen dass der RAM 4 GiB beträgt. Die Swap-Partition soll also ebenfalls 4 GiB umfassen. Die Root-Partition dagegen soll einen Speicherbereich von 12 GiB umfassen und die Home-Partition den übrigen freien Speicher für sich beanspruchen. Diese Logical Volumes lassen sich über die folgenden Befehle einrichten. Falls die Größe eines Logical Volumes im Megabyte-Bereich statt im Gigabyte-Bereich liegen soll, muss hierfür als Einheit statt GB das Zeichen M verwendet werden. # lvcreate -n swap -L 4G -C y main
# lvcreate -n root -L 12G main
# lvcreate -n var -L 4G main
# lvcreate -n home -l 100%FREE main
7 Formatieren der Partitionen
Um auf die zuvor erstellten Partitionen Datein kopieren zu können, müssen diese außerdem noch formatiert werden. Als Dateisystem soll hierfür in diesem Beispiel ext4 zum Einsatz kommen. Die Boot-, Root-, und Home-Partition können durch die folgenden Befehle mit diesem Dateisystem formatiert werden:
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/mapper/main-root
# mkfs.ext4 /dev/mapper/main-var
# mkfs.ext4 /dev/mapper/main-home
Um die Swap-Partition zu formatieren und zu aktivieren muss stattdessen wie folgt vorgegangen werden: # mkswap /dev/mapper/main-swap
# swapon /dev/mapper/main-swap
8 Mounten der Partitionen
Um die einzelnen Partitionen für den weiteren Verlauf der Installation zu nutzen, müssen diese in diesem Schritt gemountet werden. Eine hilfreiche Übersicht über die existierenden Partitionen lässt sich über den folgenden Befehl anzeigen:
# lsblk /dev/sda
Die Mount-Reihenfolge ist sehr wichtig. Zuerst muss die Root-Partition folgendermaßen im Verzeichnis /mnt gemountet werden: # mount /dev/mapper/main-root /mnt
Anschließend können die übrigend Partitionen gemountet werden. Zunächst wird hierfür die Home-Partition in dem Verzeichnis /mnt/home eingehängt: # mkdir /mnt/home
# mount /dev/mapper/main-home /mnt/home
Anschließend wird die Var-Partition unter /mnt/var gemountet: # mkdir /mnt/var
# mount /dev/mapper/main-var /mnt/var
Zuletzt wird dann noch die Boot-Partition unter /mnt/boot gemountet: # mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
Die Swap-Partition muss dagegen nicht gemountet werden.9 Auswahl eines Mirrors
Mit Mirrors sind an dieser Stelle die Online-Quellen für Software-Installationen und -Updates gemeint. Die Liste aller Server, die als Quellen herangezogen werden, ist unter /etc/pacman.d/mirrorlist gespeichert und lässt sich in diesem Schritt optional edititieren. Hierfür ist unter dieser Adresse ein Generator-Tool verfügbar, über das sich Kriterien wie die etwa die Region des Servers oder ob das HTTP- bzw. HTTPS-Protokol genutzt wird, einstellen lassen und eine Ergebnisliste angezeigt wird. Zu beachten ist hierbei, dass Server, die das HTTP- oder HTTPS-Protokol nutzen, in der Regel schneller sind als FTP-Server.
Falls die Liste von Mirrors edititert werden soll, lässt sich die entsprechende Datei über folgenden Befehl in einem Editor öffnen. Die Datei enthält Standardmäßig alle verfügbaren Mirrors. Die nicht erwünschten Adressen müssen aus der Datei gelöscht, oder die jeweilige Zeile durch das Voranstellen eines #-Zeichens auskommentiert werden. Über Strg-X kann der Editor anschließend wieder beendet werden. Die Änderungen müssen dabei bestätigt werden.
# nano /etc/pacman.d/mirrorlist
10 Installation des Basissystems
Nach den bereits getätigten Konfigurationen ist es nun an der Zeit, das Basissystem zu installieren. Die Installation wird folgendermaßen über das pacstrap-Skript durchgeführt (Falls die Installation ohne Benutzerinteraktion zur Bestätigung der Installation der einzelnen Pakete erfolgen soll, kann der i-Parameter weggelassen werden):
# pacstrap -i /mnt base
11 Generierung der "File System Table"
Bei der sogenannten File System Table handelt es sich um eine Datei, die alle zu mountenden Dateisysteme des Systems enthält. Diese Datei, die nach diesem Schritt unter /mnt/etc/fstab zu finden sein wird, lässt sich einfach über den folgenden Befehl generieren:
# genfstab -U -p /mnt >> /mnt/etc/fstab
Falls Dateisysteme, die durch die File System Table gemountet werden sollen, auf einer SSD liegen, sollte die fstab-Datei außerdem editiert werden, um den Verschleiß des Datenträgers durch unnötige Schreibvorgänge zu verhindern. Hierfür ist die Datei über den unten stehenden Befehl in einem Editor zu öffnen und die vierte Spalte, die die Mount-Optionen enthält, aller betroffenen Dateisysteme zu edititeren, so dass sie den Wert "discard, noatime, commit=600, defaults" enthält. Ausnahmen bilden hierbei eine eventuell vorhandene Swap-Partition, für die die Mount-Optionen "sw, discard" gesetzt werden sollte, sowie die Root-Partition für die die Mount-Optionen "discard, noatime, commit=600, errors=remount-ro" gewählt werden sollten. # nano /mnt/etc/fstab
Die fstab-Datei für das in diesem Artikel verwendete Beispiel könnte dann in etwa folgendermaßen aussehen: #
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/main-root
UUID=a6d24c4e-d92b-4dba-8dc0-271f52c24698 / ext4 discard, noatime, commit=600, errors=remount-ro 0 1
# /dev/mapper/main-home
UUID=0e93cfe2-b2dd-4f56-8efe-496c6f79a1b8 /home ext4 discard, noatime, commit=600, defaults 0 2
# /dev/mapper/main-var
UUID=5c6d2937-e84d-41c0-a730-57b17780af2c /var ext4 discard, noatime, commit=600, defaults 0 2
# /dev/sda1
UUID=e3bb6038-7a1d-42b2-be37-f90f388b43ca /boot ext4 discard, noatime, commit=600, defaults 0 2
# /dev/mapper/main-swap
UUID=9335ef5f-8a8c-425b-ac5f-b5a2e8f45cc3 none swap sw, discard 0 0
Außerdem sollte die Datei /etc/lvm/lvm.conf so edititert werden, dass die Zeile "issue_discards = 0" auf den Wert 1 gesetzt wird.Die hier aufgeführten Optimierungen für SSD-Laufwerke wurden diesem Artikel des Debian-Wikis entnommen, der eben dieser Thematik gewidmet ist.
12 Konfiguration des Basissystems
In dem nun folgenden Schritt gilt es, das zuvor installierte Basissystem zu konfigurieren. Hierfür muss das aktuell verwendete Rootverzeichnis zunächst über folgenden Befehl auf den Einhängepunkt /mnt geändert werden:
# arch-chroot /mnt
Locales:
Die sogenannten Locales werden von Programmen dazu genutzt länderspezifische Währungseinheiten, Zeit- und Datumsformate, sowie andere regional abhängige Werte korrekt darzustellen. Um hierfür die Unterstützung für die jeweilige Region einzurichten, in der man sich befindet, ist das Editieren der beiden Dateien /ect/locale.gen und /etc/locale.conf nötig.
Um die Datei /etc/locale.gen zu editieren, muss sie über folgenden Befehl in einem Editor geöffnet werden:
# nano /etc/locale.gen
Standardmäßig sind alle Zeilen der Datei auskommentiert. Für diejenigen Einträge, die genutzt werden sollen, muss das voran gestellte #-Zeichen entfernt werden. Neben dem Eintrag "en_US.UTF-8 UTF 8" für die US-englische Region sollte auf diese Weise der Eintrag "de_DE.UTF-8 UTF 8" für Deutschland aktiviert werden.Die Änderungen in der Datei müssen nach dem Editieren über den folgenden Befehl übernommen werden:
# locale-gen
Die Datei /etc/locale.conf existiert standardmäßig nicht. Um auch sie für den deutschsprachigen Raum zu konfigurieren, kann sie über die folgenden beiden Konsolenbefehle erzeugt werden:
# echo LANG=de_DE.UTF-8 > /etc/locale.conf
# export LANG=de_DE.UTF-8
Tastaturlayout und Schriftart:
Bereits ganz zu Beginn der Installation wurden das Tastaturlayout und die verwendete Schriftart geändert. Dieser Schritt ist nun erneut nötig:
# loadkeys de-latin1
# setfont Lat2-Terminus16
Damit diese Einstellung nach einem Neustart des Systems immer noch verfügbar sind, muss außerdem noch die Datei /ect/vconsole.conf editiert werden, wofür sie über folgenden Konsolenbefehl in im Editor geöffnet werden kann: # nano /etc/vconsole.conf
In die Datei müssen die beiden folgenden Zeilen eingetragen werden: KEYMAP=de-latin1
FONT=Lat2-Terminus16
Zeitzone:
Anschließend muss die Zeitzone festgelegt werden, in der man sich befindet. Die verfügbaren Zeitzonen sind im Verzeichnis /usr/share/zoneinfo gespeichert. Um sich auf eine Zeitzone festzulegen, muss ein symbolischer Link auf das Verzeichnis /etc/localtime erstellt werden. Für Deutschland lautet der Befehl um diesen Link einzurichten beispielsweise:
# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Echtzeituhr:
Im nächsten Schritt muss die Echtzeituhr des Systems gesetzt werden, was über den folgenden Befehl geschieht:
# hwclock --systohc --utc
Hostname:
Letzendlich muss noch ein beliebiger Hostname für das System gesetzt werden, indem er in die Datei /etc/hostname geschrieben wird. Dies ist über folgenden Befehl zu bewerkstelligen, wobei "hostname" durch den gewünschten Hostnamen zu ersetzen ist:
# echo hostname > /etc/hostname
13 Netzwerkverbindung konfigurieren
Wie auch das Tastaturlayout und die Schriftart muss auch die Netzwerkverbindung in diesem Schritt erneut konfiguriert werden.
Konfiguration einer direkten LAN-Verbindung:
Wenn der Computer über eine direkte LAN-Verbindung angeschlossen ist, genügt hierfür der unten stehende Befehl:
# systemctl enable dhcpcd.service
Konfiguration einer WLAN-Verbindung:
Zur Konfiguration einer WLAN-Verbindung müssen zunächst die Pakete iw, wpa_supplicant und wpa_actiond installiert werden:
# pacman -S iw wpa_supplicant wpa_actiond
Für die Nutzung des Programms wifi-menu, wie sie bereits in einem vorherigen Abschnitt dieses Artikels erläutert wurde, muss außerdem noch das Paket dialog installiert werden. Dies ist über den unten stehenden Befehl möglich. Nach Abschluss der Installation und dem Neustart des Systems kann das Programm wifi-menu genutzt werden um eine Verbindung zu einem Drahtlosnetzwerk herzustellen. # pacman -S dialog
Um den Service zu aktivieren, der dafür sorgt, dass die Verbindung zu bereits bekannten Drahtlosnetzwerken automatisch hergestellt wird, sollte außerdem noch der folgende Konsolenbefehl ausgeführt werden, wobei es sich bei "wlp12s0" um den Namen des WLAN-Interfaces handelt. # systemctl enable netctl-auto@wlp12s0.service
Für abweichende Netzwerkkonstellationen sei an dieser Stelle wieder einmal auf die Dokumentation im Arch-Wiki verwiesen.14 Ramdisk Environment konfigurieren
In diesem Schritt muss das sogenannte Ramdisk Environment kofiguriert weren. Da in dieser Installationsanleitung logische LVM-Partitionen erstellt wurde, werden hierfür Änderungen an der Datei /etc/mkinitcpio.conf notwendig. Hierfür lässt sich die Datei in einem Editor über folgenden Befehl starten:
nano /etc/mkinitcpio.conf
Die Zeile, die mit "HOOKS=..." beginnt, muss so editiert werden, dass sie darauf den folgenden Text enthält: HOOKS="base udev autodetect modconf block filesystems keyboard keymap encrypt lvm2 fsck"
Die Änderungen in der editierten Datei müssen anschließend über folgenden Befehl angewandt werden: # mkinitcpio -p linux
15 Setzen des Root-Passwortes
In diesem nächsten Schritt muss das Root-Passwort gesetzt werden. Hierfür muss der folgenden Befehl ausgeführt werden und anschließend das gewünschte Passwort, sowie eine Bestätigung dessen, eingegeben werden.
# passwd
16 Installation des Bootloaders
Nun muss ein Bootloader installiert werden, der später dafür sorgen wird, dass das Betriebssystem gestartet werden kann. Zur Auswahl für Systeme mit BIOS-Mainboards, wie das System, das in diesem Beispiel verwendet wird, stehen hierfür Syslinux und GRUB zur Verfügung. In diesem Beispiel soll Syslinux verwendet werden. Für die Einrichtung des Bootloaders auf einem UEFI-System sei auf die eingangs erwähnten Artikel des Arch-Wikis verwiesen.
Für die Einrichtung von Syslinux muss dieses zuerst installiert werden, was mittels des Arch-Linux eigenen Paketmanagers Pacman durch den folgenden Befehl erreicht wird:
# pacman -S syslinux
Da in diesem Beispiel GPT zur Partitionierung genutzt wurde, muss für die korrekte Funktion von Syslinux noch das Paket gptfdisk installiert werden: # pacman -S gptfdisk
Anschließend muss der Bootloader durch folgenden Befehl initialisiert werden: # syslinux-install_update -i -a -m
Außerdem muss die Konfigurationsdatei /boot/syslinux/syslinux.cfg so editiert werden, dass auf die korrekte Root-Partition verwiesen wird, von der beim Booten gestartet werden soll. Hierfür muss die Datei über folgenden Befehl in einem Editor geöffnet werden muss: # nano /boot/syslinux/syslinux.cfg
Für die beiden Einträge "arch" und "archfallback" muss jeweils die Zeile, die mit "APPEND" beginnt so editiert werden, dass sie wie folgt aussieht: APPEND cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro lang=de locale=de_DE.UTF-8
17 Neustart des Systems
Die Installation desArch Linux-Basissystems ist hiermit abgeschlossen und das frisch installierte System kann neu gestartet werden. Zur Vorbereitung des Neustarts muss zunächst die chroot-Umgebung über folgenden Befehl verlassen werden:
# exit
Anschließend sollten die im Laufe der Installation eingehängten Partitionen ausgehängt werden, was über die folgenden Befehle geschieht: # umount /mnt/boot
# umount /mnt/home
# umount /mnt/var
# umount /mnt
Über den folgenden Befehl wird der Rechner anschließend neu gebootet. # reboot
Zur Anmeldung an dem System nach dem Neustart kann der Standard-Benutzer "root" mit dem zuvor vergebenen Passwort verwendet werden.Weiterführende Links:
- https://wiki.archlinux.org/index.php/Beginners%27_Guide - Installationseinleitung für Anfänger im englischsprachigen Arch-Wiki
- https://wiki.archlinux.org/index.php/Installation_Guide - Installationsanleitung für Fortgeschrittene im englischsprachigen Arch-Wiki
- https://wiki.archlinux.de/title/Festplatte_verschl%C3%BCsseln - Anleitung zum Verschlüsseln von Partitionen mittels LVM im deutschsprachigen Arch-Wiki
- http://wiki.debian.org/SSDOptimization - Optimierungen für die Verwendung von SSD-Laufwerken im Debian-Wiki
Keine Kommentare:
Kommentar veröffentlichen