Home Bedrock Linux Bedrock Linux: Run Multiple Linux Distributions On A Single System

Bedrock Linux: Run Multiple Linux Distributions On A Single System

The Ultimate Guide to Install and Use Bedrock Linux.

By sk

Bedrock Linux is a meta Linux distribution that allows users to mix and match components from other distributions, including incompatible ones. This means that you can have the stability of Debian's coreutils, the cutting-edge kernel from Arch Linux, and the init system of Void Linux, all on the same system. In this tutorial, we will explain what is Bedrock Linux, its features, how to install and use Bedrock Linux to run multiple Linux distributions on a single system.

1. What is Bedrock Linux?

Bedrock Linux is a unique and advanced Linux distribution that allows you to combine components from various other Linux distributions into a single, cohesive system.

Bedrock Linux is not a standalone distribution with its own package manager but rather a meta-distribution that lets you use packages, libraries, and other software from different Linux distributions simultaneously.

This can be useful for users who want to leverage the strengths of multiple distributions in one environment.

2. Key Features

  1. Mix and Match Distributions: Bedrock Linux allows you to use packages and components from multiple Linux distributions simultaneously. You can have software from Arch Linux, Debian, Ubuntu, Fedora, and more all running within a single Bedrock Linux installation.
  2. Integration: Bedrock provides mechanisms for software components to work together, even if they come from different distributions. For example, you can have libraries from one distribution and applications from another coexist seamlessly.
  3. Strata: Bedrock organizes the different components of your system into units called "strata," with each stratum corresponding to a different Linux distribution. You can add or remove strata as needed.
  4. Package Management: You can use the package manager of each individual stratum (e.g., pacman for Arch Linux, apt for Debian/Ubuntu) to manage software within that stratum.

Warning: Please note that Bedrock Linux is not as user-friendly or straightforward as typical Linux distributions and is best suited for users with advanced Linux knowledge.

Mixing components from different distributions can lead to compatibility issues, and troubleshooting can be challenging. Additionally, because Bedrock Linux is a relatively niche project, community support may be limited compared to more mainstream distributions.

Before attempting to use Bedrock Linux, it's advisable to read the following steps or the Bedrock official documentation thoroughly and consider your specific use case to determine if it's the right solution for you.

3. Prerequisites

1. Install a Base Linux System

As stated already, Bedrock Linux isn't a standalone Linux system. It is a meta Linux distribution. Meaning - it should be installed on the top of an existing Linux distribution.

To use Bedrock Linux, you first need to install a base distribution. The base system can be any Linux distribution that Bedrock supports, such as Debian, Arch Linux, or Gentoo.

Once you have a base distribution installed, you can use the Bedrock hijack installer to convert it into Bedrock.

For the purpose of this guide, I will be using Debian 12 as my base system.

2. Backup Your Data

This is really really important. You must backup all the important data before attempting to install Bedrock Linux. We already have published many Backup applications in this blog. Check our Backup Tools archive and pick any suitable backup application of your choice.

3. Bedrock Linux is only for Advanced Users

It is important to note that Bedrock Linux is not for everyone. Once it is installed, it will replace your existing install. It is irreversible. If you're a beginner, stay away from Bedrock Linux.

4. Install Bedrock Linux

Before installing Bedrock Linux, check the Bedrock Linux compatibility page to verify that your base Linux distribution is supported.

If your Linux distribution supports, download the latest Bedrock Linux 0.7 Poki installer script corresponding to your CPU architecture from the official Bedrock Linux download page.

$ wget https://github.com/bedrocklinux/bedrocklinux-userland/releases/download/0.7.29/bedrock-linux-0.7.29-x86_64.sh

Run Bedrock Linux installer with --hijack flag as root user or with sudo privilege like below:

$ sudo sh bedrock-linux-0.7.29-x86_64.sh --hijack

Type "Not reversible!" in the prompt without quotes and hit ENTER key to continue.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                               *
* Continuing will:                                              *
* - Move the existing install to a temporary location           *
* - Install Bedrock Linux on the root of the filesystem         *
* - Add the previous install as a new Bedrock Linux stratum     *
*                                                               *
*                                                               *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Please type "Not reversible!" without quotes at the prompt to continue:
> Not reversible!
Install Bedrock Linux
Install Bedrock Linux

The Bedrock installer script will do the following:

  • Move your existing installation to a temporary location,
  • Install Bedrock Linux on the root of the filesystem,
  • and then add your previous installation as a new Bedrock Linux stratum.

