How to use the command debootstrap (with examples)
- Linux
- December 25, 2023
Debootstrap is a command-line tool for creating a basic Debian or Ubuntu system. It allows you to bootstrap a minimal installation environment, which can be useful for tasks such as system recovery, creating chroots or containers, or building custom Linux distributions.
Use case 1: Create a basic Debian system
Code:
sudo debootstrap stable path/to/debian-root/ http://deb.debian.org/debian
Motivation:
Creating a basic Debian system is useful when you need to set up a minimal Debian environment for testing purposes or to serve as a base for further customization.
Explanation:
sudo
: Runs thedebootstrap
command with superuser (root) privileges.debootstrap
: The command itself.stable
: Specifies the Debian release to be installed. In this case, it is the stable release.path/to/debian-root/
: Specifies the location where the Debian system will be created.http://deb.debian.org/debian
: Specifies the mirror URL from which the packages will be downloaded.
Example output:
The command will download the necessary packages from the Debian mirror and set up a basic Debian system inside the path/to/debian-root/
directory. You will see various status messages indicating the progress of the installation.
Use case 2: Create a minimal system including only required packages
Code:
sudo debootstrap --variant=minbase stable path/to/debian-root/
Motivation:
Creating a minimal system is useful when you want to reduce the disk space and number of installed packages, especially if you have limited resources or only need a stripped-down version of the Debian system for specific purposes.
Explanation:
--variant=minbase
: Specifies the variant to be used during the debootstrap process. In this case, it is “minbase” which installs only essential packages required for a minimal system.
Example output:
The command will download the essential packages required for a minimal Debian system and set it up inside the path/to/debian-root/
directory. The output will show the progress of the installation and the packages being installed.
Use case 3: Create an Ubuntu 20.04 system with a local mirror
Code:
sudo debootstrap focal path/to/focal-root/ file:///path/to/mirror/
Motivation:
Creating an Ubuntu system with a local mirror can be beneficial when you want to speed up the installation process by using a mirror that is physically closer to your location or to have a local copy of the packages for offline installations.
Explanation:
focal
: Specifies the Ubuntu release to be installed. In this case, it is Ubuntu 20.04 (Focal Fossa).path/to/focal-root/
: Specifies the location where the Ubuntu system will be created.file:///path/to/mirror/
: Specifies the local mirror URL from which the packages will be downloaded. Thefile://
protocol is used to indicate that it is a local file path.
Example output:
The command will use the local mirror to download the Ubuntu 20.04 packages and set up the system inside the path/to/focal-root/
directory. The output will show the progress of the installation.
Use case 4: Switch to a bootstrapped system
Code:
sudo chroot path/to/root
Motivation:
Switching to a bootstrapped system is necessary when you want to access and interact with the installed system runtime environment, e.g., for system administration or customization purposes.
Explanation:
sudo
: Runs thechroot
command with superuser (root) privileges.chroot
: Short for “change root”, it allows you to change the root directory for the current process and start a new shell with the specified root directory.
Example output:
When you run the chroot
command, your shell prompt will change, indicating that you have switched to the bootstrapped system. For example, if the bootstrapped system was Debian, your prompt might change from user@host:~$
to something like root@debian:/#
, indicating that you are now operating within the bootstrapped Debian system.
Use case 5: List available releases
Code:
ls /usr/share/debootstrap/scripts/
Motivation:
Listing the available releases is helpful when you want to know which Debian or Ubuntu releases are supported by debootstrap and can be installed.
Explanation:
ls
: The command to list files and directories./usr/share/debootstrap/scripts/
: The directory that contains the debootstrap scripts, each representing a supported release.
Example output:
Running the ls
command in the specified directory will show a list of files, where each file represents a supported release. For example, you might see files like etch
, hardy
, jessie
, focal
, etc., representing different Debian or Ubuntu releases that can be used with debootstrap
.