Arch Basisinstallation

Als erstes sollten wir uns eine deutsche Tastaturbelegung einstellen.

Tipp

Der Bindestrich (-) liegt auf ß bei englischem Layout. Eine gewisse Ahnung über die englische Tastenbelegung kann immer mal wichtig und hilfreich sein!

Wir nutzen das Tool loadkeys: (Beachten: y und z noch vertauscht!)

loadkeys de-latin1

Test der Paketverwaltung mit Tool pacman: (Repos auffrischen)

pacman -Syyy

Das sollte recht fix gehen. Wenn nicht sollte man /etc/pacman.d/mirrorlist bearbeiten und die Server in der Nähe bevorzugen.

Partitionsplan für Standard-VHDX der Hyper-V-VM (127 GB):

  1. EFI System Partition (ESP: /boot/EFI): 500 MB

  2. Boot Partition (/boot): 500 MB

  3. LVM Partition: Rest als Physical Volume für lvm2

Die verfügbaren Laufwerke lassen sich (z.B.) mit lsblk auflisten.

Bei der frischen VM-HDD sollte es sich um das Device /dev/sda handeln.

Partitionierung mit Tools:

  • fdisk (für MBR empfohlen)

  • gdisk (für EFI empfohlen)

  • cfdisk

Kurzdarstellung gdisk mit Aufruf gdisk /dev/sda

  • o - erstellt neue leere GUID Partition Table (GPT)

  • n - erstellt neue Partition

  • t - Partitionstypen: ef00 (EFI/ESP), 8300 (Linux filesystem), 8e00 (Linux LVM)

  • w - schreiben der Partitionen

mkfs - Make Filesystems - Erste Dateisysteme formatieren:

mkfs.fat -F32 /dev/sda1                       # EFI/ESP-Partition
mkfs.ext4 /dev/sda2                           # Boot-Partition

Wir wollen das /dev/sda3 per LVM und mit Encryption nutzen. Falls man die Encryption weglässt bezieht man sich später immer direkt auf das Gerät /dev/sda3.

Gefahr

Encryption / Verschlüsselung: (bei Passphrase konzentrieren / Tastaturbelegung / CapsLock)

cryptsetup luksFormat /dev/sda3                # HINT: Passphrase !!IMPORTANT!!
cryptsetup open --type=luks /dev/sda3 lvm     # lvm a name for pv our setup

LVM (alternativ auch Befehle ohne Encryption Volume)

Wir erstellen der Reihe nach

  • Physical Volume (Tools: pv...)

  • Volume Group (Tools: vg...)

  • Logical Volume (Tools: lv...)

pvcreate /dev/mapper/lvm                      # sonst: pvcreate /dev/sda3
vgcreate volgroup0 /dev/mapper/lvm            # sonst: vgcreate volgroup0 /dev/sda3
lvcreate -L 40GB volgroup0 -n lv_root
lvcreate -L 50GB volgroup0 -n lv_home         # ca. 30% frei für ggf. LVM Snapshots
# Rest der VG komplett nutzen: lvcreate -l 100%FREE volgroup0 -n lv_home

Die beiden Logical Volumes für root und home formatieren:

mkfs.ext4 /dev/volgroup0/lv_root
mkfs.ext4 /dev/volgroup0/lv_home

Jetzt müssen wir die Volumes mounten und hierfür ggf. entsprechende Verzeichnisse bereitstellen:

mount /dev/volgroup0/lv_root /mnt
mkdir /mnt/home
mount /dev/volgroup0/lv_home /mnt/home
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot

Speziell müssen wir an die spätere /etc/fstab denken:

mkdir /mnt/etc
genfstab -U -p /mnt >> /mnt/etc/fstab

Das sollte man auf jeden Fall mal checken mit cat /mnt/etc/fstab!

Und jetzt geht weiter mit:

  • Bootstrapping des Systems mit dem Arch-Tool pacstrap

  • Ch-Rooten mit Arch-Tool arch-chroot

pacstrap -i /mnt base linux linux-firmware    # gerne auch: linux-lts
arch-chroot /mnt                              # Wechsel in Root-Dir

Install-Tests und Vervollständigen des Systems mit weiterer Software:

pacman -S nano vim linux-headers base-devel dialog        # ggf. auch linux-lts-headers

Anm.: hier könnte man auch gleich Pakete wie openssh oder networkmanager … installieren.

Vorbereitungen LVM - Kernel mit LVM bauen

pacman -S lvm2
nano /etc/mkinitcpio.conf   # Change: HOOKS=" ....  block encrypt lvm2 filesystem ....)
mkinitcpio -p linux
# mkinitcpio -p linux-lts   # if you installed linux-lts

Sprache, Tastatur, Clock

