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