Die Meta-Distribution Bedrock Linux bietet unter einem Dach Zugriff auf Init-Systeme, Paketmanager und Befehle unterschiedlichster Distributionen.
In den letzten beiden Jahren bereichern Distributionen die Linux-Szene, die mit verschiedenen Paketmanagern umgehen und somit Pakete etwa aus Arch Linux, OpenSuse, Debian, Fedora oder dem Nix-Paketmanager unter ihrem Dach installieren können. Zu diesen Distributionen zählt etwa das in diesem Schwerpunkt vorgestellte Vanilla OS oder auch BlendOS [1]. Da ist mancher Linux-Novize erstaunt, was Distributionen heutzutage alles leisten.
Dass das Rad damit aber nicht neu erfunden wurde, belegt Bedrock Linux, das wir erstmals bereits in LU 04/2016 vorgestellt haben [2]. Eigentlich ist der Begriff Distribution hier etwas fehl am Platz, denn es handelt sich eher um einen Daemon, der die im Root-Verzeichnis installierten Distributionen miteinander verbindet und interagieren lässt. In Bedrock Linux sorgen gereifte Unix-Tools wie Changed Roots (Chroots) und Bind-Mounts dafür, dass auf dem Fundament – denn nichts anderes bedeutet Bedrock – weitere Distributionen mit unterschiedlichen Architekturen, Paket- und Init-Systemen transparent unter einem Dateisystem zusammen existieren können. Die Webseite des Projekts beschreibt Bedrock deshalb auch als Meta-Linux [3].
Hijack-Installer
Bei Bedrock handelt es sich um ein Ein-Mann-Projekt mit einer kleinen Community, das seit 2011 nur gemächlich weiterentwickelt wird. Derzeit aktuell ist die im August 2023 erschienene Version 0.7.29. Das Prinzip, andere Distributionen einzubeziehen, beginnt bereits bei der Installation: Bedrocks Hijack-Installer übernimmt dabei eine bestehende Installation einer Distribution.
Wenn Sie mit diesem spannenden Konzept experimentieren wollen, sollten Sie vorher ein wenig Theorie pauken und zumindest die Einleitung [4] und die FAQ lesen [5], bevor Sie zur Sache gehen. Hat das Konzept Ihr Interesse geweckt, geht es weiter mit Instruktionen zur Installation [6] und der praktischen Anwendung danach [7]. Haben Sie schon einmal ein System mit Linux from Scratch (LFS) aufgesetzt, dürften Sie sich hier sofort zu Hause fühlen. Selbst der Lerneffekt kann bei tiefgreifender Beschäftigung mit Bedrock ähnlich intensiv sein. Das Ergebnis wird für die wenigsten Anwender zu einem System führen, das sie im Alltag nutzen, obwohl das prinzipiell fraglos möglich wäre. Dennoch macht das Experimentieren Spaß.
Kompatibilität
Bevor Sie entscheiden, welche Distribution Sie als Grundlage für Bedrock verwenden möchten, empfiehlt es sich, die Kompatibilitätsliste zu konsultieren. Um weitere Distributionen in Bedrock installieren zu können, muss das Grundsystem in der Spalte Fetch Support der Liste ein grünes Yes zeigen [8].
Für diesen Artikel gehen wir davon aus, dass Sie einem frisch virtualisierten Debian 12 “Bookworm” mit Plasma-Desktop ein Bedrock Linux überstülpen möchten. Dazu klicken Sie zunächst auf der Bedrock-Webseite im Reiter Installation Instructions (Abbildung 1) im unteren Drittel den Link zur Auswahl des Installationsskripts (das erste from here). Sie landen in einer releases-Textdatei, aus der Sie den Link für die verwendete Architektur kopieren und das entsprechende Skript herunterladen. Für die meisten Anwender dürfte die x86_64-Variante passen; es stehen aber viele weitere Architekturen zur Wahl.

Abbildung 1: Der Link zum Herunterladen des Installationsskripts (erstes from here) versteckt sich im Text der Webseite.
Debian entführen
Dann begeben Sie sich in der Konsole in den Ordner, in den Sie das Skript heruntergeladen haben, und führen es als Root aus (Listing 1, erste Zeile). Daraufhin erscheint eine Warnung, die Sie aufklärt, dass Bedrock das darunterliegende System übernehmen wird (--hijack) und dass dieser Vorgang irreversibel ist. Zur Bestätigung müssen Sie die Phrase Not reversible! eingeben (Abbildung 2). Nach dem Betätigen der Eingabetaste läuft der Vorgang binnen Sekunden ab, es folgt eine Aufforderung zum Neustart (Abbildung 3).
Listing 1
Installation und Konfiguration
$ sudo sh bedrock-linux-0.7.29-x86_64.sh --hijack [...] $ sudo brl fetch arch fedora [...] $ sudo brl strat arch systemctl enable sddm $ sudo brl strat arch systemctl enable NetworkManager [...] $ sudo brl strat fedora dnf install toolbox

