I highly suggest you be a little acquainted with chrooting and possibly a little bit of GRUB2 before continuing.
If you plan to do this, do so at your own risk and understand that this is complicated. Know what you're doing before you accidentally wipe your disk.
Context
I like Linux black magic. One of my favorite pastimes, actually. For example:

* Black Magic *
You're looking at an installation of blackarch (on top) installed as a chroot of
an Ubuntu host OS (on bottom). If you want to do this yourself, use
arch-bootstrap and
over-arch blackarch. Takes
about 30 minutes to do fully, depending on your internet speed. I'd suggest
going ahead an dumping a pacman -Syy blackarch
if you have the 50 GB to spare.
Oh -- and when you chroot in, make sure to do the following mounts:
# mountblackarch
#!/bin/bash
cd $HOME/blackarch/chroot
sudo mount -t proc proc proc/ # for processes
sudo mount -t sysfs sys sys/ # for the system
sudo mount -o bind /dev dev/ # for devices
sudo mount -o bind /dev/pts dev/pts # for pseudo-terminal devices
sudo touch root/.Xauthority
sudo chroot . su - root -c "xauth add $(xauth list)" # for X forwarding; this'll complain the first time you do it
Make sure to clean up the mounts and .Xauthority
after you're done, too.
The Problem
A lot of blackarch's strengths come in systemctl
services -- a lot of them.
And that makes life difficult if you're working in a chroot as it will most
likely come back with
Running in chroot, ignoring request
Not good.
The Solution
systemctl
only really works well when the systemd
of the OS you're working
in (chroot or no) has a PID of 1 (read: the first process). So we have to boot
into the chroot.
Some Details
I work in a LUKS-encrypted LVM volume group that contains both my host Ubuntu OS (and in turn my blackarch chroot) and a swap volume. That means that I have to use an initramfs (simply: a small filesystem (fs) loaded into memory (ram) that contains everything the kernel needs to get started (init)) which points at my host OS, then somehow transfer to my chroot as the root directory.
Not only that, but blackarch uses a version of the Linux kernel that's a little newer than Ubuntu's (read: incompatible modules), so I have to generate the initramfs in the chroot, transfer it out, then make a custom boot entry that then invokes the black magic to change roots but keep the PID.
That's a lot of stuff to do. Let's get cracking!