The installation will only take a few moments to complete.


__          __             __      
\ \_________\ \____________\ \___  
 \  _ \  _\ _  \  _\ __ \ __\   /  
  \___/\__/\__/ \_\ \___/\__/\_\_\ 
          Bedrock Linux 0.7.29 Poki

[1/6 ( 16%)] Performing sanity checks
[2/6 ( 33%)] Gathering information
* Using debian for initial stratum
* Using debian:/sbin/init as default init selection
* Using apt as pmm user interface
* Using en_IN UTF-8 for locale.gen language
* Using en_IN for $LANG
* Using Asia/Kolkata for timezone
[3/6 ( 50%)] Hijacking init system
[4/6 ( 66%)] Extracting /bedrock
[5/6 ( 83%)] Configuring
* Configuring bedrock stratum
* Configuring debian stratum
* Configuring bedrock.conf
* Configuring /etc/fstab
[6/6 (100%)] Finalizing
* Reboot to complete installation
* After reboot consider trying the Bedrock Linux basics tutorial command: brl tutorial basics
Bedrock Linux Installation is Completed
Bedrock Linux Installation is Completed

Reboot your system to complete the Bedrock installation:

$ sudo reboot

During boot process, you will see a new init selection menu. You will be prompted to choose the init number to use for this session. By default, it will automatically choose the init number of your base OS and continue booting the system. In my case, the base OS is Debian, which has an init number of 1.

Booting Bedrock Linux
Booting Bedrock Linux

If you have added multiple Strata, the init selection will display all the available entries as shown in the screenshot below.

Bedrock Init Selection Menu
Bedrock Init Selection Menu

We will explain about Stratum and Strata in detail in the subsequent sections.

Congratulations! We have successfully installed Bedrock Linux in Debian 12.

5. How to Use Bedrock Linux

Before getting started with Bedrock Linux, you need to understand two terminologies namely "strata" and "stratum".

In Bedrock Linux, "strata" and "stratum" are key concepts that refer to layers or components of the operating system. These terms are used to describe how Bedrock Linux allows you to combine and manage components from multiple Linux distributions within a single system.

5.1. What is Stratum in Bedrock Linux?

A Stratum in Bedrock Linux is an individual layer or component of the operating system. Each stratum represents a separate Linux distribution.

For example, you can have one stratum that includes software from Arch Linux, another from Debian, and another from Ubuntu. Each stratum has its own package manager and software repositories.

Bedrock Linux enables these strata to coexist on the same system, allowing you to use software from different distributions simultaneously.

5.2. What is Strata in Bedrock Linux?

The term "strata" is the plural form of "stratum." When you have multiple layers or components (i.e., different Linux distributions) integrated into your Bedrock Linux system, you refer to them collectively as "strata."

The ability to use multiple strata is a key feature of Bedrock Linux, as it enables users to leverage the strengths and software ecosystems of various distributions within a single environment.

In summary, a "stratum" is an individual component or layer representing a specific Linux distribution, while "strata" refers to the collection of these components from various distributions within your Bedrock Linux installation.

Bedrock Linux provides tools and mechanisms for managing and integrating these strata, allowing for a unique and flexible Linux experience that combines the best of multiple distributions.

5.3. The brl Command

Bedrock Linux provides a command-line tool called brl for system management and introspection. The brl command can be used to list, import, add, rename, copy, enable, disable, and remove strata.

To view the help section of brl command, run:

$ brl --help

Sample Output:

Usage: brl <command> [arguments]

Bedrock Linux system management and introspection.

Common commands:
  strat     Run specified stratum's executable
            Note: `strat` is available without the `brl` prefix
  list      List strata
  which     Query which stratum provides object

Strata management commands:
  fetch     Fetch new strata
  import    Import new strata
  remove    Remove strata (or aliases)
  rename    Rename a stratum
  copy      Copy a stratum

Strata status management commands:
  status    Query stratum status
  enable    Enable strata
  disable   Disable strata
  repair    Repairs broken strata

Strata visibility management commands:
  hide      Hide strata
  show      Show strata

Alias management commands:
  alias     Create a stratum alias
  deref     Dereference stratum aliases

Miscellaneous commands:
  apply     Apply configuration changes
  update    Update Bedrock Linux system
  version   Query Bedrock Linux version
  report    Generate report
  tutorial  Run interactive Bedrock Linux tutorial

