In dieser Anleitung soll ein Arch Linux Grundsystem in einer virtuellen Maschine auf HyperV installiert werden.
Das Erstellen der VM in HyperV setze ich voraus. Ich habe für diese Anleitung eine Maschine mit 127GB Festplatte, 4GB RAM, vier CPU Kernen und einem Netzwerkadapter konfiguriert.
Zu beachten ist, dass ich mich für eine G2 Maschine entschieden habe, also eine UEFI VM.
Damit Arch davon booten kann, muss der Sichere Start in den Einstellungen der VM deaktiviert werden.
Der Vollständigkeit halber hier ein Screenshot meiner Einstellungen:
Das ISO Image von Arch könnt ihr euch auf archlinux.org herunterladen.
Nach dem „Einlegen“ der ISO und dem Starten der virtuellen Maschine seht ihr zunächst die Bootauswahl der ISO. Hier ist der erste Eintrag zu nehmen:
Nach dem Bootvorgang des LiveImages, seit ihr im Livemodus von Arch:
Nun kommt die eigentliche Arbeit.
Das erste was hier sinnvoll ist, ist die Tastaturbelegung auf Deutsch umzustellen, sodass alle Tasten auch da sind, wo man sie erwartet. Dies geschieht mit dem Befehl:
loadkeys de-latin1
Wenn ihr wie oben erwähnt eine G2 VM (UEFI) erstellt habt, dann liefert euch der folgende Befehl diverse Ausgaben. Falls bei euch nichts ausgegeben wird, erstellt die VM als G2 neu.
ls /sys/firmware/efi/efivars
Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f LoaderTimeInitUSec-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderTimeMenuUSec-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829
Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c Lang-8be4df61-93ca-11d2-aa0d-00e098032b8c MTC-eb704011-1402-11d3-8e77-00a0c969723b
Boot0004-8be4df61-93ca-11d2-aa0d-00e098032b8c LangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f PK-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderFeatures-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderFirmwareInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderFirmwareType-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f SecureBootEnable-f0a30bc7-af08-4556-99c4-001009c93a44
ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c LoaderImageIdentifier-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c
CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b LoaderInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c
db-d719b2cb-3d3a-4596-a3bc-dad00e67656f LoaderTimeExecUSec-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Als nächstes prüft ihr ob die VM mit dem Internet verbunden ist:
ping -c4 archlinux.org
Klappt die Verbindung, kann es mit dem partitionieren der Platte losgehen. Gewöhnlich sollte die Platte unter /dev/sda
erreichbar sein. Prüft dies mit dem Befehl:
fdisk -l
Das Paritionieren der Platte startet ihr dann per cfdisk durch:
cfdisk /dev/sda
Im ersten Dialog wählt Ihr als Label gpt:
Wählt anschließend Free Space
und NEW
aus dem unterem Menü. Navigieren kann man hier mit Tab
oder den Pfeiltasten.
Als erste Partition benötigen wir bei UEFI die EFI Partition. 300MB sollten hierfür genügen. Ihr könnt aber auch gerne die allgemein empfohlenen 512 MB verwenden:
Wählt also New
und gebt 300M ein:
Geht anschließend auf Type und ändert den Partitionstyp auf EFI:
Als nächstes wird die Swap Partition benötigt, welche immer mindestens so groß sein sollte, wie der zur Verfügung stehende Arbeitsspeicher des Rechners, bzw. der VM. In meinem Fall also 4GB.
Selektiert also zunächst im Menü wieder Free Space
und legt mittels New
die Swap Partition an:
Zuletzt wird noch die root ( /
) Partition benötigt. Auch hier markiert ihr zunächst wieder Free
space und legt eine neue Parition mittels New
an:
Wählt hier den kompletten verbleibenden Platz aus. Hier könnt ihr also den Vorgegebenen Wert einfach übernehmen:
Damit dies nun auch tatsächlich alles auf die Platte gelangt, müssen diese Einstellungen nun auf die Platte geschrieben werden. Hierzu wählt ihr Write
aus dem unteren Menü:
cfdisk hat nun seinen Job gemacht und kann über Quit
beendet werden
Als nächstes müssen auf den neu erstellten Partitionen Dateisysteme erstellt werden:
Bootpartion (/dev/sda1):
mkfs.fat -F32 /dev/sda1
Swap Partition:
mkswap /dev/sda2
swapon /dev/sda2
Root Partition:
mkfs.ext4 /dev/sda3
Als nächstes muss das Pacman Repository synchronisiert werden:
pacman -Syy
Root Partition mounten:
mount /dev/sda3 /mnt
Dateien installieren:
pacstrap /mnt base linux linux-firmware sudo nano dhcpcd
Sobald die Dateien heruntergeladen und kopiert wurden, geht es an die Konfiguration des Systems.
Zunächst die fstab Datei erstellen:
genfstab -U /mnt >> /mnt/etc/fstab
Für die weiteren Eintellungen wird aus dem Livesystem in das installierte Arch gewechselt:
arch-chroot /mnt
Hier die Zeitzone auf Deutsch einstellen:
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Als nächstes muss locale eingestellt werden. Hierzu mit nano die Datei /etc/locale.gen öffnen und editieren:
nano /etc/locale.gen
Hier die Einträge de_DE.UTF-8 UTF-8
, en_US.UTF-8 UTF-8
und en_US ISO-8859-1
auskommentieren, indem das Zeichen #
vor den Zeilen entfernt wird. Mit Strg+O
und Strg+X
die Änderungen speichern und Nano beenden.
Abschließend die Einstellungen anwenden:
locale-gen
echo LANG=de_DE.UTF-8 > /etc/locale.conf
Deutsche Tastatur:
echo KEYMAP=de-latin1 > /etc/vconsole.conf
Als nächstes wird der Hostname konfiguriert. Mein System bekommt hier den Namen „archsystem“:
echo archsystem > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 archsystem" >> /etc/hosts
Nun wird das Kennwort für den root gesetzt:
passwd
Wo wir schon dabei sind, legen wir auch direkt einen normalen Useraccount (soehl) an. Durch das hinzufügen des Users zur Gruppe wheel
erhält der User sudo
Rechte:
useradd -m -G wheel soehl
Für den Account muss natürlich auch ein Kennwort vergeben werden:
passwd soehl
Nun noch sudo aktivieren:
EDITOR=nano visudo
Ziemlich am Ende der Datei steht die Zeile
# %wheel ALL=(ALL) ALL
Entfernt das Zeichen # am Anfang der Zeile und verlasst nano mit Strg+o
und Strg+x
.
Last but not least muss nun noch Grub zum starten des Systems eingerichtet werden:
Zunächst die nötigen Pakete installieren:
pacman -S grub efibootmgr os-prober mtools
Nun den Mountpoint für /dev/sda1
erstellen und mounten:
mkdir /boot/efi
mount /dev/sda1 /boot/efi
Nun den Bootloader installieren:
grub-install --target=x86_64-efi --bootloader-id=grub_uefi
Ausgabe:
Installing for x86_64-efi platform.
Installation finished. No error reported.
Abschließend die Datei /boot/grub/grub.cfg
generieren:
grub-mkconfig -o /boot/grub/grub.cfg
Nun sollte alles erledigt sind, und es ist an der Zeit das System zum ersten mal zu booten:
exit
umount -R /mnt
reboot
Nach dem ersten reboot müssen die Netzwerkdienste noch aktiviert und gestartet werden:
systemctl enable dhcpcd
systemctl start dhcpcd