Archiv der Kategorie: Arch

Arch auf HyperV installieren

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