# locales - de_DE.UTF8 UTF-8 auskommentieren
nano /etc/locale.gen
locale-gen

# LANG auskommentieren in /etc/locale.conf oder einfach
echo LANG=de_DE.UTF-8 > /etc/locale.conf

# no dead keys - dann kann man Akzentzeichen aus 2 Zeichen zusammensetzen
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
# setting the hardware clock
hwclock --systohc

hostname & hosts

Bearbeiten nano /etc/hostname (oder natürlich mit Vim)

archvbox

Bearbeiten nano /etc/hosts

127.0.0.1       localhost
::1             localhost
127.0.1.1        archvbox.localdomain archvbox

Benutzer und Passworte

passwd                                # set root pass
useradd -m username                   # erstelle neuen User
passwd username                       # password für neuen User
usermod -aG wheel,audio,video,optical,storage username   # Gruppen

Sudo konfigurieren

pacman -S sudo                            # ggf. EDITOR=nano visudo
visudo                                    # Bearbeiten von /etc/sudoers
# auskommentieren: %wheel ALL=(ALL) ALL

GRUB installieren / konfigurieren

pacman -S grub
pacman -S efibootmgr dosfstools os-prober mtools

Bei Nutzung von Encrytpion: Default Grub für crypt konfigurieren

nano /etc/default/grub
# uncomment: GRUB_ENABLE_CRYPTODISK=y
# prepare: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3   cryptdevice=/dev/sda3:volgroup0:allow-discards    quiet"

Tipp

Auflösung später für Hyper-V-VM optimieren: … quiet video=hyperv_fb:1920x1080 …

Grub mit EFI

MBR-alternative: grub-install && grub-mkconfig -o /boot/grub/grub.cfg

mkdir /boot/EFI                            # if doing UEFI)
mount /dev/sda1 /boot/EFI                  # Mount FAT32 EFI partition (if doing UEFI)
grub-install --target=x86_64-efi  --bootloader-id=grub_uefi --recheck
grub-mkconfig -o /boot/grub/grub.cfg

Anm.: check ls -al /boot/grub/locale (de vorhanden?)

Swapfile - kann man auch erstmal weglassen und später im System bereitstellen!

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
echo '/swapfile swap swap defaults 0 0' | tee -a /etc/fstab

Networking

pacman -S networkmanager          # later/also: network-manager-applet
systemctl enable NetworkManager

ssh - openSSH Server

pacman -S openssh
systemctl enable sshd

Reboot

exit                              # the chroot by typing "exit"
umount /mnt                       # unmount - if busy: umount -l /mnt)
reboot

Vor dem eigentlichen Neustart die ISO aus der VM-Umgebung/Konfiguration entfernen.

Post-Installation

cat /etc/fstab                       # Mounts checken
pacman -Syu                          # System aktualisieren
pacman -S man-db man-pages           # Weiterer Test und ggf. man-pages-de
pacman -S bash-completion            # Bash Completion

yay - AUR Helper bereitstellen

Weiteres Tool installieren: hier für die Nutzung des AUR

pacman -S git base-devel             # Standardtools bereitstellen
# als User in /home/user/:
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -si

Das sollte es dann gewesen sein: wir haben eine funktionstüchtige Basisinstallation mit Arch Linux als Hyper-V-VM:

AUR Helper yay installiert / Man-Page

AUR Helper yay installiert / Man-Page

Als Rausschmeißer noch ein paar Infos rund um Arch-Installationen:

Infos / more Zeug zu Arch-Installationen

#############################################################
INFO: till here everything working Arch as Hyper-V Machines !
#############################################################
Hint: Snapshot and then tests with X-server / Graphic-Env   !
#############################################################

You may install on **real machines** or Vbox (kein Installationen bei Hyper-V)
#############################################################
pacman -S intel-ucode  (or amd-ucode)
pacman -S mesa
pacman -S nvidia nvidia-utils   (or/and nvidia-lts)
pacman -S virtualbox-guest-utils xf64-video-vmware (or xf86-video-fbdev)

#############################################################
Hyper-V: just for Hyper-V **integration services**
see: https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v-integration-services )
(for X-Support later: xf86-video-fbdev)
#############################################################
pacman -S hyperv        # do not install - only for those integrations*
systemctl enable hy_fcopy_daemon.service
systemctl enable hy_kvp_daemon.service
systemctl enable hy_vss_daemon.service
#############################################################

Insbesondere sei nochmals auf die Hyper-V Integration Services von Microsoft hingewiesen, die man nur für die dargestellten Zusatztechniken benötigt - eine Verbesserung der Grafikausgaben wird nicht angeboten.

Status Pakete: pacman -Q | wc -l ergeben knapp 200 Pakete.