Arch Linux als virtuelle Maschine unter Windows 7
So lobenswert die Stabilität von Debian im Serverbetrieb ist, für “das kleine Experiment zwischendurch” sind manche Programme in den offiziellen Repositories dann doch zu angestaubt. Als Alternative bietet es sich an, eine Sandbox auf Basis einer Rolling Release-Distribution zu installieren, die deutlich näher am Puls der Zeit ist, dafür aber vielleicht in Einzelfällen nicht ganz so fehlerfrei und stabil läuft.
Wer unter Windows 7 sowieso den virtuellen XP-Modus installiert hat, kann dafür die in diesem Fall bereits installierte Virtualisierungsumgebung verwenden.
Nach dem Download der offiziellen Installations-ISO wird eine neue virtuelle Maschine angelegt und die ISO als virtuelles CD/DVD-Laufwerk eingebunden. Als Basisdaten für die hier beschriebene Maschine wurde ein Hauptspeicher mit einer Größe von 768MB sowie eine dynamisch wachsende Festplatte mit einer Größe von 16GB gewählt.
Als Leitfaden für diesen Beitrag diente der “Beginner’s Guide” aus dem Arch Linux-Wiki, der auf die relevanten Stellen gekürzt bzw. um einige Informationen ergänzt wurde.
Vorarbeiten
Nach dem Start der virtuellen Maschine sind ein paar grundlegende Eingaben direkt im Konsole-Fenster zu machen, bevor die weitere Installation über einen Terminal-Client wie z.B. PuTTY fortgesetzt wird, in dem Copy & Paste deutlich besser funktionieren als in der virtuellen Konsole.
Bevor das für die SSH-Verbindung notwendige Kennwort vergeben wird, sollte das Tastaturlayout angepasst werden, damit bei der späteren Eingabe des Kennworts keine unliebsamen Überraschungen passieren. Dann kann der SSH-Daemon gestartet und die Verbindung mittels Terminal-Client hergestellt werden.
root@archiso ~ # loadkeys de-latin1
...
root@archiso ~ # passwd
...
root@archiso ~ # systemctl start sshd
Festplatte einrichten
Wie unter Linux üblich, gibt es zum Einrichten der Festplatten viele Wege. Zum einfachen Anlegen von Partitionen ist “fdisk” vollkommen ausreichend.
Als erstes wird “fdisk” gestartet und die primäre Datenpartition mit einer Größe von 15GB angelegt:
root@archiso ~ # fdisk /dev/sda
Welcome to fdisk (util-linux 2.25.2).
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 0x331efb9d.
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):
First sector (2048-33554303, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-33554303, default 33554303): +15G
Created a new partition 1 of type 'Linux' and of size 15 GiB.
Im zweiten Schritt wird eine weitere primäre Partion mit dem restlichen vorhandenen Plattenplatz eingerichtet, die als SWAP-Partition dienen soll:
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (31459328-33554303, default 31459328):
Last sector, +sectors or +size{K,M,G,T,P} (31459328-33554303, default 33554303):
Created a new partition 2 of type 'Linux' and of size 1023 MiB.
Nach dem Anlegen muß der Partitionstyp der soeben angelegten Partition noch geändert werden:
Command (m for help): t
Partition number (1,2, default 2):
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Anschließend sollte die Festplatte wie folgt aussehen:
Command (m for help): p
Disk /dev/sda: 16 GiB, 17179803648 bytes, 33554304 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: 0x331efb9d
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 31459327 31457280 15G 83 Linux
/dev/sda2 31459328 33554303 2094976 1023M 82 Linux swap / Solaris
Wenn alles wie gewünscht aussieht, kann “fdisk” verlassen werden:
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Nach dem Anlegen der Partitionen müssen nun auf diesen die Dateisysteme erzeugt werden - zuerst für die System- und Datenpartition
root@archiso ~ # mkfs.ext4 /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 3932160 4k blocks and 983040 inodes
Filesystem UUID: 7c504e69-3f95-44c5-b287-c6d3f6954d9c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
und anschließend für die SWAP-Partition:
root@archiso ~ # mkswap /dev/sda2
Setting up swapspace version 1, size = 1047484 KiB
no label, UUID=253e15fd-b54b-4766-8248-21aed3ada7e8
root@archiso ~ # swapon /dev/sda2
Betriebssystem installieren
Zur Installation des Betriebssystems fehlen nur noch wenige Schritte. Als erstes wird die gerade erzeugte System- und Datenpartition eingebunden, damit auf dieser das Betriebssystem installiert werden kann.
root@archiso ~ # mount /dev/sda1 /mnt
Dann sollte über der offiziellen Arch Linux-Website eine aktuelle Mirrorlist generiert und diese ins System übernommen werden. Beim Einfügen in die “mirrorlist”-Datei müssen u.U. noch auskommentierte Spiegelserver durch entfernen des “#” am Zeilenanfang aktiviert werden. Alternativ kann auch die bereits vorhandene Mirrorlist verwendet und dieser Schritt übersprungen werden.
root@archiso ~ # vi /etc/pacman.d/mirrorlist
Nach dem Synchronisieren der Paketquellen
root@archiso ~ # pacman -Syy
wird das Basissystem installiert, was einige Zeit in Anspruch nimmt.
root@archiso ~ # pacstrap /mnt base base-devel
...
pacstrap /mnt base base-devel 58.34s user 12.50s system 29% cpu 3:57.56 total
Betriebssystem konfigurieren
Nach erfolgreicher Installation kann mittels “chroot” in das soeben installierte System gewechselt und die Konfiguration fertiggestellt bzw. erzeugt werden.
root@archiso ~ # arch-chroot /mnt /bin/bash
Als erstes werden die benötigten Locales durch entfernen des “#” am Zeilenanfang aktiviert und anschließend erzeugt sowie die entsprechende Umgebungsvariable gesetzt
[root@archiso /]# vi /etc/locale.gen
[root@archiso /]# locale-gen
Generating locales...
de_DE.UTF-8... done
Generation complete.
[root@archiso /]# echo LANG=de_DE.UTF-8 > /etc/locale.conf
[root@archiso /]# export LANG=de_DE.UTF-8
bevor dann die Einstellungen für die Konsole festgelegt werden.
KEYMAP=de-latin1
FONT=lat9w-16
Das Setzen der Zeitzone kann entweder mittels “timedatectl set-timezone Europe/Berlin” oder über das Erzeugen eines Links erledigt werden:
[root@archiso /]# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Da wir uns in einer virutellen Umgebung auf einer Windows-Maschine befinden, muss die “hwclock” trotz der anders lautenden Standard-Empfehlung im Guide auf “localtime” statt “utc” gesetzt werden.
[root@archiso /]# hwclock --systohc --localtime
Das Setzen des Hostnamens erfolgt zum Einen durch einen Eintrag in Datei “/etc/hostname”
[root@archiso /]# echo arch > /etc/hostname
zum Anderen muß der Hostname noch in der Datei “/etc/hosts” ergänzt werden:
...
127.0.0.1 localhost.localdomain localhost arch
::1 localhost.localdomain localhost arch
...
Zur Konfiguration des Netzwerks wird zuerst die zu konfigurierende Schnittstelle ermittelt
[root@archiso /]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s10f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 00:03:ff:3f:95:7d brd ff:ff:ff:ff:ff:ff
für die dann der dbcpcd-Daemon (DHCP-Client) gestartet wird. Dieser versorgt das Sytsem beim Boot mit einer IP-Adresse vom DHCP-Server und kommt ohne Netzwerk-Manager aus:
[root@archiso /]# systemctl enable dhcpcd@enp0s10f0.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpcd@enp0s10f0.service to /usr/lib/systemd/system/dhcpcd@.service.
Als letzter Schritt wird noch ein Kennwort für den Benutzer “root” gesetzt:
[root@archiso /]# passwd
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert
Bootloader installieren
Als erstes wird das zum “GRand Unified Bootloader” (kurz GRUB) gehörende Paket installiert.
[root@archiso /]# pacman -S grub
Nach Installation des Pakets muß der Bootloader noch in den Bootsektor geschrieben
[root@archiso /]# grub-install --target=i386-pc --recheck /dev/sda
i386-pc wird für Ihre Plattform installiert.
installation beendet. Keine Fehler aufgetreten.
sowie die Konfigurationsdatei erzeugt werden.
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-linux
initrd-Abbild gefunden: /boot/initramfs-linux.img
Found fallback initramfs image: /boot/initramfs-linux-fallback.img
erledigt
Dann kann die “chroot”-Umgebung verlassen und das System neu gestartet werden.
[root@archiso /]# exit
root@archiso ~ # shutdown -h now
Weitere Systemarbeiten
Damit nicht immer an der Konsole gearbeitet werden muss, sollte nach dem erfolgreichen Systemstart der SSH-Dienst installiert und gestartet werden:
[root@arch ~]# pacman -S openssh
[root@arch ~]# systemctl enable sshd.service
[root@arch ~]# systemctl start sshd.service
Auch wenn es sich bei der soeben erzeugten virtuellen Maschine um eine Sandbox mit im Bedarfsfall zuschaltbaren “Rückgängig”-Datenträger handelt, reicht für die meisten Spielereinen ein Systembenutzer mit eingeschränkten Rechten, der als letzter Schritt erzeugt wird:
[root@arch ~]# useradd -m -g users -s /bin/bash andreas
[root@arch ~]# passwd andreas
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert
login as: andreas
andreas@arch's password:
[andreas@arch ~]$
Nach erfolgreichem Login kann’s dann losgehen …