See `brl <command> --help` for further details per command.

If you want to get help for a sub-command, run:

$ brl <command-name> --help


$ brl fetch --help

5.4. List Strata

To view the currently installed and enabled strata, use the brl list command:

$ brl list

Sample Output:

List Currently Installed and Enabled Strata in Bedrock Linux
List Currently Installed and Enabled Strata in Bedrock Linux

As you can see, my system two strata namely bedrock and debian.

In a fresh Bedrock Linux installation, there are two initial strata:

  1. The Bedrock Stratum: This stratum provides Bedrock-specific functionality and serves as a foundation for managing and integrating different components from various Linux distributions.
  2. The Hijacked Stratum: The hijacked stratum represents the base Linux distribution that you used to install Bedrock Linux. For instance, if you installed Bedrock on a Debian system, the hijacked stratum would be the Debian stratum. It contains the files and components of the base distribution that serve as the foundation for your Bedrock Linux installation.

By default, the brl list command will only list the installed and enabled strata. If you want to display all strata including the disabled, use --a, --all-strata flag.

$ brl list -a

5.5. Download a New Stratum

First, check the list of available strata for download using fetch command:

$ brl fetch --list

Sample Output:

Check Available Strata for Download
Check Available Strata for Download

To download a new stratum, for example Arch Linux, run:

$ sudo brl fetch arch

This will download and create a new Arch Linux stratum named "arch". If you want to create a stratum with custom name, you can use the -n flag:

$ sudo brl fetch -n test-arch arch

The above command will create a new Arch Linux stratum with name "test-arch".

You can also fetch multiple strata by specifying them as space-separated entries like below.

$ sudo brl fetch alpine arch gentoo ubuntu void

5.6. Run Stratum Commands

Many features from strata should work just as they would in their native environments. You can use the respective package manager for each stratum that you have fetched to install packages.

For example, if you have fetched Arch Linux and Void Linux strata, you can run both pacman and xbps-install package managers in the same system like below.

$ sudo pacman -S vim
$ sudo xbps-install nano

Of course, you can use your base system's package manager, which is apt in my case, as well.

Thus, after installing Bedrock Linux and adding the three strata, you can able to run apt, pacman and xbps-install commands on the same system. Cool, isn't it?

5.7. Cross Stratum Commands and Features

Bedrock Linux goes beyond integrating just terminal commands; it aims to ensure seamless and cohesive functionality across different strata, such as:

  • Graphical application menu contents,
  • Shell tab completion,
  • Kernel firmware detection,
  • Xorg fonts,
  • Some themes.

Let me show you two practical examples.

Example 1:

You can obtain Alpine's jq man page and Void's man executable using the following commands:

$ sudo apk add jq-doc
$ sudo xbps-install -y man
Install Packages from Each Stratum
Install Packages from Each Stratum

Subsequently, you can have Void's man command read Alpine's jq documentation with the following command:

$ man jq

Once again, this operates just as if the man executable and jq man page originated from the same distribution, highlighting Bedrock Linux's ability to seamlessly blend components from different sources.

Example 2:

Here's another example that showcases Bedrock Linux's ability to integrate components from different Linux distributions.

Suppose you have a text editor, such as Vim, installed from one distribution and a spell-checking tool, like Aspell, from another distribution. Bedrock Linux allows you to use them together seamlessly:

Install Vim from one distribution, for example Arch Linux:

$ sudo pacman -S vim

Install Aspell from another distribution, for example Void Linux:

$ sudo xbps-install aspell

Now, you can use Vim's spell-checking feature with Aspell by opening a file in Vim and enabling spell-checking:

$ vim my_document.txt

Inside Vim, enable spell-checking:

:set spell

Vim will now use Aspell for spell-checking, even though these components originate from different distributions. Bedrock Linux seamlessly combines them, allowing you to edit and check the spelling of your document as if they were part of the same distribution.

If you have installed Bedrock Linux, you probably don't need containers or VMs to test different Linux distributions' commands. You can use them all in a single system.

5.8. Find which Stratum Provides a Command

We learned that we can use commands from different distributions (strata) in the previous section. You might wonder which stratum provides a particular command or a utility? This is where the brl which command comes in help.

In a Bedrock system, each file and process is linked to a particular stratum. The "brl which" command allows the users to query the association of files, processes, and commands with specific strata within the system.

For instance, run the following commands:

$ brl which pacman
$ brl which xbps-install

