Fried.Ice
Ensign
- Registriert
- Apr. 2012
- Beiträge
- 133
Hallo zusammen.
Da im Thread zur neuen Version von openSuse die Frage aufkam, wie ich mein Installationssetup erstellt habe, möchte ich hier eine mehr oder weniger ausführliche Anleitung präsentieren. @Tacheles und @Beelzebot seien an dieser Stelle verlinkt.
Diese wäre im Ursprungsthread wohl doch ein wenig Offtopic gewesen, und vielleicht liest so der ein oder andere interessierte Leser mit und kann Verbesserungsvorschläge oder Anmerkungen anderer Natur hinterlassen.
Gleich vorweg: Dies ist keine Anleitung für Linux-Anfänger, sondern richtet sich an erfahrenere Nutzer.
Ich werde nicht auf die Installation oder Eigenheiten von Arch Linux an sich eingehen, sondern nur auf die Änderungen, die notwendig sind, um mein Setup zu betreiben.
Die Basisinformationen selbst sind im Arch Wiki bereits bestens zusammengefasst: https://wiki.archlinux.org/index.php/Installation_guide.
Worum genau geht es?
Ich habe in den letzen Monaten vermehrt meine Augen auf Btrfs gerichtet, da sich die Features wie z.B. das simple Anlegen von Snapshots oder auch die transparente Komprimierung sehr vielversprechend anhörten.
Im Zuge meines Hardwareupgrades wurde eine komplette 512 GB SSD frei, die ich nun rein für GNU/Linux verwende. Da ich von meinem Notebook eine Vollverschlüsselung gewohnt war, wollte ich diese nun auch auf dem Desktop nicht mehr missen. Zusätzlich wollte ich zum Experimentieren neben Arch auch noch weitere Distributionen verwenden, in meinem Fall waren das Gentoo und Ubuntu.
Ich hatte allerdings vorher schon oft kein gutes Händchen für die Abschätzung von Partitionsgrößen bewiesen, weshalb mit Btrfs in dieser Hinsicht sehr entgegen kam.
Mittels sogenannter subvolumes kann man, vereinfacht gesagt, mehrere "virtuelle" Partitionen innerhalb der Btrfs Partition anlegen, die sich den verfügbaren Platz dynamisch teilen, und separat gemounted werden können.
Der Plan sah also folgendermaßen aus:
Anmerkungen:
An dieser Stelle möchte ich auf wichtige Wiki-Seiten verweisen, die die Details aufbereiten:
Disclaimer:
Die Änderungen, die nach den angegebenen Schritten durchgeführt werden, können zu Datenverlust führen.
Klemmt also sicherheitshalber andere Festplatten ab und/oder habt Backups von wichtigen Daten auf anderen, physisch nicht angeschlossenen Festplatten, vorrätig.
Alle Handlungen erfolgen auf eigene Gefahr.
Nun folgt, ohne große Umschweife, die eigentliche Anleitung:
Das System kann nun gebootet werden.
Sollte es später mal notwendig sein, das System manuell mounten zu müssen (weil z.B. der Bootloader nicht korrekt konfiguriert wurde, die Pakete zur Netzwerkeinrichtung vergessen wurden etc.), können folgende Schritte ausgehend vom Bootmedium eingeleitet werden:
Nun zur Installation von Ubuntu und Gentoo.
Es bietet sich an, die Installation gleich aus dem bereits installierten Archlinux vorzunehmen, da so (im Falle von Gentoo) bereits eine graphische Desktopumgebung installiert ist und man parallel zur Installation am gleichen Rechner Recherche und copy und paste betreiben kann.
Meine ursprüngliche Installation habe ich unter 19.10 getätigt, da hat alles wunderbar funktioniert.
Ich hoffe, dieser Beitrag war für den ein oder anderen hilfreich oder inspirierend, bitte zögert nicht mit Anmerkungen und Fragen!
Da im Thread zur neuen Version von openSuse die Frage aufkam, wie ich mein Installationssetup erstellt habe, möchte ich hier eine mehr oder weniger ausführliche Anleitung präsentieren. @Tacheles und @Beelzebot seien an dieser Stelle verlinkt.
Diese wäre im Ursprungsthread wohl doch ein wenig Offtopic gewesen, und vielleicht liest so der ein oder andere interessierte Leser mit und kann Verbesserungsvorschläge oder Anmerkungen anderer Natur hinterlassen.
Gleich vorweg: Dies ist keine Anleitung für Linux-Anfänger, sondern richtet sich an erfahrenere Nutzer.
Ich werde nicht auf die Installation oder Eigenheiten von Arch Linux an sich eingehen, sondern nur auf die Änderungen, die notwendig sind, um mein Setup zu betreiben.
Die Basisinformationen selbst sind im Arch Wiki bereits bestens zusammengefasst: https://wiki.archlinux.org/index.php/Installation_guide.
Worum genau geht es?
Ich habe in den letzen Monaten vermehrt meine Augen auf Btrfs gerichtet, da sich die Features wie z.B. das simple Anlegen von Snapshots oder auch die transparente Komprimierung sehr vielversprechend anhörten.
Im Zuge meines Hardwareupgrades wurde eine komplette 512 GB SSD frei, die ich nun rein für GNU/Linux verwende. Da ich von meinem Notebook eine Vollverschlüsselung gewohnt war, wollte ich diese nun auch auf dem Desktop nicht mehr missen. Zusätzlich wollte ich zum Experimentieren neben Arch auch noch weitere Distributionen verwenden, in meinem Fall waren das Gentoo und Ubuntu.
Ich hatte allerdings vorher schon oft kein gutes Händchen für die Abschätzung von Partitionsgrößen bewiesen, weshalb mit Btrfs in dieser Hinsicht sehr entgegen kam.
Mittels sogenannter subvolumes kann man, vereinfacht gesagt, mehrere "virtuelle" Partitionen innerhalb der Btrfs Partition anlegen, die sich den verfügbaren Platz dynamisch teilen, und separat gemounted werden können.
Der Plan sah also folgendermaßen aus:
- EFI Partition - fat32
- boot Partition - btrfs
- Top level btrfs subvolumes für für jede
/boot
-Parition jeder Distribution -/ArchBoot
,/GentooBoot
,/UbuntuBoot
- Top level btrfs subvolumes für für jede
- LUKS/DmCrypt
- LVM2
- Root Partition - btrfs
- Top level btrfs subvolumes für für jede
/
Parition jeder Distribution -/ArchRoot
,/GentooRoot
,/UbuntuRoot
- Top level btrfs subvolumes für home, data und games, die je nach Bedarf in den jeweiligen Distris gemounted sind
- Top level btrfs subvolumes für für jede
- Swap Partition
- Root Partition - btrfs
- LVM2
Anmerkungen:
- Dadurch, dass sich alle Distributionen ein Dateisystem teilen, besteht bei einem Dateisystemfehler das Risiko, dass alle Distributionen betroffen sind
- Andere Distributionen mit graphischen Installern kommen meiner Erfahrung nach nicht zurecht mit der Installation in selbstdefinierte Btrfs subvolumes, z.B. OpenSuse und Fedora konnte ich nicht erfolgreich zum Booten bringen (wer hier Vorschläge hat, gerade im Hinblick auf eine Installation aus einem chroot statt einem graphischen Installer, ist herzlich eingeladen, mich zu erleuchten! )
- Die Göße der Partitionen können nach belieben angepasst werden, ich habe meine Boot- und EFI-Partionen etwas großzügiger gewählt, um Reserven zu haben
- Im Ursprungsthread wurde vorgeschlagen, auf LVM2 zu verzichten, in dem man die Swap-Partition "mit einem random key verschluesselt von dem jeweiligen gebooteten system mountet". Der Grund, dass ich das nicht so ausgelegt habe, liegt darin, dass ich den Swap für Hibernation nutzen wollte, und dies meines Wissens nach anders nicht möglich war. Falls das nicht der Fall sein sollte, möge man mich eines Besseren belehren.
An dieser Stelle möchte ich auf wichtige Wiki-Seiten verweisen, die die Details aufbereiten:
- https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS
- https://wiki.archlinux.org/index.php/Btrfs
- https://wiki.archlinux.org/index.php/Installation_guide (auch an dieser Stelle sei dies nochmal erwähnt )
Disclaimer:
Die Änderungen, die nach den angegebenen Schritten durchgeführt werden, können zu Datenverlust führen.
Klemmt also sicherheitshalber andere Festplatten ab und/oder habt Backups von wichtigen Daten auf anderen, physisch nicht angeschlossenen Festplatten, vorrätig.
Alle Handlungen erfolgen auf eigene Gefahr.
Nun folgt, ohne große Umschweife, die eigentliche Anleitung:
/dev/sda
ist ein Platzhalter, welcher durch das gewünschte Blockdevice ersetzt werden muss.- Boot vom Installationsmedium (USB-Stick/CD)
- Partitionierung der Festplatte (ich nehme gerne
fdisk
dazu)- Partition layout: GPT
- Partition 1: EFI Systempartition
/dev/sda1
(bei mir: 512 MB) - Partition 2: Linux File System
/dev/sda2
(bei mir: 3,5 GB) - Partition 3: Linux File System
/dev/sda3
(bei mir: Rest)
- Anlegen des Dm-Crypt Containers für die Haupt-Partition (hier bei bedarf eigene Verschlüsselungs-Parameter angeben, siehe https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption#Encryption_options_for_LUKS_mode)
cryptsetup luksFormat /dev/sda3
- Öffnen des Dm-Crypt Containers auf den mapper
crypt
(Name kann beliebig geändert werden)cryptsetup open /dev/sda3 crypt
- Anlegen des LVM
pvcreate /dev/mapper/crypt
vgcreate mainLvmGroup /dev/mapper/crypt
(Name kann beliebig geändert werden)lvcreate -L 440G mainLvmGroup -n BetterRoot
(Name und Größe kann beliebig geändert werden)lvcreate -l 100%FREE mainLvmGroup -n swap
(Name kann beliebig geändert werden)
- Anlegen der Dateisysteme (Bei Bedarf Paramter für Spezialisierung angeben)
mkfs.vfat -F 32 /dev/sda1
mkfs.btrfs /dev/sda2
mkfs.btrfs /dev/mapper/mainLvmGroup-BetterRoot
mkswap /dev/mapper/mainLvmGroup-swap
- Anlegen der Btrfs subvolumes (Ich verwende hier bewusst nicht die geläufige Form der Benennung von root level Subvolumes mittels
@
- mich persönlich verwirrt das mehr, als es hilft. Das kann natürlich jeder so handhaben, wie es ihm beliebt.)- HauptPartition
mount /dev/mapper/mainLvmGroup-BetterRoot /mnt
btrfs subvolume create /mnt/ArchRoot
btrfs subvolume create /mnt/UbuntuRoot
- ...
- Hier ist auch der passende Augenblick, falls für spezielle Unterverzeichnisse subvolumes gewünscht werden
btrfs subvolume create /mnt/ArchRoot/home
- ...
umount /mnt
- BootPartition
mount /dev/sda2 /mnt
btrfs subvolume create /mnt/ArchBoot
btrfs subvolume create /mnt/UbuntuBoot
- ...
umount /mnt
- HauptPartition
- Mounten der Partitionen
mount /dev/mapper/mainLvmGroup-BetterRoot /mnt -o subvol=/ArchRoot
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot -o subvol=/ArchBoot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
swapon /dev/mapper/mainLvmGroup-swap
- Installation des Base Systems (weitere Pakete für z.B. für die Netzwerkkonfiguration sind hinzufügen, z.B.
dhcpcd
oderwpa_supplicant
oder etwalinux-firmware
)pacstrap /mnt base linux grub efibootmgr btrfs-progs lvm2
- fstab Erzeugung
genfstab -U /mnt > /mnt/etc/fstab
- Konfiguration des Systems (siehe https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration)
arch-chroot /mnt
- Füge benötigte Hooks zum initramfs hinzu
/etc/mkinitcpio.conf
:HOOKS=(base udev autodetect keyboard keymap consolefont modconf btrfs block encrypt lvm2 resume filesystems keyboard fsck)
- Erstelle initramfs neu, um die Änderungen zu übernehmen
mkinitcpio -P
- Setze Flags für den Kernel
/etc/default/grub
:GRUB_CMDLINE_LINUX="cryptdevice=UUID=${UUID_of_/dev/sda3}:crypt root=/dev/mainLvmGroup/BetterRoot rootflags=subvol=/ArchRoot resume=/dev/mainLvmGroup/swap"
- Installiere grub für EFI
grub-install --efi-directory=/boot/efi --bootloader-id=arch
- Erzeuge neue grub Konfiguration
grub-mkconfig -o /boot/grub/grub.cfg
- Andere Konfigurationsschritte
- timezone
- keymap
- ...
Das System kann nun gebootet werden.
Sollte es später mal notwendig sein, das System manuell mounten zu müssen (weil z.B. der Bootloader nicht korrekt konfiguriert wurde, die Pakete zur Netzwerkeinrichtung vergessen wurden etc.), können folgende Schritte ausgehend vom Bootmedium eingeleitet werden:
cryptsetup open /dev/sda3 crypt
mount /dev/mapper/mainLvmGroup-BetterRoot /mnt -o subvol=/ArchRoot
arch-chroot /mnt
mount -a
# Mountet die in der/etc/fstab
definierten Partitionen wie z.B./boot
; wichtig, falls auf diese z.B. bei einem Kernelupdate geschrieben werden soll- ...
Nun zur Installation von Ubuntu und Gentoo.
Es bietet sich an, die Installation gleich aus dem bereits installierten Archlinux vorzunehmen, da so (im Falle von Gentoo) bereits eine graphische Desktopumgebung installiert ist und man parallel zur Installation am gleichen Rechner Recherche und copy und paste betreiben kann.
- Ubuntu
- Mounte alle notwendigen Partitionen (
/
,/boot
und/boot/efi
) analog zur bisherigen Anleitung (/
ist bei mir im Folgenden im Hostsystem unter/mnt/UbuntuRoot
gemounted) - Installation Basissystem
debootstrap --variant=minbase --arch=amd64 focal /mnt/UbuntuRoot http://de.archive.ubuntu.com/ubuntu
/etc/fstab
erzeugengenfstab -U /mnt/UbuntuRoot/ > /mnt/UbuntuRoot/etc/fstab
(genfstab
ist im Paketarch-install-scripts
enthalten)
- Systemkonfiguration
arch-chroot /mnt/UbuntuRoot
(arch-chroot
ist im Paketarch-install-scripts
enthalten)mount -a
/etc/crypttab
konfigurieren- Diese Datei ersetzt die Kernelparamter bei Arch
crypt UUID="${UUID_of_/dev/sda3}" none luks
- Kernel installieren
apt install linux-generic
->grub-pc
wird automatisch mit eingerichtet (warum halt auch nicht ...),Enter
drücken um zu bestätigen, dass keine grub Installation getätigt werden soll
- Installiere weitere Pakete
apt install grub-efi cryptsetup lvm2 btrfs-progs language-pack-en
apt remove grub-pc
- Boot konfigurieren (https://wiki.ubuntuusers.de/System_verschlüsseln/)
dm-crypt
zu/etc/modules
hinzufügenexport PATH="$PATH:/sbin"
update-grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu
update-initramfs
- Mounte alle notwendigen Partitionen (
- Gentoo werde ich hier nicht näher betrachten, das Gentoo Wiki leistet gute Hilfestellung und die Installation verläuft analog zu den bereits aufgezeigten Installationen.
Meine ursprüngliche Installation habe ich unter 19.10 getätigt, da hat alles wunderbar funktioniert.
Ich hoffe, dieser Beitrag war für den ein oder anderen hilfreich oder inspirierend, bitte zögert nicht mit Anmerkungen und Fragen!
Zuletzt bearbeitet:
(Fix wrong folder paths)