Chroot using systemd-nspawn


This tutorial is for creating a minimal Linux chroot inside a Linux distro that has SystemD fully implemented. This tutorial will not work on Debian Jessie.

First we need to install some dependencies:

sudo apt-get install debootstrap systemd-container

Depending on you distro, you may use another package manager to install instead. Now that we have debootstrap, we can have a basic Linux distro installation. In the example below we create a minimal Debian Jessie installation on /var/chroot directory

sudo mkdir -p /var/chroot
sudo debootstrap --arch amd64 jessie /var/chroot

After this, the chroot is installed and fully functional.

Using for the first time

In order to access the chroot for the first time, use:

sudo systemd-nspawn -D /var/chroot

This will let you to use the chroot as root user. It is a bad idea to use root, so first setup a root password, and then create a user. Once this is done, your chroot is ready for everyday usage.


To boot a chroot inside a container use:

sudo systemd-nspawn -D /var/chroot -b

This will give you a login screen, so log in as your user.

To log more terminals to this container, use:

sudo machinectl login chroot
  • tutorials/systemd-nspawn.txt
  • Last modified: 2017/07/16 21:32
  • by amora