bootstraps a basic Debian system of
can be an http:// URL, a file:/// URL, or an ssh:/// URL.
SUITE may be a release code name (eg, sid, wheeze, squeeze, lenny)
or a symbolic name (eg, unstable, testing, stable, oldstable)
Notice that file:/ URLs are translated to file:/// (correct scheme as
described in RFC1738 for local filenames), and file:// will not work.
ssh://USER@HOST/PATH URLs are retrieved using
or similar is strongly recommended.
Debootstrap can be used to install Debian in a system without using an
installation disk but can also be used to run a different Debian flavor in a chroot
This way you can create a full (minimal) Debian installation which
can be used for testing purposes (see the EXAMPLES section).
If you are looking for a chroot system to build packages please take a look at
Set the target architecture (use if dpkg isn't installed).
See also --foreign.
Comma separated list of packages which will be added to download and extract
Comma separated list of packages which will be removed from download and
WARNING: you can and probably will exclude essential packages, be
careful using this option.
Use packages from the listed components of the archive.
By default, debootstrap will attempt to automatically resolve any missing
dependencies, warning if any are found.
Note that this is not a complete dependency resolve in the sense of dpkg
or apt, and that it is far better to specify the entire base system than
rely on this option.
With this option set, this behaviour is disabled.
Name of the bootstrap script variant to use.
Currently, the variants supported are minbase, which only includes
essential packages and apt; buildd, which installs the build-essential
and fakechroot, which installs the packages without root privileges.
Finally there is variant scratchbox, which is for creating targets
for scratchbox usage.
The default, with no --variant=X argument, is to create a base
Debian installation in
Download signatures for retrieved Release files and check them against
By default, Release file signatures are not checked.
Produce more info about downloading.
Print the packages to be installed, and exit.
Note that a TARGET directory must be specified so debootstrap can
download Packages files to determine which packages should be installed,
and to resolve dependencies.
The TARGET directory will be deleted unless --keep-debootstrap-dir
Download packages, but don't perform installation.
Do the initial unpack phase of bootstrapping only, for example if the
target architecture does not match the host architecture.
A copy of debootstrap sufficient for completing the bootstrap process
will be installed as /debootstrap/debootstrap in the target filesystem.
You can run it with the --second-stage option to complete the
Complete the bootstrapping process.
Other arguments are generally not needed.
Run second stage in a subdirectory instead of root. (can be used to create
a foreign chroot) (requires --second-stage)
Don't delete the /debootstrap directory in the target after completing the
Acquire .debs from tarball FILE instead of downloading via http.
Instead of bootstrapping, make a tarball (written to FILE) of the downloaded
The resulting tarball may be passed to a later
Used for internal purposes by boot-floppies
Used for internal purposes by the debian-installer
Override automatic .deb extractor selection to
Supported extractors are: dpkg-deb and ar.
Do not check certificate against certificate authorities
Full process to create a complete Debian installation of sid (unstable):
main # cd / ; mkdir /sid-root
main # debootstrap sid /sid-root http://ftp.us.debian.org/debian/ [ ... watch it download the whole system ]
main # echo "proc /sid-root/proc proc defaults 0 0" >> /etc/fstab
main # mount proc /sid-root/proc -t proc
main # echo "sysfs /sid-root/sys sysfs defaults 0 0" >> /etc/fstab
main # mount sysfs /sid-root/sys -t sysfs
main # cp /etc/hosts /sid-root/etc/hosts
main # chroot /sid-root /bin/bash
chroot # dselect
[ you may use aptitude, install mc and vim ... ]
main # echo "8:23:respawn:/usr/sbin/chroot /sid-root " \
"/sbin/getty 38400 tty8" >> /etc/inittab
[ define a login tty that will use this system ]
main # init q
[ reload init ]