Quick and easy Fedora Minimal chroot

This is a quick guide on how to quickly make a Fedora Minimal chroot environment without any special tools. The only prerequisite is that you have root access on the machine you are using, and chroot binary (or busybox even). I am also using wget and tar but you probably have that. :)

We are going to use a Docker image as it contains a very well packaged Fedora Minimal rootfs.

Docker images are available for x86_64 and ARM architectures here:

https://download.fedoraproject.org/pub/fedora/linux/releases/24/Docker/

I am setting up my Raspberry Pi 2 in this example so I used the ARM image. The “host” operating system is LibreELEC media center, but this will work on any Linux distribution.

# make sure you are root
sudo su

# create a directory for Fedora
mkdir -p /fedora 
cd /fedora

# get the Docker image
wget https://download.fedoraproject.org/pub/fedora/linux/releases/24/Docker/armhfp/images/Fedora-Docker-Base-24-1.2.armhfp.tar.xz

To unpack the image:

# unpack Docker image
tar xvf Fedora-Docker-Base-24-1.2.armhfp.tar.xz --strip-components=1

# unpack the main tar
tar xvpf layer.tar

# cleanup
rm layer.tar
rm Fedora-Docker-Base-24-1.2.armhfp.tar.xz
rm json
rm VERSION

So you now have a base Fedora Minimal root filesystem in /fedora

It’s a good idea to create a script to enter it quickly. With your favorite text editor create /usr/bin/enter-fedora-chroot file:

#!/bin/sh

echo "Entering Fedora chroot"

mount -t proc proc /fedora/proc/
mount -t sysfs sys /fedora/sys/
mount -o bind /dev /fedora/dev/
mount -o bind /dev /fedora/dev/pts

chroot /fedora /bin/env -i \
    HOME=/root TERM="$TERM" PS1='[\u@f24chroot \W]\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/bin \
    /bin/bash --login

echo "Exiting Fedora chroot"
umount /fedora/dev/
umount /fedora/dev/pts
umount /fedora/sys/
umount /fedora/proc/

echo "Cleaned up"

and mark it as executable: chmod +x /usr/bin/enter-fedora-chroot

Now you can enter Fedora from literally anywhere! Just run the script with enter-fedora-chroot!

When inside the chroot, you will probably have to setup DNS to have working internet connection with a quick echo nameserver 8.8.8.8 > /etc/resolv.conf.

That’s it, it is really very easy.

Have fun!

 
102
Kudos
 
102
Kudos

Now read this

Installing Mono and .NET Core with Kestrel on Fedora 23 (Quick guide)

Installing Mono and .NET Core is very simple on Fedora 23, even though there are no official docs. Step 1: Install Mono and dependencies: sudo dnf install mono-devel openssl-devel libunwind or, if you want to install Mono from their... Continue →