Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:arcchlinux_-_minimal_server_installation

Dies ist eine alte Version des Dokuments!


ArchLinux - Minimal Server Installation

Die hier verwendete Installationsmethode ist eine Installation von einem ISO-Image/USB-Stick. Es kommt die einzige verfügbare Variante von ArchLinux in der Version 2020.01.01 zum Einsatz.

Herunterladen

Die Installationsquellen, sprich die ISO-Datei, kann unter nachfolgend aufgelistetem Link heruntergeladen werden:

Als Beispiel-Quelle kann hier nachfolgender Link dienen:

Zum Herunterladen der DVD in das Zielverzeichnis /tmp, kann nachfolgender Befehl genutzt werden:

# wget https://www.archlinux.de/download/iso/2020.01.01/archlinux-2020.01.01-x86_64.iso -P /tmp

USB-Stick erstellen

Das ISO-Image kann mit nachfolgendem Befehl auf einen USB-Stick - hier /dev/sdb als startbereite Abbilddatei (bootable image) erstellt werden:

# dd bs=4M if=/tmp/archlinux-2020.01.01-x86_64.iso of=/dev/sdb && sync

Start: ISO-Image

Nach dem Einschalten des Servers, kann mit der Installation begonnen werden, in dem ein Start von dem sich auf dem USB-Stick befindlichen ArchLinux-ISO-Image in der Version 2019.12.01, durchgeführt wird.

BOOT

Falls dies erfolgreich realisiert werden konnte, sollte in etwa nachfolgender Bildschirm erscheinen:

ArchLinux - ISO - Boot

Durch drücken der [Eingabe|Return]-Taste auf dem Menüpunkt Boot Arch Linux (x86_64) wird ein initialer Start durchgeführt. Nach erfolgreichem Start des „Live“„-Images, sollte nachfolgender Bildschirm erscheinen.

:!: HINWEIS - Eine Anmeldung als Benutzer root ist bereits erfolgt!

Vorbereitungen

Um die folgenden Installationsschritte durchführen zu können, werden nachfolgende Gegebenheiten vorausgesetzt.

  1. Es besteht die Möglichkeit, eine Anbindung an das Internet zu konfigurieren

Tastaturlayout: deutsch

:!: ACHTUNG - Nach dem starten des ISO-Images wird ein US/Englisches-Tastaturlayout verwendet!

Damit alle nachfolgenden Eingabe unter Verwendung eines deutschen Tastaturlayouts durchgeführt werden können, ist nachfolgender Befehl auszuführen:

root@archiso ~ # loadkeys de-latin1-nodeadkeys

Der Buchstabe [y] befindet sich auf der englischen Tastatur auf der Taste [z].
Das Zeichen [-] befindet sich auf der englischen Tastatur auf der Taste [ß].

:!: HINWEIS - Anschließend sollte ein deutsches Tastaturlayout geladen sein!

Passwort: root

Damit später nachfolgende Konfigurationen durchgeführt werden können, soll eine Verbindung via SSH hergestellt werden.

Dazu ist es erforderlich, das der Benutzer root im „Live“-System ein Passwort besitzt, was mit nachfolgendem Befehl gesetzt werden kann:

root@archiso ~ # passwd
New password
Retype new password:
passwd: password updated successfully

Das Passwort ist in der shell hinter New password: einzugeben und mit der [Return/Enter]-Taste zu bestätigen. Anschließend ist der shell hinter Retype new password: das gleiche Passwort erneut einzugeben und ebenfalls mit der [Return/Enter]-Taste zu bestätigen.

Netzwerkkarte: manuelle Konfiguration

Nachfolgende Befehle sollen eine Verbindung mit einem bestehenden Netzwerk mit Internet-Zugang herstellen.

Zuerst sollte die Bezeichnung der Netzwerkkarte mit nachfolgendem Befehl ermittelt werden:

root@archiso ~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:00:de:ad brd ff:ff:ff:ff:ff:ff
    inet6 fe80::baa6:bfbf:5fbd:1f6c/64 scope link 
       valid_lft forever preferred_lft forever

Die Bezeichnung der Netzwerkkarte in oben gezeigtem Beispiel lautet aktuell: ens3. In der gleichen Zeile ist auch zu sehen, das die Karte bereits den Status UP hat, also aktiv und nutzbar ist.

:!: HINWEIS - Falls die Netzwerkkarte nicht UP und damit aktiv sein sollte, kann mit nachfolgendem Befehl, die Karte mit der Bezeichnung ens3 aktiviert, sprich in den Status UP versetzt werden:

root@archiso ~ # ip link set up dev ens3

Die Zuweisung einer IPv4-Netzwerkadresse kann mit nachfolgendem Befehl durchgeführt werden:

root@archiso ~ # ip addr add 192.168.1.250/24 dev ens3

Ein Überprüfung, ob die IPv4-Netzwerkadresse für die Netzwerkkarte mit der Bezeichnung ens3 gesetzt wurde, kann mit nachfolgendem Befehl erfolgen:

root@archiso ~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:00:de:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::baa6:bfbf:5fbd:1f6c/64 scope link 
       valid_lft forever preferred_lft forever

Damit nun eine Verbindung nicht nur in das bereits aktuelle erreichbare Netzwerk möglich ist, sondern auch eine Standardroute - default-Route den Weg in Richtung Internet finden kann, ist die Konfiguration einer default-Route erforderlich, was mit nachfolgendem Befehl durchgeführt werden kann:

root@archiso ~ # ip route add default via 192.168.1.10

Eine Überprüfung mit nachfolgendem Befehl zeigt nun die aktuellen Routen, inklusive der default-Route an, welche auch in das Internet führen sollte:

root@archiso ~ # ip ro
default via 192.168.1.10 dev ens3
192.168.1.0/24 dev ens3 proto kernel scope link src 192.168.1.250

Ob die Verbindung zum Internet hergestellt wurde, kann mit nachfolgendem Test durch den nachfolgenden Befehl durchgeführt werden. Drei ping in Richtung eines Namensservers (DNS) von Google mit der IP-Adresse: 8.8.8.8, sollte nun möglich sein und eine Rückmeldung wie nachfolgende zurück liefern:

root@archiso ~ # ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8 icmp_seq=1 ttl=57 time=82.4 ms
64 bytes from 8.8.8.8 icmp_seq=2 ttl=57 time=95.3 ms
64 bytes from 8.8.8.8 icmp_seq=3 ttl=57 time=113 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 82.381/97.030/113.418/12.730 ms

Namensauflösung: /etc/resolv.conf

Damit nicht nur der Netzwerk technische Zugriff auf das Internet möglich ist, sondern auch eine Namensauflösung wie z.B. Google zu einer IP-Adresse möglich ist, ist es erforderlich, dass ein Namensserver konfiguriert wird, welche im Netzwerk oder aus dem Netzwerk erreichbar ist. Dies kann durch Ausführen des nachfolgenden Befehls durchgeführt werden:

root@archiso ~ # echo nameserver 192.168.1.20 >> /etc/resolv.conf

:!: HINWEIS - Falls kein eigener Namensserver zur Verfügung stehen sollte, wäre auch ein extern erreichbarer Nameserver wie der von Google ein ggf. kurzfristige Option, was durch Ausführung von nachfolgenden Befehlen ermöglicht werden könnte:

root@archiso ~ # echo nameserver 8.8.8.8 >> /etc/resolv.conf
root@archiso ~ # echo nameserver 8.8.4.4 >> /etc/resolv.conf

Mit nachfolgendem Befehl kann überprüft werden, ob die Ergänzung der Konfiguratiosndatei /etc/resolv.conf erfolgreich war:

root@archiso ~ # cat /etc/resolv.conf
# Resolver configuration file.
# See resolv.conf(5) for details.
nameserver 192.168.1.20

Ob die Namensauflösung Richtung Internet hergestellt wurde, kann mit nachfolgendem Test durch den nachfolgenden Befehl durchgeführt werden. Drei ping in Richtung von Google, sollte nun möglich sein und eine Rückmeldung wie nachfolgende zurück liefern:

root@archiso ~ # ping -c3 google.de
PING google.de (172.217.23.35) 56(84) bytes of data.
64 bytes from lhr35s02-in-f3.1e100.net (172.217.23.35): icmp_seq=1 ttl=57 time=23.5 ms
64 bytes from lhr35s02-in-f3.1e100.net (172.217.23.35): icmp_seq=1 ttl=57 time=25.0 ms
64 bytes from lhr35s02-in-f3.1e100.net (172.217.23.35): icmp_seq=1 ttl=57 time=22.9 ms

--- google.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2619ms
rtt min/avg/max/mdev = 22.853/23.799/25.031/0.911 ms

SSH-Dienst: starten

Damit eine Verbindung zum Server, welcher via „Live“-ISO-Image gestartet wurde, hergestellt werden kann, muss der bereits entsprechend vorkonfigurierte SSH-Dienst/Daemon mit nachfolgendem Befehl gestartet werden:

root@archiso ~ # systemctl start sshd.service

Eine Überprüfung ob der SSH-Dienst/Daemon auch ordnungsgemäß gestartet wurde, kann durch ausführen des nachfolgenden Befehls durchgeführt werden und sollte eine Ausgabe in etwa wie nachfolgende zur Folge haben:

root@archiso ~ # systemctl status sshd.service
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor prese>
   Active: active (running) since Sun 2020-01-10 08:28:08 UTC; 8s ago
 Main PID: 822 (sshd)
    Tasks: 1 (limit: 2332)
   Memory: 2.0M
   CGroup: /system.slice/sshd.service
           └─822 /usr/bin/sshd -D

Jan 10 08:28:08 archiso systemd[1]: Started OpenSSH Daemon.
Jan 10 08:28:08 archiso sshd[882]: Server listening on 0.0.0.0 port 22.
Jan 10 08:28:08 archiso sshd[882]: Server listening on :: port 22.

Verbindung: SSH-Login (root)

Jetzt kann eine erste Verbindung als Benutzer root via SSH-Login auf dem Server, welcher via „Live“-ISO-Image gestartet wurde, hergestellt werden. Nachfolgender Befehl soll dazu auf einer lokalen Workstation, nicht auf dem Server verwendet werden:

$ ssh root@192.168.1.250
The authenticity of host '192.168.1.250 (192.168.1.250)' can't be established.
ECDSA key fingerprint is SHA256:AizXWHnKF2FQHZxGpuPW8Wk/TG/NZYuzNbwLxmmGCOw.
ECDSA key fingerprint is MD5:a0:b5:24:1a:f5:84:81:14:b3:ec:2f:7c:3a:dd:1a:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.250' (ECDSA) to the list of known hosts.
root@192.168.1.250's password: 
Last login: Fri Jan 10 06:50:29 2020
root@archiso ~ #

Partitionierung: fdisk

Damit nun nach dem Start des sich auf dem USB-Stick befindlichen ArchLinux-ISO-Image in der Version 2020.01.01 aus dem „Live“-ISO-Image eine permanente Installation wird, ist zuerst die Partitionierung der Festplatte durchzuführen.

:!: HINWEIS - Es gibt keinen Installationsmanager wie bei anderen Distributionen, der diese Konfiguration Menü gestützt durchführt!

Nachfolgend soll eine Partitionierung der Festplatte unter Einsatz eines LVM eingerichtet werden. Die Partitionierung soll hier beispielhaft mit nachfolgender Festplattenaufteilung durchgeführt werden

Phyische Festplatte/LVM Größe Mount-Point Dateisystem
/dev/vda
/dev/vda1
/dev/vda1 1 GB /boot ext4
/dev/vda2
/dev/mapper/archlinux-swap 2 GB [SWAP] swap
/dev/mapper/archlinux-root 10 GB / ext4
/dev/mapper/archlinux-home 1 GB /home ext4
/dev/mapper/archlinux-var 3 GB /var ext4
/dev/mapper/archlinux-var_log 2 GB /var/log ext4
SUMME 19 GB

Damit die noch unformatiert Festplatte partitioniert werden kann, soll dies mit Unterstützung des Befehl fdisk durchgeführt werden.

Nachfolgender Befehl listet die aktuelle, noch leere Festplattenkapazitäten auf:

root@archiso ~ # fdisk -l | grep -i 'Disk /dev/vd'
Disk /dev/vda: 19.54 GiB, 20971520000 bytes, 40960000 sectors

Schritt 1: fdisk Interaktiver-Modus

:!: ACHTUNG - Die Befehle bitte mit großer Sorgfalt ausführen, da sonst Beschädigungen am Dateisystem entstehen !!!
:!: ACHTUNG - Bitte darauf achten, nicht versehentlich eine andere Festplatte zu formatieren !!!

Mit nachfolgenden Befehlen, wird die Festplatte /dev/vda in Bearbeitung genommen, um diese dann zu partitionieren:

:!: ACHTUNG -Hier ist dies /dev/vda, bitte ggf. an Ihre Umgebung und Bedürfnisse anpassen !!!

root@archiso ~ # fdisk /dev/vda

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xea65ab2f.

Command (m for help):

Schritt 2: Erste Partition anlegen

Durch nachfolgende Befehle wird eine

  • neue „primäre“ Partition
  • mit der Nummer 1
  • und einer Größe von 1 GB angelegt:

Nachfolgende Tasten sind wie folgt zu drücken:

  1. n
  2. p
  3. 1
  4. [Enter/Return]-Taste = Bestätigung für „First sector 2048“
  5. und die Eingabe der Größe, durch +1024M
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-40959999, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-40959999, default 40959999): +1024M

Created a new partition 1 of type 'Linux' and of size 1 GiB.

Anschließend kann durch drücken der Taste p die neue Partitionierung aufgelistet werden, was eine Ausgabe wie nachfolgende zur Anzeige bringen sollte:

Command (m for help): p
Disk /dev/vda: 19.54 GiB, 20971520000 bytes, 40960000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xea65ab2f

Device     Boot Start     End Sectors Size Id Type
/dev/vda1        2048 2099199 2097152   1G 83 Linux

Schritt 3: Zweite Partition anlegen

Durch nachfolgende Befehle wird eine

  • neue „primäre“ Partition
  • mit der Nummer 2
  • in der Größe der restlichen Festplatte angelegt:

Nachfolgende Tasten sind wie folgt zu drücken:

  1. n
  2. p
  3. 2
  4. [Enter/Return]-Taste = Bestätigung für „First sector …“
  5. [Enter/Return]-Taste = Bestätigung für „Last sector …“
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2099200-40959999, default 2099200): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-40959999, default 40959999): 

Created a new partition 2 of type 'Linux' and of size 18.5 GiB.

Schritt 4: Zweite Partition Typ ändern

Anschließend muss der Partitionstyp bei der zweiten Partition auf Linux LVM mit nachfolgenden Tasten angepasst werden:

  1. t
  2. [Enter/Return]-Taste = Bestätigung für „Partition number (1,2, default 2)“
  3. 8e
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Abschließend kann durch drücken der Taste p die neue Partitionierung aufgelistet werden, was eine Ausgabe wie nachfolgende zur Anzeige bringen sollte:

Command (m for help): p
Disk /dev/vda: 19.54 GiB, 20971520000 bytes, 40960000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xea65ab2f

Device     Boot   Start      End  Sectors  Size Id Type
/dev/vda1          2048  2099199  2097152    1G 83 Linux
/dev/vda2       2099200 40959999 38860800 18.5G 8e Linux LVM

Schritt 5: Partitionstabelle schreiben

Anschließend ist nun die Taste

  1. w

zu drücken, um die Änderung auch tatsächlich in die Partitionstabelle die Festplatte zu schreiben:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@archiso ~ #

LVM

Nachfolgend sollen nun die einzelnen Mount-Points auf den zuvor angelegten Partitionen erstellt und formatiert werden.

Schritt 1: Phys. Volume anlegen

Anlegen eines physischen Volume zur Nutzung durch ein LVM mit nachfolgendem Befehl:

root@archiso ~ # pvcreate /dev/vda2
  Physical volume "/dev/vda2" successfully created.

Schritt 2: Volume Gruppe anlegen

Anlegen einer Volume Gruppe mit dem Namen archlinux zur Nutzung durch ein LVM mit nachfolgendem Befehl:

root@archiso ~ # vgcreate archlinux /dev/vda2
  Volume group "archlinux" successfully created

Schritt 3: Logische Volumes anlegen

Nachfolgende Befehle legen die logischen Volumes

  • /dev/mapper/archlinux-swap
  • /dev/mapper/archlinux-root
  • /dev/mapper/archlinux-home
  • /dev/mapper/archlinux-var
  • /dev/mapper/archlinux-var_log

an:

root@archiso ~ # lvcreate --name swap -L2048M archlinux
  Logical volume "swap" created.
root@archiso ~ # lvcreate --name root -L10240M archlinux
  Logical volume "root" created.
root@archiso ~ # lvcreate --name home -L1024M archlinux
  Logical volume "home" created.
root@archiso ~ # lvcreate --name var -L3072M archlinux
  Logical volume "var" created.
root@archiso ~ # lvcreate --name var_log -L2048M archlinux
  Logical volume "var_log" created.
Mit nachfolgendem Befehl kann überprüft werden, ob die Neuanlagen erfolgreich durchführt wurden:
<code>
root@archiso ~ # lsblk /dev/vda
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                   254:0    0 19.5G  0 disk 
├─vda1                254:1    0    1G  0 part 
└─vda2                254:2    0 18.5G  0 part 
  ├─archlinux-swap    253:0    0    2G  0 lvm  
  ├─archlinux-root    253:1    0   10G  0 lvm  
  ├─archlinux-home    253:2    0    1G  0 lvm  
  ├─archlinux-var     253:3    0    3G  0 lvm  
  └─archlinux-var_log 253:4    0    2G  0 lvm 

Dateisysteme formatieren

Nachfolgende Befehle formatieren die zuvor erstellen Partitionen mit einem Dateisystem, je nach Partitionstyp:

root@archiso ~ # mkfs.ext4 /dev/vda1
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 0a4eca7f-882b-4ea1-a950-d2b4636d325c
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkswap /dev/mapper/archlinux-swap
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=9399a618-575f-4ef2-bfaf-6b259c1147fd
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-root
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 4df0fcd7-fade-4887-81c5-fdc78f96572d
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-home
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 777a7860-c768-4277-8c0c-c9194fcd2ec5
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-var
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: c341665d-3f02-4fff-bfd5-346233987ccc
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-var_log
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 7f70accb-6bc6-47be-85a6-cf6fb86a6958
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

Partitonen einhängen

Nachfolgende Befehle hängen die zuvor erstellen Mount-Points in das Dateisystem des Servers ein:

:!: WICHTIG - Zuerst die root-Partition (/dev/mapper/archlinux-root) auf den Mount-Point /mnt

root@archiso ~ # mount /dev/mapper/archlinux-root /mnt

Anschließend müssen für die weiteren Mount-Points unterhalb von / (root) durch nachfolgende Befehle, die entsprechenden Verzeichnisse erst erstellt werden:

root@archiso ~ # mkdir /mnt/boot
root@archiso ~ # mkdir /mnt/home
root@archiso ~ # mkdir /mnt/var

:!: HINWEIS - /var/log fehlt, da zuerst /var als Mount-Point eingehängt werden muss!

Nachfolgender Befehl überprüft, ob alle vorangegangenen Befehle korrekt ausgeführt wurden. Es sollte eine Verzeichnisstruktur wie die nachfolgende angelegt worden sein:

root@archiso ~ # ls -l /mnt 
total 28
drwxr-xr-x 2 root root  4096 Jan 10 09:28 boot
drwxr-xr-x 2 root root  4096 Jan 10 09:28 home
drwx------ 2 root root 16384 Jan 10 09:25 lost+found
drwxr-xr-x 2 root root  4096 Jan 10 09:28 var

Anschließend können nun alle weiteren Mount-Points eingehängt werden, was mit nachfolgenden Befehlen durchgeführt wird:

Zuerst wird die /boot-Partition, mit nachfolgendem Befehl eingehängt werden:

root@archiso ~ # mount /dev/vda1 /mnt/boot

Anschließend wird die [SWAP]-Partition aktiviert, was mit nachfolgender Befehl realisiert wird:

root@archiso ~ # swapon /dev/mapper/archlinux-swap

Anschließend folgen alle restlichen Mount-Points aus dem LVM:

root@archiso ~ # mount /dev/mapper/archlinux-home /mnt/home
root@archiso ~ # mount /dev/mapper/archlinux-var /mnt/var

Jetzt muss noch nach dem Einhängen des Mount-Points - /var ein Verzeichnis für /var/log mit nachfolgendem Befehl erstellt werden:

root@archiso ~ # mkdir /mnt/var/log

Somit kann nun auch der letzte Mount-Point - /var/log eingehängt werden:

root@archiso ~ # mount /dev/mapper/archlinux-var_log /mnt/var/log

Nachfolgender Befehl überprüft, ob die vorhergehenden Aktionen korrekt durchgeführt wurden und sollte eine Ausgabe wie die folgende darstellen:

root@archiso ~ # lsblk /dev/vda
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                   254:0    0 19.5G  0 disk 
├─vda1                254:1    0    1G  0 part /mnt/boot
└─vda2                254:2    0 18.5G  0 part 
  ├─archlinux-swap    253:0    0    2G  0 lvm  [SWAP]
  ├─archlinux-root    253:1    0   10G  0 lvm  /mnt
  ├─archlinux-home    253:2    0    1G  0 lvm  /mnt/home
  ├─archlinux-var     253:3    0    3G  0 lvm  /mnt/var
  └─archlinux-var_log 253:4    0    2G  0 lvm  /mnt/var/log

Installation: Basissystem

/etc/pacman.d/mirrorlist

Bevor die eigentliche Installation des Basissystems erfolgen kann, soll noch eine länderspezifische vorab Auswahl der Installationsquellen getroffen werden, damit die Installation über das Internet möglichst von lokalen Server, hier aus Deutschland, erfolgen kann.

Dazu ist die Optimierung der Konfigurationsdatei

  • /etc/pacman.d/mirrorlist

erforderlich.

Zuerst soll aber eine Sicherungskopie der Konfigurationsdatei /etc/pacman.d/mirrorlist erstellt werden, was mit nachfolgendem Befehl durchgeführt werden kann:

root@archiso ~ # cp -a /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig

Um nur die lokalen Server, hier nur aus Deutschland, in der Konfigurationsdatei /etc/pacman.d/mirrorlist vorzufinden, kann nachfolgender Befehl verwendet werden:

root@archiso ~ # grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.orig | sed '/--/d' > /etc/pacman.d/mirrorlist

Der so generierte Inhalt der Konfigurationsdatei /etc/pacman.d/mirrorlist kann zur Kontrolle mit nachfolgendem Befehl ausgegeben werden:

root@archiso ~ # cat /etc/pacman.d/mirrorlist
## Germany
Server = http://artfiles.org/archlinux.org/$repo/os/$arch
## Germany
Server = http://archlinux.thaller.ws/$repo/os/$arch
## Germany
Server = http://mirror.f4st.host/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.fau.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
## Germany
Server = http://www.gutscheindrache.com/mirror/archlinux/$repo/os/$arch
## Germany
Server = http://packages.oth-regensburg.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.checkdomain.de/archlinux/$repo/os/$arch
## Germany
Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch
## Germany
Server = http://linux.rz.rub.de/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.chaoticum.net/arch/$repo/os/$arch
## Germany
Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.metalgamer.eu/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.23media.com/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.orbit-os.com/archlinux/$repo/os/$arch
## Germany
Server = http://arch.jensgutermuth.de/$repo/os/$arch
## Germany
Server = http://arch.eckner.net/archlinux/$repo/os/$arch
## Germany
Server = http://archlinux.honkgong.info/$repo/os/$arch
## Germany
Server = http://ftp.wrz.de/pub/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.wtnet.de/arch/$repo/os/$arch
## Germany
Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.mikrogravitation.org/archlinux/$repo/os/$arch
## Germany
Server = http://mirror.united-gameserver.de/archlinux/$repo/os/$arch
## Germany
Server = http://mirrors.niyawe.de/archlinux/$repo/os/$arch
## Germany
Server = http://archlinux.mirror.iphh.net/$repo/os/$arch
## Germany
Server = http://ftp.uni-hannover.de/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
## Germany
Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch

