Introduction
------------
-grml-debootstrap is a wrapper suite around debootstrap (and cdebootstrap if you
+grml-debootstrap is a wrapper suite around debootstrap (and cdebootstrap and mmdebstrap if you
want) for installing a plain Debian system very fast and easy.
All you have to do is adjust a few variables in the configuration file
/etc/debootstrap/config or specify some command line options and invoke
grml-debootstrap. If invoked without any configuration modifications or command
-line options a dialog based frontend will be available to control some basic
+line options a dialog based front end will be available to control some basic
configuration options.
A plain and base Debian system will be installed on the given device, directory
*--backportrepos*::
- Enable Debian's Backports repository (http://backports.debian.org/) via the
+ Enable Debian's Backports repository via the
/etc/apt/sources.list.d/backports.list configuration file. This provides the
option to install Debian packages from Debian's backports repository.
are executed at the end of the chroot procedure.
Default directory: /etc/debootstrap/chroot-scripts/
+*--contrib*::
+
+ Enable the 'contrib' repository in COMPONENTS. By default only
+ the 'main' repository is enabled.
+
*-d*, *--confdir* _path_::
Place of configuration files for debootstrap, defaults to /etc/debootstrap.
Execute in very verbose way. Useful for debugging possible problems
with grml-debootstrap or identify what's actually executed.
+*--defaultinterfaces*::
+
+ Install a default /etc/network/interfaces file (enabling DHCP for all local
+ Ethernet, WLAN and WWAN interfaces using predictable network interface names
+ and using eth0 as traditional interface name for backward compatibility)
+ instead of taking over config from host system.
+ This option is automatically enabled when using --vm or --vmfile.
+
+*--efi* _device_::
+
+ Partition where EFI boot manager should be installed to. If the
+ specified device doesn't use a FAT filesystem yet grml-debootstrap
+ automatically creates the filesystem. If a FAT filesystem is already
+ present the filesystem creation is skipped. Please ensure that it's
+ a valid FAT32 filesystem and the partition has the 'boot' and 'esp'
+ flags enabled. This option requires EFI support on the running system
+ and the option is NOT supported for Virtual Machine deployments.
+
*--filesystem* _filesystem_::
Filesystem that should be created when installing to a partition.
*--nointerfaces*::
Do not copy /etc/network/interfaces from host system to the target.
- This option is automatically enabled when using --vm or --vmfile.
*--nokernel*::
need to provide regular boot, e.g. a system which provides
ISOs for booting via GRUB using grml-rescueboot.
+*--non-free*::
+
+ Enable the 'non-free' repository in COMPONENTS. By default only
+ the 'main' repository is enabled.
+
*--nopackages*::
Skip installation of packages defined in /etc/debootstrap/packages.
command line might be visible in the process list and the shell history.
It's meant for automatic installation only.
-*-r*, *--release* _releasename_::
+*--post-scripts* _directory_::
- Specify release of new Debian system. Supported releases names: lenny,
- squeeze, wheezy, jessie, stretch (note: requires a recent version of debootstrap)
- and sid. Corresponding with configuration variable RELEASE.
+ Execute scripts from specified directory after executing the chroot script.
+ This allows customisation of the system after the chroot has been set up.
+ The environment variable $MNTPOINT is available inside the scripts for
+ direct access of the chroot.
+ Default directory: /etc/debootstrap/post-scripts/
*--pre-scripts* _directory_::
scripts for direct access of the chroot.
Default directory: /etc/debootstrap/pre-scripts/
-*--scripts* _directory_::
+*-r*, *--release* _releasename_::
+
+ Specify release of new Debian system. Supported releases names: lenny,
+ squeeze, wheezy, jessie, stretch, buster, bullseye and sid. Corresponding with configuration
+ variable RELEASE. Default release: bullseye
+
+*--remove-configs*::
+
+ Delete grml-debootstrap configuration files (/etc/debootstrap/*) from installed
+ system. Useful for reproducible builds or if you don't want to leak information.
+
+*--sshcopyauth*::
+
+ Use locally available _$HOME/.ssh/authorized_keys_ to authorise root login on the target system.
+ This installs _$HOME/.ssh/authorized_keys_ as _/root/.ssh/authorized_keys_ on
+ the target system. If a different file than _$HOME/.ssh/authorized_keys_ should
+ be used, the environment variable _AUTHORIZED_KEYS_SOURCE_ can be used.
+
+*--sshcopyid*::
- Execute scripts from specified directory. This allows customisation of
- the system after the chroot has been set up. The environment variable
- $MNTPOINT is available inside the scripts for direct access of the chroot.
- Default directory: /etc/debootstrap/scripts/
+ Use locally available public keys to authorise root login on the target system.
+ Similar to ssh-copy-id(1) (without the -i option) it checks if `ssh-add -L`
+ provides any output, and if so those keys are appended to
+ _/root/.ssh/authorized_keys_ (creating the file and directory (with mode 0700)).
*-t*, *--target* _target_::
partitioned.
This allows deployment of a Virtual Machine. The options needs to be
combined with the --target option.
+ This option automatically enables the --defaultinterfaces option.
Usage example: --vm --target /dev/mapper/your-vm-disk
*--vmfile*::
- Set up a Virtual Machine instead of installing to a partition or directory.
- This allows deployment of a Virtual Machine. The options needs to be
- combined with the --target option.
+ Set up a Virtual Machine using a regular file instead of installing to a
+ partition/block device or directory. This allows deployment of a Virtual
+ Machine. The options needs to be combined with the --target option
+ ('qemu-img create -f raw ...' is executed on the specified target).
+ This option automatically enables the --defaultinterfaces option.
Usage example: --vmfile --target /mnt/sda1/qemu.img
*--vmsize* _size_::
the provided arguments for the command line options. Please be careful and check
docs and /etc/debootstrap/config for further information.
+Networking
+----------
+
+By default (that is, if none of the options *--nointerfaces*,
+*--defaultinterfaces*, *--vmfile* or *--vm* are given) /etc/network/interfaces
+will be copied from the host to the target system.
+
Usage examples
---------------
grml-debootstrap --target /dev/sda1 --grub /dev/sda
-Install default Debian release (jessie) on /dev/sda1 and install bootmanager
-Grub in MBR (master boot record) of /dev/sda and use /dev/sda1 as system partition.
+Install default Debian release (bullseye) on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+
+ grml-debootstrap --release stretch --target /dev/sda1 --grub /dev/sda --hostname debian01 --password changeme
+
+Install Debian release stretch on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+Set hostname to 'debian01' and password for user root to 'changeme'.
grml-debootstrap --target /dev/sda6 --grub /dev/sda --release sid
-Install Debian unstable/sid on /dev/sda6, install bootmanager Grub in MBR
-(master boot record) of /dev/sda and use /dev/sda6 as system partition.
+Install Debian unstable/sid on /dev/sda6 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+
+ DEBOOTSTRAP=mmdebstrap grml-debootstrap --target /dev/sda1 --grub /dev/sda
+
+Install default Debian release (bullseye) on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+Use mmdebstrap instead of default debootstrap tool for bootstrapping.
+
+ grml-debootstrap --target /dev/mapper/vg0-rootfs --grub /dev/sda
+
+Install default Debian release (bullseye) on LVM device /dev/mapper/vg0-rootfs and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+
+ grml-debootstrap --efi /dev/sda1 --target /dev/sda2 --grub /dev/sda
+
+Install default Debian release (bullseye) on /dev/sda2 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+Use /dev/sda1 as EFI partition (requires EFI support in booted system).
mount /dev/sda1 /data/chroot
grml-debootstrap --target /data/chroot
-Install default Debian release (jessie) in directory /data/chroot (without
-any bootloader).
+Install default Debian release (bullseye) in directory /data/chroot (without any bootloader).
grml-debootstrap --target /dev/sda3 --grub /dev/sda --mirror ftp://ftp.tugraz.at/mirror/debian
-Install default Debian release (jessie) on /dev/sda3 and install bootmanager
-Grub in MBR (master boot record) of /dev/sda and use /dev/sda3 as system partition.
-Use specified mirror instead of the default (http://http.debian.net/debian) one.
+Install default Debian release (bullseye) on /dev/sda3 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+Use specified mirror instead of the default (http://deb.debian.org/debian) one.
mount /dev/sda1 /mnt/sda1
grml-debootstrap --vmfile --vmsize 3G --target /mnt/sda1/qemu.img
-Install default debian release (jessie) in a Virtual Machine file with
-3GB disk size (including Grub as bootmanager in MBR of the virtual disk file):
+Install default debian release (bullseye) in a Virtual Machine file with 3GB disk size (including GRUB as bootmanager in MBR of the virtual disk file):
- mount -o loop /mnt/sda6/debian-CD-1.iso /mnt/iso
- grml-debootstrap --target /dev/sda1 --grub /dev/sda --iso file:/mnt/iso/debian/
+ mount -o loop ./debian-CD-1.iso /media/cdrom
+ grml-debootstrap --target /dev/sda1 --grub /dev/sda --iso /media/cdrom
-Install Debian on /dev/sda1 using the loopback mounted Debian-ISO
-for the base-system and install bootmanager Grub in MBR (master boot record) of
-/dev/sda and use /dev/sda1 as system partition. Please notice, that the chroot
-system requires network access for all packages which are not part of the
-ISO.
+Install Debian on /dev/sda1 using the loopback mounted Debian-ISO for the base-system and install bootmanager GRUB in MBR (master boot record) of /dev/sda.
+Please notice, that the chroot system requires network access for all packages which are not part of the ISO.
Files
-----
release=...
-Specify release of new Debian system. Defaults to Debian jessie. Supported
-releases: lenny, squeeze, wheezy, jessie, stretch and sid. Usage example: release=sid
+Specify release of new Debian system. Defaults to Debian bullseye. Supported
+releases: lenny, squeeze, wheezy, jessie, stretch, buster, bullseye and sid. Usage example: release=stretch
mirror=...
Specify mirror which should be used for apt-get/aptitude instead
-of the default one (http://http.debian.net/debian).
+of the default one (http://deb.debian.org/debian).
Usage example: mirror=ftp://ftp.tugraz.at/mirror/debian
password=...
include::releasetable.txt[]
[NOTE]
-.lenny release
+.lenny/squeeze/wheezy release
================================================================================
-[1] Please notice that lenny is an unsupported release within Debian nowadays.
-grml-debootstrap can handle the release but you really should not use lenny
-anymore unless you really know what you are doing. Choose Debian 7.0 (wheezy) or
-something newer instead.
-
-Notice that you need to specify a mirror providing the lenny release, the
-default (http://http.debian.net/debian) doesn't provide it any longer nowadays.
+[1] Please notice that releases like lenny, squeeze and wheezy are unsupported releases within Debian nowadays.
+grml-debootstrap can handle the releases but you really should not use them
+anymore unless you really know what you are doing.
+Choose the current Debian stable version instead.
+See https://wiki.debian.org/DebianReleases for the list of supported releases.
+
+Notice that you need to specify a mirror providing the lenny and squeeze releases, the
+default (http://deb.debian.org/debian) doesn't provide it any longer nowadays.
Set the mirror to e.g. http://archive.debian.org/debian/ if you don't have
-your own lenny mirror.
+your own lenny/squeeze mirror.
+
+Older releases might also fail to install when running on top of recent kernel versions,
+throwing segfaults during debootstrap. This can be identified by the following messages inside kernel log (check with 'dmesg'):
+
+ dpkg[...] vsyscall attempted with vsyscall=none ip:[...]
+ dpkg[...]: segfault at [...]
+
+To work around this issue boot your system with the kernel boot option 'vsyscall=emulate'.
+
+You also need to specify a filesystem that's supported by lenny, e.g.
+'--filesystem ext3' since grml-debootstrap's current default (ext4) isn't
+supported by lenny.
Also when debootstrapping lenny on a live system with a kernel version
like "3.16-1-grml-amd64" lenny's libc will fail to install with:
Bugs
----
-Probably. Please send bugreports to Michael Prokop <mika@grml.org>.
+Please report bugs towards https://github.com/grml/grml-debootstrap/issues
See also
--------
-debootstrap (8), cdebootstrap (1).
+debootstrap (8), cdebootstrap (1), mmdebstrap(1).
Author
------