--- search: exclude: true --- # bedrock Setup ![](0.png) Bedrock Linux is a meta Linux distribution which allows users to mix-and-match components from other, typically incompatible distributions. Bedrock integrates these components into one largely cohesive system. ## **Initial Setup** first step is to run the script, i will run it on an arch linux server: [ nihilism ] [ /dev/pts/13 ] [~] → wget https://github.com/bedrocklinux/bedrocklinux-userland/releases/download/0.7.27/bedrock-linux-0.7.27-x86_64.sh --2022-06-26 15:45:17-- https://github.com/bedrocklinux/bedrocklinux-userland/releases/download/0.7.27/bedrock-linux-0.7.27-x86_64.sh Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt' Resolving github.com (github.com)... 140.82.113.3 Connecting to github.com (github.com)|140.82.113.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/20029106/6571ebbf-ac43-4935-ba42-6b05d4e70a19?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential;=AKIAIWNJYAX4CSVEH53A%2F20220626%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date;=20220626T154515Z&X-Amz-Expires;=300&X-Amz-Signature;=482dbbad1755b9b03c3f3837db96d9ae5000bfee82f8551dcba09058e4755f10&X-Amz-SignedHeaders;=host&actor;_id=0&key;_id=0&repo;_id=20029106&response-content-disposition;=attachment%3B%20filename%3Dbedrock-linux-0.7.27-x86_64.sh&response-content-type;=application%2Foctet-stream [following] --2022-06-26 15:45:17-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/20029106/6571ebbf-ac43-4935-ba42-6b05d4e70a19?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential;=AKIAIWNJYAX4CSVEH53A%2F20220626%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date;=20220626T154515Z&X-Amz-Expires;=300&X-Amz-Signature;=482dbbad1755b9b03c3f3837db96d9ae5000bfee82f8551dcba09058e4755f10&X-Amz-SignedHeaders;=host&actor;_id=0&key;_id=0&repo;_id=20029106&response-content-disposition;=attachment%3B%20filename%3Dbedrock-linux-0.7.27-x86_64.sh&response-content-type;=application%2Foctet-stream Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ... Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 5092835 (4.9M) [application/octet-stream] Saving to: ‘bedrock-linux-0.7.27-x86_64.sh’ bedrock-linux-0.7.27-x86_64.sh 100%[========================================================================================================================================>] 4.86M 20.3MB/s in 0.2s 2022-06-26 15:45:18 (20.3 MB/s) - ‘bedrock-linux-0.7.27-x86_64.sh’ saved [5092835/5092835] [ nihilism ] [ /dev/pts/13 ] [~] → chmod +x bedrock-linux-0.7.27-x86_64.sh [ nihilism ] [ /dev/pts/13 ] [~] → vim bedrock-linux-0.7.27-x86_64.sh [ nihilism ] [ /dev/pts/13 ] [~] → ./bedrock-linux-0.7.27-x86_64.sh Usage: ./bedrock-linux-0.7.27-x86_64.sh Install or update a Bedrock Linux system. Operations: --hijack [name] convert current installation to Bedrock Linux. this operation is not intended to be reversible! optionally specify initial stratum name. --update update current Bedrock Linux system. --force-update update current system, ignoring warnings. -h, --help print this message [ nihilism ] [ /dev/pts/13 ] [~] → ./bedrock-linux-0.7.27-x86_64.sh --hijack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 * * * * YOU ARE ABOUT TO REPLACE YOUR EXISTING LINUX INSTALL WITH A * * BEDROCK LINUX INSTALL! THIS IS NOT INTENDED TO BE REVERSIBLE! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Please type "Not reversible!" without quotes at the prompt to continue: > Not reversible! __ __ __ \ \_________\ \____________\ \___ \ _ \ _\ _ \ _\ __ \ __\ / \___/\__/\__/ \_\ \___/\__/\_\_\ Bedrock Linux 0.7.27 Poki [1/6 ( 16%)] Performing sanity checks [2/6 ( 33%)] Gathering information * Using arch for initial stratum * Using arch:/sbin/init as default init selection * Using yay as pmm user interface * Using en_US.UTF-8 UTF-8 for locale.gen language * Using en_US.UTF-8 for $LANG * Using UTC for timezone [3/6 ( 50%)] Hijacking init system [4/6 ( 66%)] Extracting /bedrock [5/6 ( 83%)] Configuring * Configuring bedrock stratum * Configuring arch 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 [ nihilism ] [ /dev/pts/13 ] [~] → reboot now Now on that server i setup LUKS so i unlock it: ![](1.png) Then you can see bedrock linux is setup: ![](2.png) After rebooting we see the following: [ nihilism ] [ /dev/pts/0 ] [~] → neofetch -------------------------------------- root@nihilism -------------------------------------- ------------- -------------------------------------- OS: Bedrock Linux 0.7.27 Poki x86_64 ---\\\\\\\\\\\\----------------------- Host: KVM RHEL 7.6.0 PC (i440FX + PIIX, 1996) ----\\\ \\\---------------------- Kernel: 5.18.5-arch1-1 -----\\\ \\\--------------------- Uptime: 18 mins ------\\\ \\\\\\\\\\\\\\\\\------ Packages: 472 (pacman) -------\\\ \\\----- Shell: zsh 5.9 --------\\\ \\\---- Resolution: 1024x768 ---------\\\ ______ \\\--- Terminal: /dev/pts/0 ----------\\\ ///--- CPU: Intel Xeon E5-2680 v3 (8) @ 2.497GHz -----------\\\ ///---- GPU: 00:02.0 Cirrus Logic GD 5446 ------------\\\ ///----- Memory: 2554MiB / 9953MiB -------------\\\////////////////------ -------------------------------------- -------------------------------------- -------------------------------------- [ nihilism ] [ /dev/pts/3 ] [~] → cat /etc/resolv.conf cat: /etc/resolv.conf: No such file or directory [ nihilism ] [ /dev/pts/3 ] [~] → sudo rm /etc/resolv.conf [ nihilism ] [ /dev/pts/3 ] [~] → rm /etc/resolv.conf rm: cannot remove '/etc/resolv.conf': No such file or directory [ nihilism ] [ /dev/pts/3 ] [~] → vim /etc/resolv.conf [ nihilism ] [ /dev/pts/3 ] [~] → cat /etc/resolv.conf ; chattr +i /etc/resolv.conf nameserver 1.1.1.1 nameserver 1.0.0.1 [ nihilism ] [ /dev/pts/3 ] [~] → brl update * Checking for updates Checking https://raw.githubusercontent.com/bedrocklinux/bedrocklinux-userland/0.7/releases... done * No updates [ nihilism ] [ /dev/pts/3 ] [~] → brl help Usage: brl [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 --help` for further details per command. let's install an ubuntu 22 strata: [ nihilism ] [ /dev/pts/3 ] [~] → brl fetch --list alpine arch centos debian devuan exherbo exherbo-musl fedora gentoo ubuntu void void-musl [ nihilism ] [ /dev/pts/3 ] [~] → brl fetch -n ubuntu ubuntu [ 1/18 ( 5%)] Determining name * Using ubuntu [ 2/18 ( 11%)] Determining CPU architecture * Using x86_64 [ 3/18 ( 16%)] Determining release * Using jammy [ 4/18 ( 22%)] Determining mirror * Checking bedrock.conf [brl-fetch-mirror] items [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Fast filtering 744 to top 10 [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Finding fastest mirror from 10 [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Using http://ubuntu.mirror.iweb.ca/ [ 5/18 ( 27%)] Making bootstrap directory structure [ 6/18 ( 33%)] Downloading package information database Downloading http://ubuntu.mirror.iweb.ca//dists/jammy/main/binary-amd64/Packages.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1750k 100 1750k 0 0 13.2M 0 --:--:-- --:--:-- --:--:-- 13.2M [ 7/18 ( 38%)] Converting distro package information database to brl format [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [ 8/18 ( 44%)] Calculating required bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [ 9/18 ( 50%)] Downloading bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [10/18 ( 55%)] Extracting bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [11/18 ( 61%)] Running bootstrap software I: Retrieving InRelease I: Checking Release signature I: Valid Release signature (key id F6ECB3762474EDA9D21B7022871920D1991BC93C) I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... I: Checking component main on http://ubuntu.mirror.iweb.ca... I: Validating adduser 3.118ubuntu5 I: Validating apt 2.4.5 I: Validating base-files 12ubuntu4 I: Retrieving base-passwd 3.5.52build1 I: Validating base-passwd 3.5.52build1 I: Validating bash 5.1-6ubuntu1 I: Retrieving bsdutils 1:2.37.2-4ubuntu3 I: Validating bsdutils 1:2.37.2-4ubuntu3 I: Validating coreutils 8.32-4.1ubuntu1 I: Validating dash 0.5.11+git20210903+057cd650a4ed-3build1 I: Validating debconf 1.5.79ubuntu1 I: Validating debianutils 5.5-1ubuntu2 I: Retrieving diffutils 1:3.8-0ubuntu2 I: Validating diffutils 1:3.8-0ubuntu2 I: Validating dpkg 1.21.1ubuntu2 I: Retrieving e2fsprogs 1.46.5-2ubuntu1 I: Validating e2fsprogs 1.46.5-2ubuntu1 I: Retrieving findutils 4.8.0-1ubuntu3 I: Validating findutils 4.8.0-1ubuntu3 I: Validating gcc-12-base 12-20220319-1ubuntu1 I: Validating gpgv 2.2.27-3ubuntu2 I: Validating grep 3.7-1build1 [...] zlib1g set to automatically installed. Hit:1 http://ubuntu.mirror.iweb.ca jammy InRelease Get:2 http://archive.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:3 http://ubuntu.mirror.iweb.ca jammy/main Translation-en [510 kB] Get:4 http://ubuntu.mirror.iweb.ca jammy/universe amd64 Packages [14.1 MB] Get:5 http://archive.ubuntu.com/ubuntu jammy-security/main amd64 Packages [191 kB] Get:6 http://archive.ubuntu.com/ubuntu jammy-security/main Translation-en [45.9 kB] Get:7 http://archive.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [78.1 kB] Get:8 http://archive.ubuntu.com/ubuntu jammy-security/universe Translation-en [27.7 kB] Get:9 http://ubuntu.mirror.iweb.ca jammy/universe Translation-en [5652 kB] Fetched 20.7 MB in 3s (6485 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: locales-all 0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded. Need to get 10.8 MB of archives. After this operation, 233 MB of additional disk space will be used. Get:1 http://ubuntu.mirror.iweb.ca jammy/universe amd64 locales-all amd64 2.35-0ubuntu3 [10.8 MB] Fetched 10.8 MB in 0s (24.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package locales-all. (Reading database ... 4391 files and directories currently installed.) Preparing to unpack .../locales-all_2.35-0ubuntu3_amd64.deb ... Unpacking locales-all (2.35-0ubuntu3) ... Setting up locales-all (2.35-0ubuntu3) ... [13/18 ( 72%)] Setting locale [14/18 ( 77%)] Cleaning up [15/18 ( 83%)] Importing users and groups [16/18 ( 88%)] Preparing symlinks [17/18 ( 94%)] Showing [18/18 (100%)] Enabling * Successfully fetched a new ubuntu stratum with name ubuntu Now let's try to install packages from ubuntu: [ nihilism ] [ /dev/pts/3 ] [~] → apt install php8.1-fpm php8.1 [ nihilism ] [ /dev/pts/3 ] [~] → strat -r ubuntu php -version PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies [ nihilism ] [ /dev/pts/3 ] [~] → strat -r ubuntu systemctl start php8.1-fpm Running in chroot, ignoring command 'start' ## **Arch linux with kali linux tools Setup** Since kali is not a supported OS by bedrock linux, we have to use a debian strata instead, we see [here](https://bedrocklinux.org/0.7/distro-compatibility.html) that bedrock supports very well arch linux and debian stratas, so let's trust it and use them: First install Arch, and then hijack it with bedrock, then install the debian strata on it after rebooting: [nothing@anarchy:etc/apt]$ neofetch (12-17 21:33) -------------------------------------- nothing@anarchy -------------------------------------- --------------- -------------------------------------- OS: Bedrock Linux 0.7.27 Poki x86_64 ---\\\\\\\\\\\\----------------------- Host: KVM/QEMU (Standard PC (Q35 + ICH9, 2009) pc-q35-7.1) ----\\\ \\\---------------------- Kernel: 6.0.12-arch1-1 -----\\\ \\\--------------------- Uptime: 4 mins ------\\\ \\\\\\\\\\\\\\\\\------ Packages: 634 (pacman), 98 (dpkg) -------\\\ \\\----- Shell: zsh 5.9 --------\\\ \\\---- Resolution: 1280x800 ---------\\\ ______ \\\--- Terminal: /dev/pts/0 ----------\\\ ///--- CPU: 11th Gen Intel i7-11700K (2) @ 3.600GHz -----------\\\ ///---- GPU: 00:01.0 Red Hat, Inc. Virtio GPU ------------\\\ ///----- Memory: 120MiB / 1974MiB -------------\\\////////////////------ -------------------------------------- -------------------------------------- -------------------------------------- [nothing@anarchy:~]$ brl fetch --list (12-17 21:29) alpine arch centos debian devuan exherbo exherbo-musl fedora gentoo ubuntu void void-musl [nothing@anarchy:~]$ brl fetch debian (12-17 21:29) ERROR: Operation requires root. [nothing@anarchy:~][1]$ sudo !! (12-17 21:29) sudo brl fetch debian [sudo] password for nothing: [ 1/18 ( 5%)] Determining name * Using debian [ 2/18 ( 11%)] Determining CPU architecture * Using x86_64 [ 3/18 ( 16%)] Determining release * Using bullseye [ 4/18 ( 22%)] Determining mirror * Checking bedrock.conf [brl-fetch-mirror] items [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Fast filtering 371 to top 10 [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Finding fastest mirror from 10 [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% * Using http://ftp.fr.debian.org/debian/ [ 5/18 ( 27%)] Making bootstrap directory structure [ 6/18 ( 33%)] Downloading package information database Downloading http://ftp.fr.debian.org/debian//dists/bullseye/main/binary-amd64/Packages.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10.5M 100 10.5M 0 0 6791k 0 0:00:01 0:00:01 --:--:-- 6794k [ 7/18 ( 38%)] Converting distro package information database to brl format [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [ 8/18 ( 44%)] Calculating required bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [ 9/18 ( 50%)] Downloading bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [10/18 ( 55%)] Extracting bootstrap packages [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100% [11/18 ( 61%)] Running bootstrap software [...] [nothing@anarchy:~]$ which apt (12-17 21:31) /bedrock/cross/bin/apt [nothing@anarchy:~]$ cd /bedrock/strata/debian/etc/apt (12-17 21:32) [nothing@anarchy:etc/apt]$ ls (12-17 21:32) apt.conf.d/ auth.conf.d/ preferences.d/ sources.list sources.list.d/ trusted.gpg.d/ Then take a default kali VM and add the repositories: ┌──(nothing㉿kali)-[~] └─$ neofetch .............. nothing@kali ..,;:ccc,. ------------ ......''';lxO. OS: Kali GNU/Linux Rolling x86_64 .....''''..........,:ld; Host: KVM/QEMU (Standard PC (i440FX + PIIX, 1996) pc-i440fx-6.2) .';;;:::;,,.x, Kernel: 6.0.0-kali3-amd64 ..'''. 0Xxoc:,. ... Uptime: 12 days, 15 hours, 18 mins .... ,ONkc;,;cokOdc',. Packages: 3165 (dpkg) . OMo ':ddo. Shell: zsh 5.9 dMc :OO; Resolution: 1024x768 0M. .:o. Terminal: /dev/pts/2 ;Wd CPU: Common KVM (8) @ 1.799GHz ;XO, GPU: 00:02.0 Red Hat, Inc. QXL paravirtual graphic card ,d0Odlc;,.. Memory: 784MiB / 7953MiB ┌──(nothing㉿kali)-[~] └─$ cat /etc/apt/sources.list deb http://http.kali.org/kali kali-rolling main non-free contrib Then add it over to the debian strata: [nothing@anarchy:etc/apt][130]$ pwd (12-17 21:35) /bedrock/strata/debian/etc/apt [nothing@anarchy:etc/apt]$ sudo vim sources.list [nothing@anarchy:etc/apt][100]$ cat sources.list (12-17 21:35) deb http://ftp.fr.debian.org/debian bullseye main deb http://security.debian.org/debian-security bullseye-security main **deb http://http.kali.org/kali kali-rolling main non-free contrib** [nothing@anarchy:etc/apt]$ sudo apt update -y (12-17 21:36) Hit:1 http://security.debian.org/debian-security bullseye-security InRelease Hit:2 http://ftp.fr.debian.org/debian bullseye InRelease Get:3 http://ftp.free.fr/pub/kali kali-rolling InRelease [30.6 kB] Err:3 http://ftp.free.fr/pub/kali kali-rolling InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 Reading package lists... Done W: GPG error: http://ftp.free.fr/pub/kali kali-rolling InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 E: The repository 'http://http.kali.org/kali kali-rolling InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. And here you see we have an error, we need to have the kali repository's PGP public key, so let's import it from the blank Kali VM: [term1] ┌──(nothing㉿kali)-[/etc/apt/trusted.gpg.d] └─$ ls debian-archive-bullseye-automatic.gpg debian-archive-bullseye-stable.gpg debian-archive-buster-security-automatic.gpg debian-archive-stretch-automatic.gpg debian-archive-stretch-stable.gpg debian-archive-bullseye-security-automatic.gpg debian-archive-buster-automatic.gpg debian-archive-buster-stable.gpg debian-archive-stretch-security-automatic.gpg kali-archive-keyring.gpg ┌──(nothing㉿kali)-[/etc/apt/trusted.gpg.d] └─$ file kali-archive-keyring.gpg kali-archive-keyring.gpg: symbolic link to /usr/share/keyrings/kali-archive-keyring.gpg ┌──(nothing㉿kali)-[/etc/apt/trusted.gpg.d] └─$ file /usr/share/keyrings/kali-archive-keyring.gpg /usr/share/keyrings/kali-archive-keyring.gpg: OpenPGP Public Key Version 4, Created Mon Mar 5 14:56:40 2012, RSA (Encrypt or Sign, 4096 bits); User ID; Signature; OpenPGP Certificate ┌──(nothing㉿kali)-[/etc/apt/trusted.gpg.d] └─$ ip a | grep inet inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host inet 10.0.0.100/16 brd 10.0.255.255 scope global dynamic noprefixroute eth0 inet6 fe80::20db:32ff:fe9b:f283/64 scope link noprefixroute [term2] [nothing@anarchy:etc/apt]$ sudo scp nothing@10.0.0.100:/etc/apt/trusted.gpg.d/kali-archive-keyring.gpg /bedrock/strata/debian/etc/apt/trusted.gpg.d/kali-archive-keyring.gpg The authenticity of host '10.0.0.100 (10.0.0.100)' can't be established. ED25519 key fingerprint is SHA256:R3qDHuozDAfj6GPiKwaBfdOsZZctuM4AA5hqbmnMxpk. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.0.0.100' (ED25519) to the list of known hosts. nothing@10.0.0.100's password: kali-archive-keyring.gpg 100% 2271 263.7KB/s 00:00 [nothing@anarchy:etc/apt]$ ls trusted.gpg.d (12-17 21:38) debian-archive-bullseye-automatic.gpg debian-archive-bullseye-stable.gpg debian-archive-buster-security-automatic.gpg debian-archive-stretch-automatic.gpg debian-archive-stretch-stable.gpg debian-archive-bullseye-security-automatic.gpg debian-archive-buster-automatic.gpg debian-archive-buster-stable.gpg debian-archive-stretch-security-automatic.gpg kali-archive-keyring.gpg [nothing@anarchy:etc/apt]$ Now that we migrated the trusted gpg key, we can do apt update -y: [nothing@anarchy:etc/apt]$ sudo apt update -y (12-17 21:38) Hit:1 http://security.debian.org/debian-security bullseye-security InRelease Hit:2 http://ftp.fr.debian.org/debian bullseye InRelease Get:3 http://ftp.free.fr/pub/kali kali-rolling InRelease [30.6 kB] Get:4 http://ftp.free.fr/pub/kali kali-rolling/main amd64 Packages [19.0 MB] Get:5 http://ftp.free.fr/pub/kali kali-rolling/non-free amd64 Packages [239 kB] Get:6 http://ftp.free.fr/pub/kali kali-rolling/contrib amd64 Packages [113 kB] Fetched 19.3 MB in 3s (5,865 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 90 packages can be upgraded. Run 'apt list --upgradable' to see them. [nothing@anarchy:~]$ apt search kali-linux (12-17 21:45) Sorting... Done Full Text Search... Done kali-linux-core/kali-rolling 2023.1.0 amd64 Kali Linux base system (core packages) kali-linux-default/kali-rolling 2023.1.0 amd64 Kali Linux's default packages (headless & GUI) kali-linux-everything/kali-rolling 2023.1.0 amd64 Every tool in Kali Linux kali-linux-firmware/kali-rolling 2023.1.0 amd64 Default firmware files for Kali Linux systems kali-linux-headless/kali-rolling 2023.1.0 amd64 Kali Linux's default packages (headless) kali-linux-labs/kali-rolling 2023.1.0 amd64 Environments for learning and practising on. kali-linux-large/kali-rolling 2023.1.0 amd64 Kali Linux extended default tool selection kali-linux-nethunter/kali-rolling 2023.1.0 amd64 Kali NetHunter devices default packages [nothing@anarchy:~]$ **apt upgrade -y** And thats it! We managed to make an Arch system, put it in a strata using bedrock, install a debian strata there, and install the kali linux tools on that debian strata! **WARNING: If you get this error while trying to apt upgrade after installing kali tools, DO NOT LEAVE THE DEFAULT CHOICE "yes" from the package update-passwd, otherwise it will completely break your system !, you need to put "no" to everything update-passwd asks you !** ![](3.png) If you type yes to all of it: ![](4.png) you would be unable to boot on your system at all. So instead you type "no" for any system changes it tries to do: ![](5.png) Then you can actually reboot your system, unlike in the previous example: [nothing@anarchy:~]$ **sudo reboot now** One particular thing you will see is that you won't be able to boot into your debian strata, however in this setup we want our arch linux sytem to be able to use the kali linux tools, not boot on a kali strata. ![](6.png) After rebooting you can install the kali-linux-core package: [nothing@anarchy:~]$ **sudo apt install kali-linux-core** [nothing@anarchy:~]$ **sudo reboot now** Upon rebooting, the debian strata will reappear for some reason, but still we don't want to boot there. ![](7.png) Then we manage to boot again into our arch strata, then you can go ahead and install other kali linux tools, for example i will install the **kali-linux-default** metapackage: [nothing@anarchy:~]$ **sudo apt install kali-linux-default** While installing it, make sure you type "no" to most of the things it ask you, so that you're sure it doesn't break your system.