These two commands will reveal the association with the Arch Linux and Void strata, respectively. This information is useful for identifying which stratum provides specific commands or utilities.

Find which Stratum Provides a Command
Find which Stratum Provides a Command

However, what happens when multiple strata offer the same command, such as "ls"? The "brl which ls" command will indicate a single stratum's instance. This particular instance will be executed if you run "ls" in the current context. The selection process for this stratum is explained in further detail in the following sections.

5.9. Find Process IDs

The "brl which" command is not limited to commands alone; it can also be used for Process IDs. For instance, running brl which 1 can help you identify which stratum provides the currently running init system.

$ brl which 1
Find Process IDs
Find Process IDs

Even file paths can be queried. Running brl which / will indicate which stratum's root directory listing will be presented when you execute ls / in the current context.

5.10. File Paths

In Bedrock, there are two file paths exists to avoid conflicts and to interact strata with each other. They are: local, global, and Cross file paths.

5.10.1. Local File Paths

Local file paths in Bedrock Linux are file paths that are specific to a particular stratum. This means that processes from one stratum will only see the files in that stratum's local file system, even if the files are located at the same path on the disk as files in other strata.

This is necessary to avoid conflicts between processes from different strata. For example, if Debian's apt package manager and Ubuntu's apt package manager were both to see the same /etc/apt/sources.list file, they would conflict with each other.

To query Bedrock for the stratum associated with your shell, you can use the brl which command. This will return the name of the stratum that your shell is running in.

$ brl which /

If your shell stratum has a /etc/os-release file, it is likely that this file corresponds to your shell stratum distro.

Here are some examples of local file paths in Bedrock Linux:

  • /bedrock/strata/debian/etc/apt/sources.list
  • /bedrock/strata/arch/etc/pacman.conf

To access a local file path from another stratum, you can use the /bedrock/strata/<stratum-name>/ prefix. For example, to edit Debian's /etc/apt/sources.list file from the Arch stratum, you would run the following command:

$ sudo nano /bedrock/strata/debian/etc/apt/sources.list

Local file paths of Bedrock Linux that allows you to use multiple Linux distributions on a single system without any conflicts.

5.10.2. Global File Paths

Global path files in Bedrock Linux are file paths that are accessible to all strata on the system. This means that processes from any stratum can read and write to global path files.

Global path files are necessary to allow strata to interact with each other. For example, if you are running a web server on the Arch stratum and a database server on the Debian stratum, you need to be able to share files between the two strata. You can do this by storing the files in a global path directory, such as /home or /tmp.

Here are some examples of global path files in Bedrock Linux:

  • /home/user/my_file.txt
  • /tmp/my_temp_file.txt
  • /run/mysocket

To check if the given file file path is Global, use brl which command like below.

$ brl which /run/
$ brl which /run/sshd/

To query Bedrock for the stratum associated with a particular global path file, you can use the brl which command. This will return the name of the stratum that owns the file.

The Global path files feature of Bedrock Linux allows strata to interact with each other and share files. This makes it possible to create complex and sophisticated systems that combine the best features of multiple Linux distributions.

As a final note, "brl which" can also be employed to inquire about the Bedrock configuration file stratum. For instance, running brl which /bedrock/etc/bedrock.conf will print "global," which is not a stratum name.

$ brl which /bedrock/etc/bedrock.conf

5.10.3. Cross File Paths

Cross file paths in Bedrock are file paths that allow processes from one stratum to access local files from another stratum. To do this, you prefix the file path with /bedrock/strata/<stratum-name>/.

For example, to read the /etc/os-release file from the Bedrock stratum from the Arch stratum, you would run the following command:

$ cat /bedrock/strata/bedrock/etc/os-release

Sample Output:

NAME="Bedrock Linux"
VERSION="0.7.29 (Poki)"
PRETTY_NAME="Bedrock Linux 0.7.29 Poki"
Cross File Paths in Bedrock Linux
Cross File Paths in Bedrock Linux

Cross file paths are useful when you want to interact with files from other strata without having to switch to that stratum.

6. Strat Command

The "strat" command in Bedrock Linux is used to specify and execute programs from specific strata within the Bedrock environment. It plays a vital role in managing and ensuring the correct execution of programs, especially when multiple strata are involved.

Here's an explanation of how the "strat" command works in Bedrock Linux:

Specifying a Stratum for Execution:

To run a program from a particular stratum, you prefix the "strat" command with the desired stratum's name. For example, if you have both a Debian stratum and an Ubuntu stratum, each with its own "apt" command, you can use the "strat" command like this:

$ sudo strat ubuntu apt update

This command instructs Bedrock to execute the "apt" command from the Ubuntu stratum.

Run a Program From a Particular Stratum
Run a Program From a Particular Stratum

Implicit Stratum Selection:

If you don't explicitly specify a stratum with "strat," Bedrock Linux will attempt to determine the appropriate stratum based on context. It follows these three rules:

Rule 1 - Pinning:

If Bedrock is configured to ensure that one stratum always provides a specific command (e.g., init-related commands should correspond to the stratum providing PID 1), it will do so. This is known as "pinning."

For instance, the "reboot" command and PID 1 (init) commands are usually pinned to the init stratum, ensuring consistency.

$ brl which reboot
$ brl which 1

The both command should display the same output:

Pinning Example in Bedrock Linux
Pinning Example in Bedrock Linux

Rule 2 - Local Availability:

If the command is not pinned to a particular stratum but is locally available within the current stratum, Bedrock will use the local instance of the command. This approach ensures that distribution-specific dependency requirements are met.

The "ls" command, when not explicitly specified with "strat," typically comes from the same stratum as your shell, resulting in identical behavior.

Local Availability Example in Bedrock Linux
Local Availability Example in Bedrock Linux

Rule 3 - Fallback:

If the command is neither pinned nor available locally, Bedrock assumes that the specific build of the command does not matter. In such cases, Bedrock will search other strata and execute the first instance of the command it finds.

