Dies ist eine alte Version des Dokuments!


Arch Linux - (manuelle) Minimalinstallation

Bild: Archlinux Logo Im folgenden Artikel wollen wir uns eingehender mit der Installation von Arch Linux befassen. Eine sehr gute Beschreibung was diese Distribution ausmacht, ist im folgenden Artikel Über Arch Linux sehr gut beschrieben. Im Gegensatz zu altbekannten Distributionen verfügt Arch Linux über keinen graphischen Installationsclient; daher muss die Grundinstallation ausschliesslich über die Kommandozeile vorgenommen werden. In der künftigen Ausprägung unserer Infrastruktur werden wir natürlich mit Hilfe von Ansible automatisiert unsere Hosts und Anwendungen installieren, konfigurieren und auf dem Laufenden halten. Hierzu werden wir uns ein individuelles Boot-Image initial erzeugen, mit Hilfe dessen wir dann mit dem Orchestrierungswerkzeug Ansible dann weiterarbeiten wollen.

Wir werden also zunächst eine 0815-Installation, die lediglich zur Erstellung eines initialen, auf unsere Bedürfnisse und Rahmenbedingungen zugeschnittenes Boot-ISO-Image erzeugen.

Die grundsätzliche Herangehensweise bei der Minimalinstallation ist im folgenden Arch Linux WIKI Artikel grundsätzlich beschrieben.

Von der Downloadseite holen wir uns nun das aktuelle ISO-Image und die zugehörige sha256sums.txt Datei auf unseren Virtualisierungshost mit Hilfe von wget.

 $ wget https://packages.oth-regensburg.de/archlinux/iso/2022.12.01/{archlinux-2022.12.01-x86_64.iso,sha256sums.txt}

Anschliessend überprüfen wir das heruntergeladene ISO-Image auf Integrität.

 $ sha256sum --check sha256sums.txt | grep archlinux-2022.12.01-x86_64.iso

sha256sum: archlinux-x86_64.iso: No such file or directory
sha256sum: archlinux-bootstrap-2022.12.01-x86_64.tar.gz: No such file or directory
sha256sum: archlinux-bootstrap-x86_64.tar.gz: No such file or directory
sha256sum: WARNING: 3 listed files could not be read
archlinux-2022.12.01-x86_64.iso: OK

Das OK zeigt uns, dass mit dem ISO-Image soweit alles in Ordnung ist und wie mit der Installation fortschreiten können. Hierzu verschieben wir das heruntergeladene ISO auf dem Virtualisierungsknoten in das zugehörige Verzeichnis, in dem sich unsere Boot-Images befinden: /var/lib/libvirt/boot/.

 # mv archlinux-2022.12.01-x86_64.iso /var/lib/libvirt/boot/

Die Datei mit den Prüfsummen wird nicht weiter benötigt, daher löschen wir diese wieder.

 # rm sha256sums.txt

Für die Erstellung unseres ganz eigenen Benutzer-/Site-spezifischen Boot-ISO-Images werden wir eine VM1) verwenden, die folgende Eigenschaften hat:

  • Name der VM: vml000200
  • Beschreibung: Arch-Linux Boot-ISO-Node
  • RAM: 8 GB
  • CPU: 4
  • Disk: 30G
    • /dev/vda1 1 GB /boot ext4
    • /dev/vda2
    • /dev/mapper/archlinux-swap 2 GB [SWAP] swap
    • /dev/mapper/archlinux-root 10 GB / ext4
    • /dev/mapper/archlinux-home 10 GB /home ext4
    • /dev/mapper/archlinux-var 3 GB /var ext4
    • /dev/mapper/archlinux-var_log 2 GB /var/log ext4
  • Boot-Image: archlinux-2022.12.01-x86_64.iso
  • Netzwerk: br-dmz
  • Bei der Installation soll der virt-viewer automatisch gestartet werden.

Mit Hilfe des Befehls virt-install erzeugen wir nun unsere temporäre VM auf unserem Virtualisierungs-Server (Wirt).

 # virt-install -n vml000200 --description "Arch-Linux Boot-ISO-Node" --os-type=Linux --os-variant=generic --ram=8192 --vcpus=4 --disk path=/var/lib/libvirt/images/vml000200.img,bus=virtio,size=30 --cdrom /var/lib/libvirt/boot/archlinux-2022.12.01-x86_64.iso --network bridge:br-dmz && virt-viewer --connect qemu:///system vml000200

