ArchLinux einrichten 1. Grundkonfiguration 1.1. Tastaturbelegung 1.2. Anlegen der Partitionen 1.3. Anlegen des Dateisystems 1.4. Einbinden der Partitionen 1.5. Installation des Basissystems 1.5.1. Überprüfen der Netzwerkverbindung 1.5.2. Basispakete installieren 1.5.3. fstab erzeugen 1.6. neuinstalliertes System starten 1.6.1. Systemkonfiguration 1.6.2. Linux-Kernel erzeugen 1.6.3. Bootloader installieren 1.6.3.1. Syslinux 1.6.3.2. Grub 2. weitere wichtige Konfigurationen 2.1. Benutzer anlegen 2.2. sudo 2.3. Beschränkungen für root 2.4. Zeitserver 2.5. Drucker 2.6. Audio 2.7. Netzwerkverbindung 3. Konfiguration des X-Server und Installation der Benutzeroberfläche 3.1. Installation und Konfiguration von X 3.2. Installation des Grafiktreibers 3.3. Desktopumgebung installieren und ausführen 3.4. Programme zeitverzögert starten 3.5. Deutsches Tastaturlayout verwenden 3.6. automatischer Login am X-Server 4. Tipps und Tricks 4.1. Automatisierte Anmeldung eines Benutzers 4.2. shutdown als Benutzer 4.3. Dateien und Verzeichnisse mit Schreibschutz belegen 4.4. weitere Geräte am System anmelden 1. Grundkonfiguration Nachdem eine der folgenden Optionen ausgewählt wurde, wird man automatisch als root angemeldet: 1. Boot Arch-Linux i686“ für 32-Bit-Systeme 2. Boot Arch-Linux x86_64“ für 64-Bit-Systeme 1.1. Tastaturbelegung Als nächstes sollte das Tastatur-Layout von EN auf DE umgestellt werden. Durch die voreingestellte englischsprachige Belegung ist darauf zu achten, dass das z auf der deutschen Tastatur dem y und umgekehrt entspricht: loadkeys de-latin1 1.2. Anlegen der Partitionen Nun werden die Partitionen beschrieben. Hierfür werden mindestens 2 benötigt (zumindest, wenn Dateien ausgelagert werden müssen): eine für das Linux-Betriebssystem und eine Swap-Partition. Zunächst wird die Linux-Partition angelegt: gdisk /dev/sda bzw. fdisk /dev sda Die root-Partition („/“) wird mit dem Befehl n angelegt. Die nächsten beiden Abfragen können (Vorausgesetzt, man erstellt die 1. Partition und legt keinen manuellen Anfangs-Sektor oder kein manuelles Ende fest) mit ENTER übersprungen werden. Hierdurch werden StandardWerte verwendet. Zum Schluss wird der Partitionstyp als hexadezimaler Wert angegeben. Bei root-Partitionen handelt es sich um den Wert 8300, welcher als Standard-Wert definiert ist. Dadurch reicht ein Druck auf ENTER vollkommen aus. Beim Erstellen der Swap-Partition geht man genauso vor wie bei der Linux-Partition. Der einzige Unterschied besteht im Partitionstyp mit der Nummer 8200. Mit dem Befehl p werden nochmal alle erstellten Partitionen angezeigt, bevor sie mit w endgültig angelegt werden. 1.3. Anlegen der Dateisysteme Um ein Dateisystem anzulegen, geht man nach folgendem Schema vor: mkfs.<Dateisystem> -L <Alias-Name> /dev/sda<Nr> Dabei erstellt der Befehl mkfs (make file system) das Dateisystem. Nach einem Punkt erfolgt der Name des gewünschten Systems. Anzumerken ist, dass Linux nicht in der Lage ist, von jedem Dateisystemtyp aus zu booten. In der boot-Partition ist die Auswahl also eingeschränkt. Näheres ist in der entsprechenden manpage nachzulesen. Der Parameter –L gibt einen Alias für die Partition an, gefolgt vom Original-Pfad der Partition. Oben genannter Weg funktioniert für das Einbinden „gewöhnlicher“ Partitionen. Zum Einbinden einer Swap-Partition muss aber lediglich der Befehl mkfs durch mkswap ausgetauscht werden. Weiterhin ist die explizite Angabe eines Dateisystems nicht notwendig, da Swap-Partitionen das FAT-System nutzen. Außerdem wird die Nummer um 1 erhöht: mkswap -L <Alias-Name> /dev/sda<Nr + 1> Zu Energiesparzwecken kann das RAM auf die Festplatte mittels suspend2disk ausgelagert werden. Dabei muss diese mindestens so groß wie das physisch vorhandene RAM sein, sonst passt letzteres nicht hinein. Wenn ich also 4 GB physisches RAM habe, muss ich hierfür auch mindestens 4 GB Plattenplatz reservieren. 1.4. Einbinden der Partitionen Partitionen werden über den Befehl mount in das System ein- und über umount wieder ausgebunden. Zum Einbinden wird folgende Syntax verwendet: mount /dev/sda<Nr> /mnt Dabei stellt /mnt das Verzeichnis dar, in welchem sich alle Geräte befinden. Swap-Paritionen werden über swapon eingebunden: 1. swapon –L <Alias-Name> 2. swapon <Gerätename> 1.5. Installation des Basissystems WICHTIG: Wird eine Virtualisierungssoftware verwendet kann es vorkommen, dass die Internetverbindung trotz der folgenden Beschreibung weiterhin nicht funktioniert. In diesem Fall sind die entsprechenden Einstellungen der Software zu prüfen. 1.5.1. Überprüfen der Netzwerkverbindung Sofern der PC über eine Internetverbindung verfügt, sollte diese im Normalfall bereits jetzt Pakete senden und empfangen können. Dies kann über ping getestet werden. Kommt die Fehlermeldung unknown host, dann ist zunächst der Name des Netzwerkadapters zu ermitteln: ip link lo steht für die lokale Adresse, welche in der Regel 127.0.0.1 (IPv4) lautet. Darunter steht der Name des eingebauten Netzwerkadapters. Verbindet sich der PC über einen Router mit dem Internet ist folgender Befehl zum Verbindungsaufbau zu verwenden: dhcpcd <Gerätename> Ein erneuter ping sollte nun zum gewünschten Ergebnis führen. 1.5.2. Basispakete installieren Es kann zunächst die mirrorlist angepasst werden. Dazu ist ein Backup der Originaldatei empfehlenswert: cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak Danach ist die mirrorlist zu bearbeiten: nano /etc/pacman.d/mirrorlist Alternativ kann man auch eine Liste mit deutschen Servern mit folgenden Befehl erstellen: grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.bak | sed '/--/d' > /etc/pacman.d/mirrorlist Als nächstes werden die Grundpakete base und base-devel installiert: pacstrap /mnt base base-devel 1.5.3. fstab erzeugen Die Datei fstab dient er Erzeugung von Laufwerken, welche folgendermaßen erzeugt wird: 1. genfstab –p /mnt > /mnt/etc/fstab 2. genfstab –Lp /mnt > /mnt/etc/fstab Der Unterschied liegt in der Laufwerkserzeugung mittels Geräte- oder Alias-Namen. Zur Kontrolle kann die Datei mittels nano aufgerufen werden. 1.6. neuinstalliertes System starten Das neuinstallierte System wird über arch-chroot /mnt gestartet. 1.6.1. Systemkonfiguration Als erstes sollte ein Rechnername festgelegt werden: echo <Name> > /etc/hostname Spracheinstellungen werden in der locale.conf gespeichert (z.B. deutsch): echo LANG=de_DE.UTF-8 > /etc/locale.conf echo LC_COLLATE=C >> /etc/locale.conf Hinweis: echo LC_COLLATE=C >> /etc/locale.conf betrifft die Sortierregel von Archlinux und kann auch weggelassen werden. Nach LC_COLLATE=C sortiert Archlinux getrennt nach Groß- und Kleinschreibung, was verwirrend sein kann. Wird es weggelassen, wird automatisch nach der Eingabe vorher sortiert. Auch das Tastaturlayout sollte geändert werden: echo KEYMAP=de-latin1 > /etc/vconsole.conf Die Zeitzone ist entsprechend den Spracheinstellungen anzupassen: ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime Hierbei wird ein symbolischer Link erstellt. Abschließend wird die Datei /etc/locale.gen konfiguriert: nano /etc/locale.gen Die Kommentare vor den gewünschten Spracheinstellungen sind zu entfernen. Damit die Einstellungen wirksam werden, ist die Datei über locale-gen neu zu generieren. 1.6.2. Linux-Kernel erzeugen Der Linux-Kernel wird über mkinitcpio -p linux entgültig erstellt 1.6.3. Bootloader installieren HINWEIS: Bootloader müssen installiert werden. Sollte ein Fentstermanager (z.B. KDE, GNOME, Xfce etc.) genutzt werden, kann dieser installiert und automatisch gestartet werden. Mehr dazu unter Punkt 2. Bei Nutzung von GPT ist gptfdisk neben den Bootloadern mittels pacman –S gptfdisk zu installieren. 1.6.3.1. Syslinux Syslinux wird über den Befehl pacman –S syslinux installiert. Danach ist die Konfigurationsdatei mittels nano /boot/syslinux/syslinux.cfg anzupassen. In dieser ist der Eintrag APPEND root=/dev/sda3 rw entsprechend auf die richtige Nummer zu korrigieren. Soll überhaupt kein Menü angezeigt werden, ist der Eintrag UI menu.c32 auszukommentieren. Abschließend wird mittels syslinux-install_update –iam auf den Bootsektor installiert. 1.6.3.2. Grub Zum Schluss der Grundinstallation sind ein exit, das Aushängen mittels umount und ein reboot notwendig. 2. weitere wichtige Konfigurationen 2.1. Benutzer anlegen Um welches Linux-System es sich auch handeln mag: aus Sicherheitsgründen sollte NIE der Nutzer root zur Einrichtung verwendet werden. Daher werden Benutzer mit eingeschränkten Rechten angelegt: useradd –m –g users –s /bin/<Art der Shell> <Benutzername> Über den Parameter –m wird das /home-Verzeichnis neu angelegt. Kommen weitere Benutzer in das System hinzu, werden diese bei Angabe des –m-Parameters automatisch in das /home-Verzeichnis integriert. -g legt die primäre Gruppenzugehörigkeit an (in diesem Fall die eingeschränkte Gruppe users). -s legt die Login-Shell fest, mit welcher sich der Benutzer anmeldet. Abschließend wir der Benutzer durch Angabe des Namens angelegt. Dabei ist darauf zu achten, dass der Benutzername durchgehend klein geschrieben wird. 2.2. sudo Damit man dennoch auch als normaler Benutzer administrative Aufgaben ausführen kann installiert man sudo über pacman –S sudo. Dieses nützliche Tool vergibt an normale Benutzer vorübergehende root-Rechte, sollte aber über die Datei /etc/sudoers vor dessen Nutzung entsprechend konfiguriert werden. Einen Benutzer der Datei hinzuzufügen funktioniert über folgenden Befehl: sudo adduser <Benutzername> Man kann sich auch die einzelnen Rechte anzeigen lassen, also was bei Benutzung von sudo erlaubt ist und was nicht: sudo –l Grundsätzlich sollte bei Benutzung von sudo eine Passwortabfrage erfolgen. Dazu öffnet man zunächst über visudo die /etc/sudoers und löscht den Befehl NOPASSWD: <Benutzername> ALL=(ALL) NOPASSWD: ALL Des Weiteren sollte der Timeout verkürzt werden: Defaults timestamp_timeout = <Anzahl> Dabei gibt ein timeout von 0 an, dass die Passwortabfrage immer erfolgt, was zu einer erhöhten Sicherheit führt. 2.3. Beschränkungen für root Eine standardmäßige Benutzung des Kontos root ist nicht nur grob fahrlässig, sondern auch gefährlich. Sollte kein weiterer Benutzer als root im System erstellt sein, stehen Angreifern die Türen sperrangelweit offen. Daher sind verschiedene Maßnahmen zu ergreifen, die ein solches Eindringen verhindern oder zumindest aufhalten. Eine dieser Maßnahmen ist das oben Beschriebene Verfahren mittels sudo. Da aber auch ein nicht genutzter root noch gefährlich sein kann (immerhin ist dieser noch aktiv), ist seine Deaktivierung über den Befehl passwd –d root ratsam. Schaut man danach in die /etc/shadow wird durch ein ! ersichtlich, dass root kein Passwort mehr besitzt bzw. dieses ignoriert und somit deaktiviert wurde. 2.4. Zeitserver Der Zeitserver ntp (Network Time Protocol) setzt die Systemzeit automatisch auf die innerhalb der Konfigurationsdatei angegebene Serverzeit. Das Paket wird mittels pacman –S ntp heruntergeladen. Die Konfigurationsdatei /etc/ntp.conf muss danach für die entsprechende Zeitzone bearbeitet werden, z.B: server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.org Danach einfach nptd eingeben und über ntpq – p den Dienst bei jedem Bootvorgang starten. 2.5. 2.6. 2.7. Drucker Audio Netzwerkverbindung Netzwerkverbindungen können bereits während des boot-Vorgangs hergestellt werden. Am einfachsten geht dies über folgenden Befehl, welcher einen symbolischen Link zur entsprechenden Systemdatei anlegt (Installation des Pakets dhcpcd vorausgesetzt): systemctl enable dhcpcd Weitere nützliche Tools sind netctl und ifplugd, welche über pacman –S netctl ifplugd heruntergeladen werden können. Im Ordner /etc/netctl/examples befinden sich bereits einige Profile, welche in den Ordner /etc/netctl vollständig kopiert und angepasst werden können: cp /etc/netctl/examples/<Beispieldatei> /etc/netctl/ <Beispieldatei> darf in diesem Fall keinen Bindestrich enthalten. Gestartet wird die Datei über den Befehl netctl start <Beispieldatei>. Kommt es hier zu Fehlern können diese über journalctl –xn und netctl status <Beispieldatei> aufgerufen werden. Damit netctl auch während des boot-Vorgangs startet wird folgender Befehl ausgeführt: netctl enable <Beispieldatei> Hierbei wird ein symbolischer Link zur ausführenden systemd-Datei hergestellt. Weiterhin sorgt der Befehl systemctl enable netctl-ifplugd@<interface>.service dafür, dass ein weiterer symbolischer Link erstellt wird. Dieser erkennt sowohl ein angeschlossenes als auch ein nicht angeschlossenes Kabel. 3. Konfiguration des X-Server und Installation der Benutzeroberfläche 3.1. Installation und Konfiguration von X Damit überhaupt erst Grafik angezeigt werden kann, muss der Xorg-Server mit seinen Paketen installiert werden: pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils xterm 3.2. Installation des Grafiktreibers Zunächst kann über lspci | grep VGA der passende Grafiktreiber herausgefunden werden. Folgende Grafiktreiber stehen zur Verfügung: xf86-video-apm Alliance ProMotion Videotreiber xf86-video-ark ark Videotreiber xf86-video-ati ati Videotreiber xf86-video-chips Chips and Technologies Videotreiber xf86-video-cirrus Cirrus Logic Videotreiber xf86-video-dummy dummy Videotreiber xf86-video-fbdev framebuffer Videotreiber xf86-video-glint GLINT/Permedia Videotreiber xf86-video-i128 Intel i128 Videotreiber xf86-video-i740 Intel i740 Videotreiber xf86-video-intel Intel i810/i830/i915/945G/G965+ HDGraphics HDGraphics2 HD4000 Videotreiber xf86-video-imstt Integrated Micro Solutions Twin Turbo Videotreiber xf86-video-mga mga Videotreiber (Matrox Graphikadapter) xf86-video-neomagic neomagic Videotreiber xf86-video-nv nvidia nv Videotreiber xf86-video-nouveau Nvidia Open Source Treiber xf86-video-rendition Rendition Videotreiber xf86-video-s3 S3 Videotreiber xf86-video-s3virge S3 Virge Videotreiber xf86-video-savage savage Videotreiber xf86-video-siliconmotion siliconmotion Videotreiber xf86-video-sis SiS Videotreiber xf86-video-sisusb SiS USB Videotreiber xf86-video-tdfx tdfx Videotreiber xf86-video-trident Trident Videotreiber xf86-video-tseng tseng Videotreiber xf86-video-unichrome unichrome Videotreiber xf86-video-v4l v4l Videotreiber xf86-video-vesa vesa Videotreiber xf86-video-vga VGA 16 color Videotreiber xf86-video-via via Videotreiber xf86-video-vmware vmware Videotreiber xf86-video-voodoo voodoo Videotreiber virtualbox-guest-utils Virtualbox Videotreiber Installiert wird der Treiber dann über pacman –S <Treibername>. Der vesa-Treiber ist der Allgemeinste Treiber und sollte mit fast jedem modernem Chipset funktionieren. Dies kann notwendig sein, sofern der Kartentreiber nicht bekannt ist. Eine weitere Möglichkeit ist die Installation aller Treiber über pacman –S xorg-drivers. Der Xorg-Server sucht sich den passenden Treiber automatisch. 3.3. Desktopumgebung installieren und ausführen HINWEIS: Aufgrund der Vielzahl an vorhandenen Desktopumgebungen (KDE, GNOME, Xfce, Fluxbox u.v.m.) wird hier auf die im Internet vorhandenen Dokumentationen verwiesen. Die Startparameter werden über die Datei xinitrc unter /etc/X11/xinit bearbeitet. Ebenso wie die einzelnen Konfigurationsmöglichkeiten sei auch hier auf das Internet verwiesen. In der Regel schreibt man hinter den exec-Befehl den Namen des Windowmanagers, z.B. exec xfce4 oder exec startfluxbox. Gestartet wird die Desktopumgebung immer über startx. 3.4. Programme zeitverzögert starten Programme lassen sich ebenfalls automatisch starten. Dabei ist allerdings zu beachten, dass ein zu früher Programmstart unter Umständen zu Fehlern führen kann. Dabei reicht die Palette vom einfachen Anzeigefehler bis hin zum Komplettabsturz. Um dies zu verhindern, kann in die Start-Datei des entsprechenden Windowmanagers folgender Befehl eingegeben werden: sleep <Anzahl> && <Programm>& <Anzahl> steht hier für Sekunden, wobei eine Sekunde einer 1 entspricht. 3.5. Deutsches Tastaturlayout verwenden Bei bestimmten Windowmanagern wird standardmäßig das englische Tastaturlayout verwendet. Dieses wird in der Datei .Xmodmap gespeichert, welche ihre Konfiguration durch den Befehl xmodmap erhält. Es empfiehlt sich, die für das entsprechende Layout bearbeitete Datei für den späteren Gebrauch auf ein externes Medium (z.B. USB) zu speichern. Die Bearbeitung einer solchen Datei ist leider etwas aufwendiger. Daher wird hier auf das Internet verwiesen. Sobald die Datei .Xmodmap angelegt worden ist (am besten im jeweiligen Benutzerverzeichnis), wird diese über die Start-Datei des entsprechenden Windowmanagers aufgerufen. HINWEIS: Sollte es vorkommen, dass die ALT-Taste nicht erkannt wird, hilft ein Aufruf des Tools setxkbmap de direkt unterhalb der .Xmodmap-Datei. 3.6. automatische Anmeldung am X-Server Die automatische Anmeldung am X-Server erfolgt einfach über das Einfügen von 3 Zeilen Code in die Datei /home/<Benutzer>/.bash_profile: if [ “$(tty)“ = “/dev/tty1“ ]; then startx fi Hier ist unbedingt auf die richtige Syntax zu achten, da der Befehl sonst ignoriert wird. 4. Tipps und Tricks 4.1. automatisierte Anmeldung eines Benutzers Manchmal ist es gewünscht, dass Benutzer vollkommen automatisch am System angemeldet werden (ähnlich wie bei Windows). Dazu ist eine spezielle Datei zunächst zu kopieren und anschließend zu bearbeiten: cp –r /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected] Innerhalb der Datei wird nun nach dem Eintrag ExecStart=-/sbin/agetty –noclear %I gesucht. Hier ersetzt man das Ganze durch ExecStart=-/sbin/agetty –noclear –a <Benutzername> %I 38400. Als nächstes muss der Dienst getty deaktiviert werden. Dies geschieht durch den Aufruf von systemctl disable getty@tty1. Anschließend wird über systemctl enable autologin@tty1 die neu angelegte Datei bei jedem Systemstart aufgerufen. 4.2. shutdown als Benutzer im Normalfall kann man als normaler Benutzer einen shutdown nur mittels sudo shutdown <Parameter> durchführen, da hierfür root-Rechte benötigt werden. Jedoch existiert mit polkit ein Tool, welches auch dem Benutzer eine Möglichkeit zum Herunterfahren und Neustarten des PC’s in die Hand gibt. Heruntergeladen wird das Ganze über pacman –S polkit. Zum Ausführen gibt der Benutzer einfach folgenden Befehl ein: systemctl <Shutdown-Parameter> 4.3. Dateien und Verzeichnisse mit Schreibschutz belegen Gerade wenn einfache Benutzer sich am System anmelden, sollten bestimmte Dateien so gut wie möglich geschützt sein. Damit ein Überschreiben dieser Dateien überhaupt nicht möglich ist und somit möglicher Schadcode eingeschleust wird, kann ein Nur-Lese-Recht eingestellt werden: chattr +i <Dateiname> Insbesondere sollte diese Einstellung für Dateien getroffen werden, in welchen Änderungen zum Verhalten beim Login oder zur Ausführung des Windowmanagers erforderlich sind. Diese sind standardmäßig nämlich in vollem Umfang bearbeitbar. Um den Schreibschutz wieder zu entfernen, ersetzt man das + durch ein -, wobei der Befehl derselbe bleibt. 4.4. Weitere Geräte am System anmelden HINWEIS: verwendet man eine Virtualisierungssoftware, sind ggf. zusätzliche Tools zu installieren. Die Anmeldung weiter Geräte (z.B. USB) ist relativ schnell realisiert. Zunächst schaut man über den Befehl sudo blkid –o list –w /dev/null, ob ein weiteres Gerät gefunden wurde. Beispielsweise erhält ein angeschlossener USB-Stick die Bezeichnung /dev/sdb1. Weiterhin erkennt man, was für ein Dateisystem genutzt wird. Hat man das Gerät gefunden legt man im Verzeichnis /mnt ein entsprechendes Unterverzeichnis an, welches zum schnellen Wiederfinden den Namen des Gerätes trägt mkdir /mnt/<Unterordner> Spezielle Angaben in der Datei /etc/fstab versuchen nun, das Gerät zu erkennen. Ausgehend von einem USB-Stick mit der Bezeichnung sdb1 gibt man innerhalb von /etc/fstab zum Beispiel an: /dev/sdb1 /mnt/<Unterordner> <Dateisystem> auto rw,users,umask=0000 0 0 Das USB-Gerät wird automatisch erkannt und erhält komplette Schreibrechte (auto und rw). Dabei wird der Benutzer der Gruppe users zugeordnet. Eine Ausnahme bilden Geräte mit NTFS-Dateisystem. Diese werden standardmäßig mit Lese-, aber keinen Schreibrechten ausgestattet. Um auch NTFS-fähige Geräte nutzen zu können, lädt man sich das Paket ntfs-3g herunter. Die Einrichtung kann dann ganz normal über die /etc/fstab erfolgen. /dev/sdb1 /mnt/usb ntfs-3g defaults,locale=de_DE.utf8,umask=000 0 0 Oder man gibt in die Konsole folgenden Befehl ein: sudo mount –t ntfs-3g /dev/sdb1 /mnt/usb Zum Schluss muss das Gerät nur noch über mount /mnt/<Unterordner> eingehangen werden. Um NTFS-fähige Geräte wieder auszuhängen, ruft man den Befehl fusermount –u /mnt/<Unterordner> auf.