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.
*--defaultinterfaces*::
- Install a default /etc/network/interfaces file (enabling DHCP for eth0)
+ 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_::
*--nointerfaces*::
Do not copy /etc/network/interfaces from host system to the target.
- This option is automatically enabled when using --vm or --vmfile.
*--nokernel*::
*--non-free*::
- Enable the 'non-free' repository in COMPONENTS. By default only
- the 'main' repository is enabled.
+ Enable the 'non-free' repository in COMPONENTS.
+ For bookworm and newer Debian releases also the 'non-free-firmware' repository gets enabled.
+ By default only the 'main' repository is enabled.
*--nopackages*::
*-r*, *--release* _releasename_::
Specify release of new Debian system. Supported releases names: lenny,
- squeeze, wheezy, jessie, stretch and sid. Corresponding with configuration
- variable RELEASE. Default release: stretch
+ squeeze, wheezy, jessie, stretch, buster, bullseye, bookworm and sid.
+ Corresponding with configuration variable RELEASE. Default release: bookworm
*--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*::
+
+ 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_::
Target partition (/dev/...) or directory (anything else without /dev at the
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*::
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_::
qemu-img(1) for details.
Usage example: --vmsize 3G
+*--vmefi*::
+
+ Create an EFI boot partition for the VM.
+
*-V*, *--version*::
Show version of program and exit.
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 (stretch) 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 (bookworm) 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 (bookworm) 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 (bookworm) 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 (bookworm) 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 (stretch) in directory /data/chroot (without
-any bootloader).
+Install default Debian release (bookworm) 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 (stretch) on /dev/sda3 and install bootmanager
-Grub in MBR (master boot record) of /dev/sda and use /dev/sda3 as system partition.
+Install default Debian release (bookworm) 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 (stretch) in a Virtual Machine file with
-3GB disk size (including Grub as bootmanager in MBR of the virtual disk file):
+Install default debian release (bookworm) 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 stretch. Supported
-releases: lenny, squeeze, wheezy, jessie, stretch and sid. Usage example: release=sid
+Specify release of new Debian system. Defaults to Debian bookworm.
+Supported releases: lenny, squeeze, wheezy, jessie, stretch, buster, bullseye, bookworm and sid.
+Usage example: release=bullseye
mirror=...
include::releasetable.txt[]
[NOTE]
-.lenny/squeeze release
+.lenny/squeeze/wheezy/jessie/stretch/buster release
================================================================================
-[1] Please notice that lenny and squeeze are unsupported releases within Debian nowadays.
+[1] Please notice that releases like lenny, squeeze, wheezy, jessie, stretch and buster 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.
+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 specific mirror providing old releases, the default (http://deb.debian.org/debian) doesn't provide them any longer.
+Set the mirror to e.g. http://archive.debian.org/debian/ if you don't have your own Debian 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 [...]
-Notice that you need to specify a mirror providing the lenny/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/squeeze mirror.
+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
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
------