Bild: Arch Linux Boot Screen

Sobald der Node gestartet wurde, befinden wir uns dann auf der initialen Konsole, von der wir die weitere Konfiguration dann vornehmen werden.

Bild: Arch Linux Konsole

wir sind bereits als Benutzter root angemeldet und können nun manuell alle erforderlichen Konfigurationsschritte vornehmen. Hierbei orientieren wir uns im Grossen und Ganzen der Musterbeschreibung des Arch Linux WIKIs.

Nach dem initialen Start des Default-ISO-Images wird standardmässig ein US/Englisches-Tastaturlayout verwendet. Dies ändern wir nun zu aller erst einmal auf ein deutsches Tastaturlayout ab, da wir in aller Regel mit diesem besser zu Recht kommen.

root@archiso ~ # loadkeys de-latin1-nodeadkeys

Bevor wir nun mit der eigentlichen Installation und Konfiguration unserer Minimalinstallation fortfahren können, müssen wir den Diskspace unseren Anforderungen gemäss erst einmal aufteilen. Aktuell ist unsere virtuelle Festplatte noch unberührt, was auch folgender Aufruf zeigt.

root@archiso ~ # fdisk -l | grep -i 'Disk /dev/vd'
Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors

Folgendes Beispiel wollen wir für die Partitionierung und Belegung als Basis verwenden:

Phyische Festplatte / LVM Größe Mount-Point Datei-System
/dev/vda
/dev/vda1 1 GB /boot ext4
/dev/vda2
/dev/mapper/archlinux-swap 2 GB swap
/dev/mapper/archlinux-root 10 GB / ext4
/dev/mapper/archlinux-home 10 GB /home ext4
/dev/mapper/archlinux-var 3 GB /var ext4
/dev/mapper/archlinux-var_log 3 GB /var/log ext4

Zum Partitionieren verwenden wir den Befehl fdisk.

root@archiso ~ # fdisk /dev/vda
Welcome to fdisk (util-linux 2.38.1).
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 0x6469dd09.

Command (m for help):

Hier legen wir nun unsere erste Partition mit dem Kommando n an. Entsprechend unseren Vorstellungen der obigen Tabelle beantworten wir alle weiteren Fragen.

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): 1
First sector (2048-62914559, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62914559, default 62914559): +1024

Created a new partition 1 of type 'Linux' and of size 512.5 KiB.

Command (m for help):

Für unser LVM legen wir auch gleich sofort die zweite Partition wiederum mit dem Kommando n an.

 Command (m for help):
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 (3073-62914559, default 4096): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4096-62914559, default 62914559): 

Created a new partition 2 of type 'Linux' and of size 30 GiB.

Command (m for help):

Da wir bei der zweiten Partition aber später ein LVM anlegen werden, müssen wir den Default-Typ der zweiten Partition entsprechend abändern auf 8e. Hierzu benutzen wir das Kommando t.

 Command (m for help):
Partition number (1,2, default 2): 2
Hex code or alias (type L to list all): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help):

Bevor wir nun unsere Änderungen auf Platte persistieren, kontrollieren wir nochmal kurz unsere Angaben mit dem Kommando p.

 Command (m for help):
Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 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: 0x6469dd09

Device     Boot Start      End  Sectors   Size Id Type
/dev/vda1        2048     3072     1025 512.5K 83 Linux
/dev/vda2        4096 62914559 62910464    30G 8e Linux LVM

Wir speichern und verlassen nun das Programm fdisk durch Eingabe des Kommandos w.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Gemäss unserer Überlegung (siehe obige Tabelle mit den Partitionierungen) wollen wir nun auf dem Device /dev/sda2 ein LVM anlegen.

Physisches Volume anlegen

Zunächst legen wir das benötigte physisches volume zur Nutzung durch ein LVM mit nachfolgendem Befehl an:

root@archiso ~ # pvcreate /dev/vda2
  Physical volume "/dev/vda2" successfully created.

Volume Gruppe anlegen

Als nächstes definieren wir eine volume groups mit dem Namen archlinux zur Nutzung durch ein LVM mit nachfolgendem Befehl:

root@archiso ~ # vgcreate archlinux /dev/vda2
  Volume group "archlinux" successfully created

Logische Volumes anlegen

Nun fehlen nur noch die logical volumes die wir nun noch einzeln hinzufügen.

root@archiso ~ # lvcreate --name swap -L2048M archlinux
  Logical volume "swap" created.