Basissystem: /mnt

Der folgende Befehl führt nun die Installation von ArchLinux auf den zuvor eingerichteten Fetsplatten bzw. Partitionen aus.

root@archiso ~ # pacstrap /mnt base base-devel linux linux-firmware lvm2 openssh sshpass vi vim

In den Mount-Point

  • /mnt und alle darunterliegenden,

werden nachfolgende Paketgruppen bzw. Pakete

  • base - Metapaket für ein minimales System.
  • base-devel - Gruppe für Pakete zum Paketbau (empfohlen).
  • linux - Der Arch Linux Standardkernel. (Alternativen: linux-lts, linux-hardened)
  • linux-firmware - Firmware für verschiedene Hardware.
  • lvm2 - Einbindung von LVM Volumes
  • vi - Texteditor für die shell
  • vim - Texteditor für die shell mit Text-Highlighting

installiert.

Optional, aber dringend empfohlen, ist nachfolgendes Paket:

  • openssh - SSH-Server und SSH-Werkzeuge, da sonst kein SSH-Login auf den Server möglich ist.
  • sshpass - SSH-Client ermöglichen, ein Passwort interaktiv abzufragen.

Systemkonfiguration: /mnt

/etc/fstab erstellen

Nachfolgender Befehl erzeugt die Konfigurationsdatei /etc/fstab:

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

Der so erzeugte Inhalt, kann mit nachfolgendem Befehl überprüft werden und sollte eine Ausgabe wie die nachfolgende zum Vorschein bringen:

root@archiso ~ # cat /mnt/etc/fstab
# /dev/mapper/archlinux-root
UUID=4df0fcd7-fade-4887-81c5-fdc78f96572d       /               ext4           rw,relatime      0 1

# /dev/vda1
UUID=0a4eca7f-882b-4ea1-a950-d2b4636d325c       /boot           ext4           rw,relatime      0 2

# /dev/mapper/archlinux-home
UUID=777a7860-c768-4277-8c0c-c9194fcd2ec5       /home           ext4           rw,relatime      0 2

# /dev/mapper/archlinux-var
UUID=c341665d-3f02-4fff-bfd5-346233987ccc       /var            ext4           rw,relatime      0 2

# /dev/mapper/archlinux-var_log
UUID=7f70accb-6bc6-47be-85a6-cf6fb86a6958       /var/log        ext4           rw,relatime      0 2

# /dev/mapper/archlinux-swap
UUID=9399a618-575f-4ef2-bfaf-6b259c1147fd       none            swap           defaults         0 0

arch-chroot /mnt

Jetzt ist es an der Zeit, in das installierte System zu wechseln und weitere Konfigurationen vorzunehmen, was mit nachfolgendem Befehl durchgeführt werden kann:

root@archiso ~ # arch-chroot /mnt/
[root@archiso /]#

:!: WICHTIG - Der Prompt sollte sich nun auf [root@archiso /]# geändert haben!

/etc/hostname

Nachfolgender Befehl setzt den Hostnamen für den Server:

# echo archlinux > /etc/hostname

/etc/locale.conf

Nachfolgender Befehl setzt die Systemsprache auf English-US Ausprägung UTF-8

(Für Deutsch-DE Ausprägung UTF-8, wäre de_DE.UTF-8 zu setzen!)

# echo LANG=en_US.UTF-8 > /etc/locale.conf

/etc/locale.gen

Nachfolgende Veränderungen der Konfigurationsdatei /etc/locale.gen

  • en_US.UTF-8 UTF-8
  • en_US ISO-8859-1

setzen die erweiterten Systemsprachenspezifikation auf English-US Ausprägung UTF-8 durch ein kommentieren der entsprechenden Systemsprache.

(Für Deutsch-DE Ausprägung UTF-8 wäre

  • #de_DE.UTF-8 UTF-8
  • #de_DE ISO-8859-1
  • #de_DE@euro ISO-8859-15

einzukommentieren)

Nachfolgend soll die Konfigurationsdatei mit dem Text-Editor vim entsprechend abgeändert werden:

[root@archiso /]# vim /etc/locale.gen

Nachfolgender Befehl gibt zur Kontrolle, nur die ein kommentieren Zeilen der Konfigurationsdatei /etc/locale.gen aus:

[root@archiso /]# egrep -v '(^#|^$)' /etc/locale.gen
en_US.UTF-8 UTF-8  
en_US ISO-8859-1

Der abschließende Befehl setzt die Konfiguration dann im System um:

[root@archiso /]# locale-gen
Generating locales...
  en_US.UTF-8... done
  en_US.ISO-8859-1... done
Generation complete.

/etc/vconsole.conf

Nachfolgende Befehle legen das Tastaturlayout:

[root@archiso /]# echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf

und die Schriftart der shell / console fest:

[root@archiso /]# echo FONT=lat9w-16 >> /etc/vconsole.conf

/etc/localtime

Nachfolgender Befehl legt einen Verweis (Link) auf die zu verwendende Zeitzone, hier Europe/Berlin fest:

[root@archiso /]# ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

/etc/hosts

Nachfolgende Befehle erstellen die Konfigurationsdatei /etc/hosts und füllen diese mit den Standardeinträgen für localhost aus:

[root@archiso /]# echo -e '#<ip-address>	<hostname.domain.org>	<hostname>' >> /etc/hosts
[root@archiso /]# echo -e '127.0.0.1	localhost.localdomain	localhost' >> /etc/hosts
[root@archiso /]# echo -e ':1		localhost.localdomain	localhost' >> /etc/hosts

:!: HINWEIS - Eine Ausrichtung der einzelnen Zeilen muss ebenfalls durch Verwendung des Texteditors vim durchgeführt werden.

Nachfolgend soll die Konfigurationsdatei mit dem Text-Editor vim entsprechend abgeändert werden:

[root@archiso /]# vim /etc/hosts

Der Inhalt der Konfigurationsdatei /etc/hosts sollte dann wie folgt aussehen:

[root@archiso /]# cat /etc/hosts
# Static table lookup for hostnames.
# See hosts(5) for details.

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost.localdomain   localhost
:1              localhost.localdomain   localhost

/etc/resolv.conf

:!: HINWEIS - Der Namensserver aus dem LIVE-System sollte bereits vorhanden sein!

Zuerst sollte die Konfigurationsdatei /etc/resolv.conf durch nachfolgenden Befehl überprüft werden, ob diese nicht bereits ausreichend konfiguriert ist:

[root@archiso /]# cat /etc/resolv.conf
# Resolver configuration file.
# See resolv.conf(5) for details.
nameserver 192.168.1.20

In der Konfigurationsdatei /etc/resolv.conf können nun weiter sich im Netzwerk verfügbaren Namensserver (mindestens ein Namensserver), oder zusätzliche Namensserver aus dem Internet gesetzt werden, was mit nachfolgenden Befehl durchgeführt werden kann.

:!: HINWEIS - Die Wiederholung des Befehls mit weiteren Namensservern erweitert die Datei entsprechend!

[root@archiso /]# echo 'nameserver 192.168.1.20' >> /etc/resolv.conf

/etc/mkinitcpio.conf

:!: WICHTIG - Nachfolgende Anpassung ist sehr wichtig, da sonst das LVM nicht genutzt werden kann und der Start von der Festplatte von ArchLinux fehl schlägt!

Nachfolgende Ergänzung in der Konfigurationsdatei

  • /etc/mkinitcpio.conf

muss zwingend durchgeführt werden.

Zuerst soll aber eine Sicherungskopie der Konfigurationsdatei /etc/mkinitcpio.conf erstellt werden, was mit nachfolgendem Befehl durchgeführt werden kann:

[root@archiso /]# cp -a /etc/mkinitcpio.conf /etc/mkinitcpio.conf.orig

Anschließend muss das Laden des systembedingten, sogenannten HOOKS

  • lvm2

wie folgt VOR dem Schlüsselwort filesystems ergänzt werden, wie nachfolgend gezeigt:

[root@archiso /]# vim /etc/mkinitcpio.conf

(Nur relevanter Ausschnitt) VORHER:

HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)

NACHHER:

# Tachtler
# default: HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck)

initramfs: mkinitcpio

Durch den nachfolgenden Befehl wird die initramfs-Erstellung durchgeführt:

[root@archiso /]# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.4.10-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [lvm2]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.4.10-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x
  -> Running build hook: [lvm2]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful                   

Bootloader: GRUB

Zum Start des Servers ist ein sogenannter „Bootloader“ erforderlich. Hier soll der „Bootloader“

  • GRUB

installiert werden, was mit nachfolgendem Befehl durchgeführt werden soll:

[root@archiso /]# pacman -S grub --noconfirm
resolving dependencies...
looking for conflicting packages...

Packages (1) grub-2:2.04-5

