Arch Linux auf btrfs installieren

Datum: 2018-02-18

Vorbereitungen

Nach dem Erstellen einer VirtualBox-VM mit einem Netzwerkadapter, der im Modus „Netzwerkbrücke“ betrieben wird, booten wir sie mit Hilfe des Installationsmediums „archlinux-2018.02.01-x86_64.iso“.

loadkeys de
systemctl start sshd
passwd root
ip -4 addr

Mittels der Kommandozeile ssh root@ip-addr können wir uns nun auf die Maschine verbinden und bequemer arbeiten…​

Partitionierung / Dateisystem

Mit folgenden Kommandozeilen partitionieren wir die Festplatte auf einfache Art und erzeugen das Hauptvolume für das neue Dateisystem ‚btrfs‘:

parted /dev/sda -- mklabel msdos mkpart primary linux-swap 8 3G
parted /dev/sda -- mkpart primary 3G 100%
mkswap /dev/sda1
swapon /dev/sda1
mkfs.btrfs /dev/sda2

Nun müssen wir das Hauptvolume mounten, ein Subvolume erzeugen (was für Snapshots erforderlich ist) und statt dessen das Subvolume mounten.

Der springende Punkt ist dabei weniger das at-Zeichen (@, = „Klammeraffe“), welches als Bezeichner für das Subvolume dient und später das Wurzeldateisystem beinhalten wird, als die Art und Weise, wie es gemountet werden muss. Nämlich mit Hilfe seiner SubvolumeID:

mount /dev/sda2 /mnt
btrfs sub create /mnt/@
btrfs sub list /mnt
umount /mnt
mount -o subvolid=257 /dev/sda2 /mnt

Zum Mounten mit Hilfe der Subvolume ID siehe auch http://www.pro-linux.de/artikel/2/1456/4,subvolumes-und-snapshots.html

Installation

Kommen wir nun zur eigentlichen Installation. Zuerst konfigurieren wir den zu verwendenden Mirror in der Datei /etc/pacman.d/mirrorlist, wobei einfach nur die beste Zeile herauszusuchen und an erste Stelle zu setzen ist. Mit vim geht das schnell zur Hand (Siehe die Hinweise zur Bedienung des Editors nach dem ‚#‘-Zeichen):

vi /etc/pacman.d/mirrorlist

   chemnitz  # Zeile mit Mirror suchen (z.B. auch "esslingen")
   yy        # Gewünschte Zeile kopieren
   5G        # Auf erste Zeile nach dem Header springen
   p         # Zeile einfügen
   :wq       # Speichern und Beenden

Im Folgenden werden die grundlegendsten Pakete heruntergeladen, eine /etc/fstab erzeugt sowie die Installation und Konfiguration des Bootloaders vorgenommen.

pacstrap /mnt base
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
pacman -S btrfs-progs grub-bios
sed -i 's/fsck)/btrfs)/' /etc/mkinitcpio.conf
mkinitcpio -p linux
grub-install --target=i386-pc --recheck /dev/sda
sed -i 's/quiet//' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount /mnt
poweroff

Schließlich müssen wir nur noch die CD entfernen - und können sogleich den Neustart wagen…​

Nutzer / Lokalisierung

Der Benutzer ‚root‘ besitzt an dieser Stelle kein Passwort! Mit passwd root sollte ihm sogleich eins zugewiesen werden. Außerdem macht es Sinn, einen einfachen Benutzer zum Beispiel für den ssh-Zugang zu erzeugen:

useradd -m tux
passwd tux

Für diesen ssh-Zugang muss allerdings noch das Paket ‚openssh‘ installiert und konfiguriert werden:

dhcpcd enp0s3
pacman -S openssh
systemctl start sshd
systemctl enable sshd

Hinweise / Parallelen

Natürlich sollte die frische Installation bezüglich der Lokalisierung angepasst werden. Siehe dazu https://wiki.archlinux.de/title/Arch_Linux_auf_Deutsch_stellen

Vergleiche mit zfs und Debian

Im Zusammenhang mit zfs könnte man folgenden Vergleich anstellen:

  • mkfs.btrfs <DEV>zpool create tank <DEV>

  • btrfs sub create </DIR/SUBDIR>zfs create tank/data

Was das Erzeugen der /etc/fstab betrifft (was Archlinux mit pacstrap bewerkstelligt), benutzt man im allgemeinen einfach einen Texteditor unter Zuhilfenahme des Kommandos blkid.

Und da sind noch zwei weitere spezielle Archlinux-Tools: Zum einen handelt es sich um pacstrap; unter Debian gibt es dafür debootstrap und zum anderen um arch-chroot; der allgemeine Weg wäre für Debian und andere Distributionen dieser:

mount /dev/sda2 /mnt
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt

Viel Spaß beim Lernen und experimentieren…​