root@archiso ~ # lvcreate --name root -L10240M archlinux
  Logical volume "root" created.
root@archiso ~ # lvcreate --name home -L10240M archlinux
  Logical volume "home" created.
root@archiso ~ # lvcreate --name var -L3072M archlinux
  Logical volume "var" created.
root@archiso ~ # lvcreate --name var_log -L3072M archlinux
  Logical volume "var_log" created.

Wir haben also nunmehr unsere virtuelle Festplatte wie folgt aufgeteilt:

root@archiso ~ # lsblk /dev/vda
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vda                   254:0    0    30G  0 disk 
├─vda1                254:1    0 512.5K  0 part 
└─vda2                254:2    0    30G  0 part 
  ├─archlinux-swap    252:0    0     2G  0 lvm  
  ├─archlinux-root    252:1    0    10G  0 lvm  
  ├─archlinux-home    252:2    0    10G  0 lvm  
  ├─archlinux-var     252:3    0     3G  0 lvm  
  └─archlinux-var_log 252:4    0     3G  0 lvm

Bevor wir unseren neuen virtuellen Host mit Leben befüllen, müssen wir natürlich noch die Dateusysteme, die wir gerade angelegt haben, entsprechend unseren Vorüberlegungen formatieren.

root@archiso ~ # mkfs.ext4 /dev/vda1
mke2fs 1.46.5 (30-Dec-2021)

Filesystem too small for a journal
Creating filesystem with 512 1k blocks and 64 inodes

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkswap /dev/mapper/archlinux-swap
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=d2e654c4-c2d5-4f61-aec1-cb0e48ebb6b3
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-root
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 570c15a5-e96e-45e1-925d-ace2e3d3e6c7
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-home
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 25c16c5b-7389-47be-85e5-06e93e301879
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-var
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: e8e25e17-b8e2-471f-b582-7fc1a43439d0
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root@archiso ~ # mkfs.ext4 /dev/mapper/archlinux-var_log
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: c1ffbcd2-ba87-4f36-9345-39fe135007e3
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Nun ist es an der Zeit, dass wir unsere Dateisysteme an Ort und Stelle einbinden - sprich mounten: Zunächst mounten wir unsere root-Partition /dev/mapper/archlinux-root auf den Mount-Point /mnt.

root@archiso ~ # mount /dev/mapper/archlinux-root /mnt

Bevor wir die zugehörigen Partitionen einhängen können, müssen wir die entsprechenden Mountpoints für /boot, /home und /var erst anlegen.

root@archiso ~ # mkdir /mnt/{boot,home,var}

Nun können wir mit dem Mounten unserer Partitionen fortfahren. Als erstes mounten wir /boot.

root@archiso ~ # mount /dev/vda1 /mnt/boot

Als nächstes aktivieren wir unsere SWAP_Partition.

root@archiso ~ # swapon /dev/mapper/archlinux-swap

Anschließend folgen die restlichen Mount-Points aus dem LVM:

root@archiso ~ # mount /dev/mapper/archlinux-home /mnt/home
root@archiso ~ # mount /dev/mapper/archlinux-var /mnt/var

Bevor wir nun noch die letzte Partition für das Verzeichnis /var/log mounten können, müssen wir das betreffende Verzeichnis noch anlegen.

root@archiso ~ # mkdir /mnt/var/log

Zu guter Letzt können wir nun auch noch den letzte Mount-Point für /var/log einhängen:

root@archiso ~ # mount /dev/mapper/archlinux-var_log /mnt/var/log

Somit haben wir nun folgenden Endstand in Sachen Partitionierung und Dateisysteme.

root@archiso ~ # lsblk /dev/vda
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vda                   254:0    0    30G  0 disk 
├─vda1                254:1    0 512.5K  0 part /mnt/boot
└─vda2                254:2    0    30G  0 part 
  ├─archlinux-swap    252:0    0     2G  0 lvm  [SWAP]
  ├─archlinux-root    252:1    0    10G  0 lvm  /mnt
  ├─archlinux-home    252:2    0    10G  0 lvm  /mnt/home
  ├─archlinux-var     252:3    0     3G  0 lvm  /mnt/var
  └─archlinux-var_log 252:4    0     3G  0 lvm  /mnt/var/log




1)
Virtuelle Maschine
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • arch/install.1671291051.txt.gz
  • Zuletzt geändert: 17.12.2022 15:30.
  • von django