Abbildung 2: Diese Warnung informiert darüber, dass sich die vom Skript vorgenommenen Änderungen am Root-Dateisystem nicht mehr zurücknehmen lassen.

Abbildung 3: Das Einrichten von Bedrock dauert nur eine Sekunde. Anschließend steht ein Neustart des Systems an.
Im folgenden Fenster legen Sie ein Init-System für diese Sitzung fest. Da bisher nur Debian installiert ist, steht dessen Init-System Systemd als einzige Option zur Wahl (Abbildung 4). In der Folge startet ganz normal der Debian-Desktop. Als einzige sichtbare Änderung wurde die zugrunde liegende Debian-Installation als sogenanntes Stratum in Bedrock Linux eingefügt. Ein Stratum bezeichnet in Bedrock vereinfacht gesagt wünschenswerte Eigenschaften einer anderen Distribution. Mehrere Distributionen heißen Strata. Bedrock integriert diese Schichten und schafft so ein einziges, weitgehend zusammenhängendes System.

Abbildung 4: Während des erforderlichen Neustarts führt Bedrock die Installation zu Ende und bietet Debian mit Systemd als Init an. Nach der Installation weiterer Strata stehen diese später hier zur Auswahl.
Nun installieren Sie ein weiteres solches Stratum. Dabei lernen Sie den Grundbefehl für alle Aktionen bei Bedrock kennen, nämlich brl. Eine Übersicht der wichtigsten Bedrock-Befehle finden Sie in der Tabelle “Häufig genutzte Befehle”. Mit dem Kommando sudo brl fetch --list erhalten Sie eine Liste der Distributionen, deren Eigenschaften als Strata installierbar sind. Sie umfasst derzeit zehn Positionen; wir gehen im Folgenden davon aus, dass Sie Arch Linux und Fedora auswählen.
|
Befehl |
Wirkung |
|---|---|
|
|
zeigt alle installierten Strata |
|
|
zeigt alle installierbaren Strata |
|
|
installiert ein Stratum |
|
|
deaktiviert ein Stratum |
|
|
entfernt ein Stratum (klappt erst nach |
|
|
zeigt aktuell aktives Stratum |
|
|
zeigt Ursprungsdistribution eines Pakets |
|
|
aktiviert Konfigurationsänderungen |
|
|
Statusabfrage der installierten Strata |
|
|
zeigt weitere Parameter an |
Unterstützte Distributionen
Die zehn offiziell unterstützten Distributionen sind aber längst nicht das Ende der Fahnenstange. Mit einem tieferen Verständnis, wie Bedrock funktioniert, lassen sich auch weitere Linux-Derivate integrieren. So werden Debian und Devuan offiziell unterstützt, Ubuntu funktioniert ebenfalls einwandfrei. Bei Fedora Silverblue gilt es, das Problem des nur lesbaren Root-Dateisystems zu überwinden. Um Bedrock darauf installieren zu können, muss das Dateisystem für diesen Zeitraum beschreibbar sein.
Wir bleiben für diesen Test aber bei den bereits etablierten Distributionen. Mit dem Befehl aus der dritten Zeile von Listing 1 installieren Sie beide Strata in einem Rutsch und ohne weitere Interaktion (Abbildung 5). Das dauert auf aktueller Hardware rund zehn Minuten. Nach Eingabe des Befehls sudo brl list finden Sie neben Bedrock und Debian nun auch Arch Linux und Fedora in der Aufzählung der installierten Distributionen.

Abbildung 5: Die Installation weiterer Strata stößt der Befehl brl fetch Stratum an. Arch Linux und Fedora zog Bedrock im Test auf aktueller Hardware binnen rund zehn Minuten nach.
Plasma 6 installieren
Im Test wollten wir wissen, ob sich die beiden Distributionen nun innerhalb von Bedrock nutzen lassen. Der Aufruf sudo pacman -Syu führte zum erwarteten Ergebnis. Daraufhin wurden wir mutig – am Vortag war KDE Plasma 6 in das stabile Repository von Arch integriert worden. In gewohnter Arch-Manier gaben wir sudo pacman -S plasma kde-applications ein. Nach Auswahl der gewünschten Pakete (Abbildung 6) startete die Installation, was einige Minuten in Anspruch nahm. Vor dem Neustart in die neue Umgebung galt es noch, den Login-Manager SDDM und den NetworkManager zu aktivieren.

Abbildung 6: Arch Linux bot wenige Tage nach der Veröffentlichung bereits Plasma 6 an. Das ließen wir uns im Test nicht entgehen.
Bei solchen Arbeiten kommt eine Besonderheit von Bedrock zum Tragen, denn manche Befehle gibt es unter Umständen in mehreren Strata. Das gilt in unserem Beispiel für Systemd-Kommandos, die es für Debian, Arch Linux und Fedora gibt. Hier müssen Sie Bedrock mitteilen, auf welche Distribution es den Befehl systemctl anwenden soll. Dazu dient der Parameter strat (Listing 1, Zeile 5). Analog funktioniert das für den NetworkManager (Zeile 6). Damit sollte, wenn alles gut gegangen ist, nach einem Neustart Arch Linux in Bedrock mit KDE Plasma 6 als Oberfläche glänzen.
Beim Neustart folgt auf den Bootloader Grub von Debian ein Bedrock-Fenster, das nun neben Debian auch Arch Linux und Fedora zum Start anbietet. Wählen Sie hier Arch Linux, entfaltet sich anschließend KDE Plasma 6 vor Ihren Augen (Abbildung 7), und es scheint auf den ersten Blick alles sowohl unter X11 als auch mit Wayland zu funktionieren.
Toolbox aus Fedora in Arch
Im Test vermissten wir noch Toolbox, das wir häufig in Fedora Kinoite verwenden. Zunächst versicherten wir uns, wo wir uns befanden: brl which zeigte, dass das Arch Linux war. Haben Sie erst einmal verschiedene Pakete aus verschiedenen Distributionen installiert, so verschafft Ihnen der Befehl brl which Paket einen Überblick, aus welcher Distribution ein Paket stammt.
Da Toolbox sowohl in den Archiven von Arch Linux als auch denen von Fedora verfügbar ist, wir aber die Version aus Fedora bevorzugen, griffen wir wieder zu strat (Listing 1, letzte Zeile). Abbildung 8 zeigt Bedrock bei der entsprechenden Aktion.

Abbildung 8: Die Installation des Pakets toolbox aus Fedora in Arch Linux verlief wie in Fedora selbst. Da Toolbox auch in Arch Linux verfügbar ist, kam hier der Parameter strat fedora zum Einsatz.
Lassen wir uns kurz auf der Zunge zergehen, was hier passiert ist: In einer virtuellen Maschine auf einem Unraid-Server läuft ein von Bedrock gekapertes Debian 12. Darin laufen nun neben Debian, auf das wir weiter Zugriff haben, ein auf Plasma 6 hochgezogenes Arch Linux sowie ein Standard-Fedora. Wir befinden uns in Arch, installieren aber mal eben das Paket Toolbox aus Fedora – großes Kino.
Global oder nicht?
Mit dieser Methodik lässt sich etwa VLC aus Debian Stable und aus Arch Linux nebeneinander installieren und ausführen. Bei der Wahl, welche Version Sie verwenden möchten, kommt wieder strat ins Spiel. Um ein Video mit der Arch-Linux-Version abzuspielen, verwenden Sie das Kommando strat arch vlc Video.
Um Konflikte zu vermeiden, sehen Prozesse eines Stratums üblicherweise nur die Instanz einer bestimmten Datei des eigenen Stratums. So dürfen Debians Apt und Ubuntus Apt jeweils nur die Repositories in ihrer eigenen Instanz von /etc/apt/sources.list sehen können, um Pakete der jeweiligen Distribution zu installieren. Um sicherzustellen, dass die Zusammenarbeit funktioniert, müssen sich andere Dateien jedoch von allen Schichten gemeinsam nutzen lassen. Beispielweise sehen alle Schichten beim /home dieselben als global gekennzeichneten Dateien. Weitere globale Pfade sind etwa /run, /temp und /bedrock/etc/bedrock.conf.
Ein anderer Weg zur Installation von Strata bietet der Befehl sudo brl import Name Quelle. Zu den dabei unterstützten Formaten zählen Tar-Archive, Docker- und Podman-Images sowie virtuelle Maschinen aus Qemu, Virtualbox und VMware.
Die Magie in Bedrock
Bedrock arbeitet mit einigen Tricks und Kniffen, um Dateisysteme für seine Zwecke umzubiegen. Beim Hochfahren des Systems, gleich nach dem Init der zu startenden Distribution, laufen die Prozesse der beiden Fuse-Dateisysteme CrossFS und Etcfs an, um globale Dateien, Bibliotheken und Schriftarten zwischen den Schichten zu verschieben. Außerdem fügt Bedrock die Pfade zu den Stratum-Binärdateien der Variablen PATH hinzu. Das ermöglicht den Zugriff über die Bash oder andere Shells.
Darüber hinaus fügt Bedrock der Dateisystemwurzel einen zusätzlichen Ordner mit dem Namen /bedrock hinzu. Darin befindet sich der Ordner strata/, der wiederum Unterordner mit der Ordnerstruktur der installierten Distributionen enthält. Das Herz der Magie schlägt in der umfangreichen, aber gut dokumentierten Konfigurationsdatei /bedrock/etc/bedrock.conf.
Bedrock verfügt über einen eigenen Init-Prozess, der beim Hochfahren die Bedrock-Subsysteme einrichtet und dann die Kontrolle an ein vom Benutzer ausgewähltes Init-System übergibt, das eines der installierten Strata bereitstellt. Sie können aber in der Konfiguration auch ein gemeinsames Init-System für alle Strata festlegen, indem Sie in der Konfiguration beispielsweise default = void: /sbin/runit eintragen.
Es empfiehlt sich, die Konfiguration in voller Länge durchzugehen, denn dabei enthüllen sich nicht nur viele Möglichkeiten, das System an die eigenen Bedürfnisse anzupassen: Auch der Erkenntnisgewinn darüber, wie Bedrock tickt, ist nicht zu verachten. Haben Sie Veränderungen vorgenommen, übernimmt der Befehl sudo brl apply diese im Anschluss.
Sicherheit
Die Webseite des Projekts enthält in der FAQ auch Aussagen zur Sicherheit von Bedrock Linux. Der Entwickler sieht diese auf vergleichbarem Niveau mit anderen Standard-Distributionen, weist aber auf einige kritische Punkte hin. So verhindert die Interaktion der einzelnen Schichten spezielle Techniken zum Härten, die sich bei anderen Linux-Derivaten nutzen lassen [9]. Generell lässt sich sagen, dass das Konzept der Chroots, mit dem Bedrock die Isolation umsetzt, den heutigen Containern in Sachen Sicherheit vermutlich unterlegen ist.
Fazit
Wir haben in diesem Artikel die Grundlagen von Bedrock Linux kaum angekratzt, es gibt noch eine Menge mehr zu lernen. Das System eignet sich am ehesten für Benutzer mit mittleren bis fortgeschrittenen Linux-Kenntnissen: Ohne ausreichendes Know-how fällt es schwer, komplexere Szenarien in Bedrock zu verstehen und umzusetzen.
Entwicklern bietet Bedrock eine exzellente Plattform, da sich die Ergebnisse gut in verschiedenen Umgebungen testen lassen. Aber auch Desktop-User, die verschiedene Versionen einer Software nebeneinander benötigen, profitieren von der Meta-Distribution.
Bedrock funktioniert am besten, wenn Sie gut getestete Linux-Ableger als Grundlage verwenden. Unser Mix aus Debian, Arch Linux und Fedora lief im Test über Wochen hinweg stabil. Vom Lerneffekt abgesehen macht es vor allem Spaß, mit Bedrock zu experimentieren, um zu sehen, wie weit man bestimmte Abläufe in Linux umbiegen kann. (tle/jlu)
Infos
-
Bedrock Linux: Ferdinand Thommes, “Fundamental”, LU 04/2016, S. 20, https://www.linux-community.de/34042
-
Bedrock: https://bedrocklinux.org
-
Bedrock-Einleitung: https://bedrocklinux.org/introduction.html
-
Bedrock-FAQ: https://bedrocklinux.org/faq.html
-
Bedrock installieren: https://bedrocklinux.org/0.7/installation-instructions.html
-
Bedrock verwenden: https://bedrocklinux.org/0.7/basic-usage.html
-
Bedrock-Kompatibilität: https://bedrocklinux.org/0.7/distro-compatibility.html
-
Bedrock-Sicherheit: https://bedrocklinux.org/faq.html#security