Total Download Size:    6.68 MiB
Total Installed Size:  32.53 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 grub-2:2.04-5-x86_64    6.7 MiB  1210 KiB/s 00:06 [######################] 100%
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) installing grub                              [######################] 100%
Generate your bootloader configuration with:
  grub-mkconfig -o /boot/grub/grub.cfg
Optional dependencies for grub
    freetype2: For grub-mkfont usage
    fuse2: For grub-mount usage
    dosfstools: For grub-mkrescue FAT FS and EFI support
    efibootmgr: For grub-install EFI support
    libisoburn: Provides xorriso for generating grub rescue iso using
    grub-mkrescue
    os-prober: To detect other OSes when generating grub.cfg in BIOS systems
    mtools: For grub-mkrescue FAT FS support
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the info directory file...

Anschließend ist die Konfiguration von GRUB für das Starten von der Festplatte einzurichten, was mit nachfolgendem Befehl durchgeführt werden kann:

[root@archiso /]# grub-install /dev/vda
Installing for i386-pc platform.
Installation finished. No error reported.

:!: HINWEIS - Falls beim starten und herunterfahren eine Ausgabe der gestarteten bzw. beendeten Dienste/Daemons erfolgen soll, kann dies durch eine Anpassung der Konfigurationsdatei

  • /etc/default/grub

wie nachfolgend dargestellt geändert werden:

Die Konfiguratiosndatei /etc/default/grub kann mit dem Text-Editor vim wie folgt editiert werden:

[root@archiso /]# vim /etc/default/grub

(Nur relevanter Ausschnitt:)

Vorher:

# GRUB boot loader configuration
 
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX=""

Nachher

# GRUB boot loader configuration
 
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
# Tachtler
# default: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 net.ifnames=0"
GRUB_CMDLINE_LINUX=""

Erklärung:

  • GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 net.ifnames=0"

Damit Meldungen des systemd-Dienstes/Daemon zu sehen sind, muss der Parameter quit entfernt werden und der Parameter net.ifnames=0 hinzugefügt werden. Der Paramater net.ifnames=0 sorgt dafür, das als Benzeichner bei Netzwerkkarten wieder die Notation ethX (Das X steht für eine Zahl) verwendet wird!

Abschließend muss noch die GRUB-Konfiguration generiert werden, was mit nachfolgendem Befehl durchgeführt werden kann:

[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done

Passwort: root

Es ist sinnvoll, dass der Benutzer root im „permanenten“-System ein Passwort besitzt, was mit nachfolgendem Befehl gesetzt werden kann:

[root@archiso /]# passwd
New password: 
Retype new password: 
passwd: password updated successfully

Das Passwort ist in der shell hinter New password: einzugeben und mit der [Return/Enter]-Taste zu bestätigen. Anschließend ist der shell hinter Retype new password: das gleiche Passwort erneut einzugeben und ebenfalls mit der [Return/Enter]-Taste zu bestätigen.

Neustart

Wenn alle Konfigurationen durchgeführt sind, kann nun das installierte ArchLinux mit nachfolgendem Befehl verlassen werden:

# exit
exit
arch-chroot /mnt/  12.59s user 2.20s system 0% cpu 1:40:38.73 total

:!: WICHTIG - Der Prompt sollte sich nun wieder auf root@archiso ~ # geändert haben!

Der eigentliche Neustart wird dann mit nachfolgendem Befehl durchgeführt:

root@archiso ~ # reboot

Nach erfolgreichem Neustart, sollte nachfolgender „Boot-Screen“ beim Start des Servers erscheinen, wie die folgende Bildschirmkopie zeigt:

ArchLinux - Boot - Screen

Nach erfolgreichem „Booten“ des Servers, sollte eine Anmeldung als Benutzer root nun möglich sein, wie ebenfalls die folgende Bildschirmkopie zeigt:

ArchLinux - Login - Screen

Hinweise

Nach dem erfolgreichen ersten Start des Servers sind die folgenden Gegebenheiten zu beachten:

  1. Es gibt KEINE Benutzer die sich anmelden können, ausser der Benutzer root!
  2. Es steht KEINE Netzwerkanbindung zur Verfügung!
  3. Es stehen KEINE Dienste/Daemons zur Verfügung, auch der SSH-Dienst/Daemon nicht!

Inbetriebnahme

Um ArchLinux nach der Installation wie oben bzw. unter nachfolgenden internen Link beschrieben, grundsätzlich in Betrieb nehmen zu können, sollen nachfolgende Basiskonfigurationen durchgeführt werden:

  1. Konfiguration einer Netzwerkkarte unter Verwendung und Start durch systemd-Dienstes/Daemons.
  2. Konfiguration und Start des SSH-Dienstes/Daemons mit einer Basiskonfiguration
    1. Zugriff vorübergehend durch den Benutzer root mit Password-Authemtifikation
  3. Komfortkonfiguration für den Benutzer für die Verwendung der shell
    1. .bash_profile
    2. .bashrc
    3. .vimrc

Netzwerk: systemd

Damit beim Start oder Neustart des Servers gleich eine Netzwerkverbindung mit gestartet wird, soll das sich bereits auf dem Server befindliche systemd-Startsystem genutzt werden.

Dazu ist es erfordelrich, das für die jeweilige Netzwerkkarte unter Einbeziehung der Bezeichnung der Netzwerkkarte jeweils eine entsprechende Konfigurationsdatei angelegt wird.

Dazu soll zuerst mit nachfolgendem Befehl ermittelt werden, welche Netwzerkkarten auf dem Server vorhanden sind und welche Bezeichnung diese haben:

[root@archlinux ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 52:54:00:00:de:ad brd ff:ff:ff:ff:ff:ff

* Hier ist nur eine Netzwerkkarte mit der Bezeichnung eth0 vorhanden, welche nicht aktiv ist.

Zur Konfiguration der Netzwerkkarte mit der Bezeichnung eth0, muss eine neue Konfigurationsdatei in nachfolgendem Verzeichnis und mit nachfolgendem Namen angelegt werden:

  • /etc/systemd/network/eth0.network
[root@archlinux ~]# vim /etc/systemd/network/eth0.network

Der Inhalt der Konfigurationsdatei könnte dann wie folgt aussehen:

[Match]
Name=eth0
 
[Network]
Address=192.168.1.250
Gateway=192.168.1.10
DNS=10.7.1.20

Anschließend sollte noch mit nachfolgendem Befehl überprüft werden, ob eine anderer Dienst/Daemon sich für den Start der Netzwerkkarte zuständig fühlt:

[root@archlinux ~]# systemctl list-unit-files | grep netctl

und

[root@archlinux ~]# systemctl list-unit-files | grep dhcpcd

:!: HINWEIS - Falls hier ein Treffer erzielt wird, sollte der Dienst/Daemon

  1. gestoppt
  2. deaktiviert

werden, was mit nachfolgenden Befehlen erfolgen kann:

[root@archlinux ~]# systemctl stop netctl@eth0.service

und

[root@archlinux ~]# systemctl disable netctl@eth0.service

bzw.

[root@archlinux ~]# systemctl stop dhcpcd.service

und

[root@archlinux ~]# systemctl disable dhcpcd.service

Damit nun der systemd-Dienst/Daemon das starten der Netzwerkkarte und dessen Konfiguration übernimmt, ist es erforderlich dass der systemd-networkd-Dienst/Dameon

  1. aktiviert
  2. gestartet

wird, was mit nachfolgenden Befehlen durchgeführt werden kann:

[root@archlinux ~]# systemctl enable systemd-networkd.service
Created symlink /etc/systemd/system/dbus-org-freedesktop.network1.service → /usr7lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.socket → /usr/lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.socket → /usr/lib/systemd/system/systemd-networkd.socket.
Created symlink /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service → /usr/lib/systemd/system/systemd-network-wait-onlie.service.

und

[root@archlinux ~]# systemctl start systemd-networkd.service

Ein Überprüfung, ob die IPv4-Netzwerkadresse für die Netzwerkkarte mit der Bezeichnung eth0 gesetzt wurde, kann mit nachfolgendem Befehl erfolgen:

[root@archlinux ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:00:de:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe00:dead/64 scope link 
       valid_lft forever preferred_lft forever

Eine Überprüfung mit nachfolgendem Befehl zeigt die aktuellen Routen, inklusive der default-Routen an:

root@archiso ~ # ip ro
default via 192.168.1.10 dev ens3
192.168.1.0/24 dev ens3 proto kernel scope link src 192.168.1.250

Zuerst sollte die Konfigurationsdatei /etc/resolv.conf durch nachfolgenden Befehl überprüft werden, ob diese nicht bereits ausreichend konfiguriert ist:

[root@archiso /]# cat /etc/resolv.conf
# Resolver configuration file.
# See resolv.conf(5) for details.

In der Konfigurationsdatei /etc/resolv.conf können nun weiter sich im Netzwerk verfügbaren Namensserver (mindestens ein Namensserver), oder zusätzliche Namensserver aus dem Internet gesetzt werden, was mit nachfolgenden Befehl durchgeführt werden kann.

:!: HINWEIS - Die Wiederholung des Befehls mit weiteren Namensservern erweitert die Datei entsprechend!

[root@archiso /]# echo 'nameserver 192.168.1.20' >> /etc/resolv.conf

SSH-Dienst/Deamon einrichten

Um den SSH-Dienst/Deamon als Hintergrundprozesse auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienste/Daemons mit dem Server mit gestartet werden, was mit nachfolgenden Befehlen realisiert werden kann:

[root@archlinux ~]# systemctl enable sshd.service
Created symlink /etc/systemd/system/basic.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.

Eine Überprüfung, ob beim Neustart des Server der sshd-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

[root@archlinux ~]# systemctl list-unit-files --type=service | grep -E ^sshd
sshd.service          enabled

bzw.

[root@archlinux ~]# systemctl is-enabled sshd.service
enabled

Abschließend soll noch die Anmeldung via Passwort - vorübergehend während der Konfigurationsphase aktiviert werden.

Dazu soll mit nachfolgendem Befehl eine Sicherungskopie der originalen Konfigurationsdatei

  • /etc/ssh/sshd_config

mit dem Namen

  • /etc/ssh/sshd_config.orig

ersteltl werden:

[root@archlinux ~]# cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

Anschließend soll nachfolgende Konfiguration in der Konfigurationsdatei /etc/ssh/sshd_config ein kommentiert bzw. ein kommentiert und angepasst werden:

[root@archlinux ~]# vim /etc/ssh/sshd_config

(Nur relevanter Ausschnitt:)

PasswordAuthentication yes

(Nur relevanter Ausschnitt:)

ParmitRootLogin yes

Abschließend kann der SSH-Dienst/Daemon - sshd mit nachfolgendem Befehl gestartet werden:

[root@archlinux ~]# systemctl start sshd.service

Eine Überprüfung ob der SSH-Dienst/Daemon auch ordnungsgemäß gestartet wurde, kann durch ausführen des nachfolgenden Befehls durchgeführt werden und sollte eine Ausgabe in etwa wie nachfolgende zur Folge haben:

root@archiso ~ # systemctl status sshd.service
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor prese>
   Active: active (running) since Sun 2019-12-29 11:43:56 UTC; 6s ago
 Main PID: 775 (sshd)
    Tasks: 1 (limit: 2330)
   Memory: 824.0K
   CGroup: /system.slice/sshd.service
           └─775 /usr/bin/sshd -D

Dec 29 11:43:56 archiso systemd[1]: Started OpenSSH Daemon.
Dec 29 11:43:56 archiso sshd[775]: Server listening on 0.0.0.0 port 22.
Dec 29 11:43:56 archiso sshd[775]: Server listening on :: port 22.

Dann kann noch einmal die IP-Adresse des Servers in Erfahrung gebracht werden, damit eine Verbindung zum Server hergestellt werden kann. Dies kann durch Ausführung des nachfolgenden Befehls erfolgen:

[root@archlinux ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:00:de:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe00:dead/64 scope link 
       valid_lft forever preferred_lft forever

:!: BEISPIEL - Die IP-Adresse des Servers aus oben genanntem Beispiel wäre hier: 192.168.1.250.

Jetzt kann eine erste Verbindung als Benutzer root via SSH-Login auf den Server hergestellt werden. Nachfolgender Befehl soll dazu auf einer lokalen Workstation, nicht auf dem Server verwendet werden:

$ ssh root@192.168.1.250
The authenticity of host '192.168.1.250 (192.168.1.250)' can't be established.
ECDSA key fingerprint is SHA256:C7UGXJ6YMgduc0xqRzx4nv+R7azYCJfRCrzhU1TCmx8.
ECDSA key fingerprint is MD5:a3:b5:f3:59:cb:f1:97:cd:bc:07:2a:e0:39:9f:90:80.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.250' (ECDSA) to the list of known hosts.
root@192.168.1.250's password: 
Last login: Fri Jan 10 13:43:16 2020
[root@archlinux ~]#

~/.bash_profile

Damit die Konfigurationsdatei ~/.bashrc auch angezogen wird, ist nachfolgende Konfigurationsdatei

  • ~/.bash_profile

falls nicht schon vorhanden, mit nachfolgenden Inhalt, ebenfalls neu zu erstellen:

#
# ~/.bash_profile
#
 
[[ -f ~/.bashrc ]] && . ~/.bashrc

~/.bashrc

Wer z.B. Nutzer von CentOS ist, hat evtl. den Befehl ll lieb gewonnen, welcher eigentlich nur ein Alias für den Befehl

  • ls -l –color=auto

ist.

Um auf diesen „Annehmlichkeit“ auch unter ArchLinux nicht verzichten zu müssen, kann in nachfolgendem Verzeichnis die vorhandene Konfigurationsdatei mit nachfolgendem Namen ergänzt werden:

  • ~/.bashrc

Der Inhalt, welcher hier an z.B. CentOS angelehnt ist, könnte dann wie folgt aussehen:

#
# ~/.bashrc
#
 
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
 
# Tachtler
# default: alias ls='ls --color=auto'
#alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
 
# Tachtler - NEW -
alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d .* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null

:!: HINWEIS - Nach der Beendigung z.B. eines shell-Fensters und dem Neustart von einem shell-Fenster, steht die neue Funktionalität zur Verfügung!

~/.vimrc

Wer z.B. Nutzer von CentOS ist, hat evtl. die Möglichkeit mit der Computer-Mouse/Maus Texte markieren zu können, ohne in den –VISIBLE– Modus zu wechseln und ein paar andere Einstellungen lieb gewonnen, welche eigentlich nur ein paar Einträge wie folgt

  • syntax on - Einschalten des Syntax-Highlightings
  • set mouse-=a - Deaktivieren des –VISIBLE– Modus
  • set tabstop=4 - Betätigen der [TABulator]-Taste löst einen Sprung um 4 Zeichen aus (optional)

erfordern.

Um auf diesen „Annehmlichkeit“ auch unter ArchLinux nicht verzichten zu müssen, kann in nachfolgendem Verzeichnis die vorhandene Konfigurationsdatei mit nachfolgendem Namen ergänzt werden:

  • ~/.vimrc

Der Inhalt, welcher hier an z.B. CentOS angelehnt ist, könnte dann wie folgt aussehen:

syntax on
 
set mouse-=a
set tabstop=4
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/arcchlinux_-_minimal_server_installation.1578829620.txt.gz · Zuletzt geändert: 2020/01/12 12:47 von klaus