For example, let us take the commands like "apk" and "xbps-install," as an example. Even though these two commands originate from different strata, they work seamlessly because Bedrock Linux intelligently selects the appropriate instance based on the fallback rule.

    The "strat" command is a critical tool in Bedrock Linux that allows you to control which stratum's version of a program or command is executed.

    Bedrock's rules for stratum selection ensure the correct functioning of commands in a multi-strata environment, providing a flexible and cohesive Linux experience.

    7. Disable or Enable a Stratum

    Occasionally, it may be advantageous to have the files of a specific stratum stored on disk without integrating them into the overall system in Bedrock Linux. You can achieve this by disabling and later enabling the stratum using the following commands:

    To Disable a Stratum:

    Use the "brl disable" command followed by the name of the stratum you wish to disable. For example:

    $ sudo brl disable void

    Executing this command will halt all running processes associated with the specified stratum and prevent the launch of new ones. Any attempts to execute commands from the disabled stratum will result in failure, as demonstrated by:

    $ strat void xbps-install --help

    Sample Output:

    strat: could not find state file for stratum
    Perhaps the stratum is disabled or typo'd?
    Disable a Stratum in Bedrock Linux
    Disable a Stratum in Bedrock Linux

    To Re-enable a Stratum:

    If you decide to re-enable the stratum at a later time, you can do so with the "brl enable" command, followed by the name of the stratum. For instance:

    $ sudo brl enable void

    After re-enabling the stratum, commands from that stratum will once again function as expected. For example:

    $ strat void xbps-install --help
    Enable a Stratum in Bedrock Linux
    Enable a Stratum in Bedrock Linux

    This process of disabling and enabling strata allows for flexibility in managing the integration of different strata within your Bedrock Linux system. It can be useful when you want to temporarily isolate or experiment with a specific stratum's files without affecting the overall system's operation.

    8. Update a Stratum

    To update a Stratum, simply run the respective Stratum's package manager. For instance, we can update a Void stratum using its package manager like below:

    $ sudo xbps-install -Syu

    Similarly, we can update Bedrock stratum using command:

    $ sudo brl update

    What if both strata offer the same package manager, such as 'apt'? For instance, let's say you have both a Debian stratum and an Ubuntu stratum, each equipped with its own "apt" command. In this scenario, you can utilize the "strat" command as follows:

    $ sudo strat ubuntu apt update

    This command instructs Bedrock to execute the "apt" command from the Ubuntu stratum, enabling you to perform operations specific to that distribution.

    9. Remove a Stratum

    To ensure the safe removal of a stratum in Bedrock Linux, you must follow these steps:

    Before you can remove a stratum, it's essential to disable it as a protective measure. Use the following command to disable the desired stratum (e.g., "arch"):

    $ sudo brl disable arch

    This command stops all running processes associated with the "arch" stratum and blocks the launch of new ones.

    After successfully disabling the stratum, you can proceed to remove it. Use the following command to remove the disabled stratum:

    $ sudo brl remove arch

    This command will eliminate the "arch" stratum and all associated files from your Bedrock Linux installation.

    Optional: Disable and Remove in One Step: If you are certain that the target stratum is enabled and want to streamline the process, you can use the "-d" flag with the "brl remove" command to both disable and remove the stratum in a single step. For instance, to remove the "void" stratum, you can use:

    $ sudo brl remove -d void

    This command will first disable the "void" stratum and then proceed to remove it, ensuring a smooth removal process.

    10. Delete Special Strata

    The "bedrock" stratum and "init-providing" Stratum are special. Bedrock Linux imposes restrictions on removing the init-providing stratum and the bedrock stratum itself for stability and functionality reasons.

    Removing the Init-Providing Stratum:

    You cannot remove the stratum that is currently providing PID 1 (the init process) in Bedrock Linux due to the Linux kernel's sensitivity to changes in PID 1. This is a protective measure because the Linux kernel does not respond well to the termination of PID 1.

    To verify it, if you run the command brl which 1 and it indicates that the init process is provided by a stratum, such as "debian," attempting to disable that stratum with the command brl disable debian will fail.

    $ brl which 1
    $ sudo brl disable debian

    Sample Output:

    ERROR: Cannot disable init-providing stratum.
    Disable Init-providing Stratum
    Disable Init-providing Stratum

    This restriction is in place to prevent issues that could arise from the disruption of PID 1.

    If you intend to remove the init-providing stratum, you must first reboot your system and select another stratum to provide the init process for the current session.

    Removing the Bedrock Stratum:

    The "bedrock" stratum is a fundamental component of Bedrock Linux that holds the entire system together. As a critical glue layer, it cannot be removed. This stratum ensures the cohesion and integration of the various strata within the Bedrock environment.

    There is nothing inherently special about the stratum created by hijacking another Linux installation. You have the freedom to remove it if you wish. However, it's important to ensure that any essential components provided by the hijacked stratum, such as a bootloader, kernel, or sudo, are installed in another stratum to maintain the system's functionality.

    11. Bedrock Configuration File

    In Bedrock Linux, all configuration settings are stored in a central file called "bedrock.conf," located at "/bedrock/etc/bedrock.conf."

    This file serves as the repository for controlling various aspects of Bedrock's behavior. If you ever feel that there's a need to adjust or customize Bedrock's functionality to suit your requirements, you'll typically find the relevant settings within this configuration file.

    To implement changes made to the "bedrock.conf" file and ensure they take effect, you should execute the "brl apply" command. This command effectively applies the modifications you've made to the configuration file, allowing you to tailor Bedrock Linux to your specific needs.

    In essence, "bedrock.conf" is the central hub for configuring Bedrock Linux, and the "brl apply" command is the mechanism through which you activate these configuration adjustments, ensuring that your system operates according to your preferences.

    12. Launch Bedrock Linux Interactive Tutorial

    Run the Bedrock Linux Basics tutorial using command:

    $ brl tutorial basics

    This command will start Bedrock Linux interactive tutorial in the current Terminal.

    Sample Output:

    This tutorial will introduce you to the minimum Bedrock Linux-specific
    background required to utilize and manage a Bedrock system.
    This tutorial assumes familiarity with common Linux environment concepts such
    as a bourne shell-like command line as well as a working internet connection
    and a couple gigabytes of free disk space.
    Open another terminal with a bourne-like shell along side this one to follow
    along with the tutorial.
    If you see a `$` prompt:
    	$ ls
    run the command as your normal, non-root user.  If you see a `#` prompt:
    	# whoami
    run the command as root (e.g. sudo, su, etc).
    You may press <ctrl-c> to exit the tutorial at any point.
    [Press <ENTER> to continue]
    Launch Bedrock Linux Interactive Tutorial
    Launch Bedrock Linux Interactive Tutorial

    In the Terminal, you will be presented with a series of commands to run. Open a new Terminal window to follow along with the tutorial. In the new (second) terminal, run the commands that are shown in the first Terminal.

    After running the commands in each window of the first terminal, you will be given a new set of commands to run. You need to run all the commands in order to complete the interactive tutorial.

    If you don't want to continue the interactive tutorial, simply press Ctrl+C to exit at any time.

    Sample Output:

    A Bedrock system is composed of strata, which are collections of
    interrelated files and processes.  These typically correspond to Linux distro
    installs: one may have a Debian stratum, an Arch stratum, etc.
    Bedrock integrates these into a single, largely cohesive system.  Run
    	$ brl list
    to see a list of strata currently being integrated together.
    This appears to be a fresh Bedrock Linux install with two strata:
    - bedrock, which is the stratum providing Bedrock-specific functionality.
    - debian which currently provides everything else.
    This isn't much more interesting than debian would have been by itself.
    The brl fetch command can be used to acquire new strata.  To see distros
    brl fetch knows how to acquire, run
    	$ brl fetch --list
    Let's get a couple more strata to experiment with in this tutorial:
    	# brl fetch -n tut-alpine alpine
    	# brl fetch -n tut-void void
    [Run the specified commands in another terminal to continue \]
    Bedrock Linux Interactive Guide
    Bedrock Linux Interactive Guide

    You need to run the given commands in the new (second) Terminal to move on to next window. If you don't run these commands in the new terminal, the tutorial will not move to next help section. So you should run the specified commands to go through all help sections one by one.

    After running all specified commands, the interactive tutorial will end.

    13. Frequently Asked Questions

    Here's a FAQ about Bedrock Linux.

    Q: What is Bedrock Linux?

    A: Bedrock Linux is a meta Linux distribution that allows users to combine and manage components from multiple Linux distributions within a single system. It enables the seamless integration of software, libraries, and tools from various distributions.

    Q: Why would I use Bedrock Linux?

    A: Bedrock Linux is valuable for users who want to harness the strengths of different Linux distributions. It allows you to use software and features from multiple distributions simultaneously, creating a highly customizable and versatile system.

    Q: How does Bedrock Linux work?

    A: Bedrock Linux achieves its functionality by creating separate strata for each Linux distribution. Each stratum operates as if it were an independent system, with its package manager, software repositories, and configurations.

    Q: What is a stratum in Bedrock Linux?

    A: A stratum is a layer or component representing a specific Linux distribution within Bedrock Linux. It contains the software, libraries, and configurations of that distribution. Bedrock Linux users can have multiple strata coexist on the same system.

    Q: Can I run applications from different distributions simultaneously?

    A: Yes, one of Bedrock Linux's primary features is the ability to run applications and commands from different distributions simultaneously. For instance, you can use software from both Debian and Arch Linux on the same system.

    Q: How do I add and remove strata in Bedrock Linux?

    A: You can add a new stratum by installing a Linux distribution using Bedrock's installation script. To remove a stratum, first disable it with the "brl disable <stratum-name>" command and then use "brl remove <stratum-name>" if needed.

    Q: Can I remove the Bedrock or init-providing stratum?

    A: No, the Bedrock stratum and the stratum that provides PID 1 (init) cannot be removed. These strata are essential for the system's operation and stability.

    Q: How do I configure Bedrock Linux settings?

    A: Bedrock Linux configurations are stored in the "bedrock.conf" file located at "/bedrock/etc/bedrock.conf." You can modify this file to adjust various Bedrock settings. After making changes, use "brl apply" to apply them.

    Q: Are there any limitations or risks to using Bedrock Linux?

    A: Bedrock Linux is a complex system and may require a deep understanding of Linux concepts. Mixing components from different distributions can occasionally lead to compatibility or dependency issues. It's crucial to carefully manage your strata and configurations to ensure system stability.

    Q: Is Bedrock Linux suitable for beginners?

    A: Bedrock Linux is best suited for users with intermediate to advanced Linux knowledge. Beginners may find it challenging due to its complexity and the need to manage multiple strata effectively.


    Bedrock Linux is a unique and innovative Linux distribution that offers the flexibility to combine components from multiple other distributions into a single cohesive system.

    Bedrock Linux is a powerful and flexible tool that allows you to run multiple Linux distributions on a single system. It is a great choice for users who want to be able to experiment with different Linux distributions or who need to run multiple distributions for work or personal use.

    It empowers users to leverage the strengths of different Linux distributions within a unified environment. For those who value the ability to mix and match software and features from various distributions, Bedrock Linux offers a powerful solution.

    Further Reading:

    We barely touched the basics of Bedrock Linux. There is a lot more to learn. Please read the official Bedrock Documentation links provided below for more details.

    Leave a Comment

    * By using this form you agree with the storage and handling of your data by this website.

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More