Merge remote-tracking branch 'origin/pr/129'
[grml-debootstrap.git] / grml-debootstrap.8.txt
index a2d42a5..9c455b3 100644 (file)
@@ -14,15 +14,17 @@ image:images/screenshot.png[Screenshot]
 Introduction
 ------------
 
-grml-debootstrap is a wrapper suite around debootstrap (and cdebootstrap if you
-want) for installing a plain Debian system (e.g. via Grml) very fast and easy.
+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 configuration file
-/etc/debootstrap/config (or specify some variables via command line) and invoke
-grml-debootstrap without any further options then.
+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 front end will be available to control some basic
+configuration options.
 
-A plain and base Debian system will be installed on the given device (or
-directory) then. Customization of this process is possible as well.
+A plain and base Debian system will be installed on the given device, directory
+or virtual image file then. Customization of this process is possible as well.
 
 CAUTION: The Grml team does not take responsibility for loss of any data!
 
@@ -36,6 +38,12 @@ Options and environment variables
     deploy an i386 system use this option. Note: deploying amd64 from an i386
     kernel does *not* work. Example: "_--arch i386_"
 
+*--backportrepos*::
+
+    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.
+
 *--bootappend* _appendline-for-the-kernel_::
 
     Specify appendline for the kernel.
@@ -52,6 +60,11 @@ Options and environment variables
     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.
@@ -65,10 +78,33 @@ Options and environment variables
 
     Extra parameters passed to the debootstrap command.
 
+*--debug*::
+
+   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 tradtition 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.
-    If unset defaults to ext3. Valid values are all filesystems that
+    If unset defaults to ext4. Valid values are all filesystems that
     can be created through mkfs._filesystem_.
 
 *--force*::
@@ -96,7 +132,7 @@ Options and environment variables
 
 *--hostname* _hostname_::
 
-    Use specified hostname instead of the default (being 'grml').
+    Use specified hostname instead of the default (being $HOSTNAME or if unset 'grml').
 
 *-i*, *--iso* _/mntpoint_::
 
@@ -106,10 +142,6 @@ Options and environment variables
     mounted the according Debian-ISO to the given _/mntpoint_. See section
     'Usage examples' for a demonstration.
 
-*--insecure*::
-
-    Do not download and check signatures for retrieved Release files.
-
 *--keep_src_list*::
 
      Do not overwrite user provided /etc/apt/sources.list.
@@ -123,6 +155,22 @@ Options and environment variables
 
     Skip debootstrap, only do configuration to the target.
 
+*--nointerfaces*::
+
+    Do not copy /etc/network/interfaces from host system to the target.
+
+*--nokernel*::
+
+    Skip installation of default kernel images. This option might be
+    interesting for you if you want a Debian system which doesn't
+    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.
@@ -151,11 +199,13 @@ Options and environment variables
     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 (note: requires current 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_::
 
@@ -165,89 +215,132 @@ Options and environment variables
     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: buster
+
+*--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.
 
-    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/
+*--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
-    beginning). To install grub using *--grub* make sure to use a _device_
-    instead of a directory as _target_ (installation of grub as bootloader when
-    using directories is NOT supported).
+    beginning).
 
 *-v*, *--verbose*::
+
     Increase verbosity.
 
-*--vmfile*::
-    Set up a Virtual Machine instead of installing to a partition or directory.
+*--vm*::
+
+    Set up a Virtual Machine on an existing block device, which will be
+    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 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_::
+
    Use specified size for size of Virtual Machine disk file. If not specified it
    defaults to 2G (being 2GB). Syntax as supported by qemu-img (see manpage
    qemu-img(1) for details.
    Usage example: --vmsize 3G
 
 *-V*, *--version*::
+
     Show version of program and exit.
 
-WARNING: the command line parsing of grml-debootstrap does not validate the provided
-arguments for the command line options. Please be careful and check docs and
-/etc/debootstrap/config for further information.
+WARNING: the command line parsing of grml-debootstrap usually does not validate
+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 (stable/squeeze) 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 (buster) 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 (buster) 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 (buster) 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 --efi
+
+Install default Debian release (buster) 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 (stable/squeeze) in directory /data/chroot (without
-any bootloader).
+Install default Debian release (buster) 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 (stable/squeeze) in a Virtual Machine file with
-3GB disk size (including Grub as bootmanager in MBR of the virtual disk file):
+Install default Debian release (buster) 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 (stable/squeeze) 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 (ftp://ftp.debian.de/debian) one.
+Install default debian release (buster) 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-40r0-i386-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 stable/squeeze 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
 -----
 
   /etc/debootstrap/config
 
-Main configuration file. You have to adjust it according to your needs
-if you want to execute grml-debootstrap in the non-interactive mode without
-any special command line arguments.
+Main configuration file. Adjust it according to your needs if you want to
+execute grml-debootstrap in the non-interactive mode without any special command
+line arguments.
 
   /etc/debootstrap/chroot-script
 
@@ -268,17 +361,6 @@ Debian system by default.
 Debian Packages dropped in this directory will be installed into the new Debian
 system by default (Control variable: EXTRAPACKAGES)
 
-  /etc/debootstrap/stages/
-
-The default directory for storing information about executed stages. Every
-single function of grml-debootstrap will write 'done' to the stages directory
-into a file named as the function itself if it has been executed successfully.
-You can adjust the location of the directory via configuration variable STAGES
-via /etc/debootstrap/config.  Please notice that you have to remove the stages
-directory on your own if you want to re-execute grml-debootstrap after running it
-successfully once. This should avoid recurrent execution by error of
-grml-debootstrap (which might delete present data).
-
 Customization
 -------------
 
@@ -300,9 +382,9 @@ If environment variable AUTOINSTALL is set grml-debootstrap can be executed in a
 full automatic mode. While this mode isn't really useful for interactive
 execution (just configure /etc/debootstrap/configure or specify the relevant
 variables on the command line instead) it is meant for use via boot option
-debian2hd. The boot option debian2hd (more precise: the kernelname on bootprompt)
-supports the following boot options (they correspond with the command line options
-mentioned above):
+debian2hd on the Grml live system. The boot option debian2hd (more precise: the
+kernelname at the bootprompt) supports the following boot options (they
+correspond with the command line options mentioned above):
 
   target=...
 
@@ -315,13 +397,13 @@ Where do you want to install grub to? Usage example: grub=/dev/sda
 
   release=...
 
-Specify release of new Debian system. Defaults to Debian squeeze. Supported
-relases: lenny, squeeze, wheezy and sid. Usage example: release=sid
+Specify release of new Debian system. Defaults to Debian buster. 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 (ftp://ftp.debian.de/debian).
+of the default one (http://deb.debian.org/debian).
 Usage example: mirror=ftp://ftp.tugraz.at/mirror/debian
 
   password=...
@@ -329,8 +411,8 @@ Usage example: mirror=ftp://ftp.tugraz.at/mirror/debian
 Set password of user root without prompting for it but set it to the given
 argument. Usage example: password=AiTh5ahn
 
-Usage example for automatic installation:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Usage example for automatic installation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   debian2hd target=/dev/sda1 grub=/dev/sda mirror=ftp://ftp.tugraz.at/mirror/debian password=foobar
 
@@ -350,12 +432,42 @@ Supported Releases
 include::releasetable.txt[]
 
 [NOTE]
-.lenny release
+.lenny/squeeze/wheezy release
 ================================================================================
-[1] Please notice that lenny is the current old-stable release within Debian.
-grml-debootstrap can handle the release but you really should not use lenny
-anymore unless you really know what you are doing. Choose stable (squeeze)
-instead.
+[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/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:
+
+   [...]
+   /var/lib/dpkg/tmp.ci/preinst: line 265: [: 3.16-1-grml-amd64: integery expression expected
+   /var/lib/dpkg/tmp.ci/preinst: line 231: 3.16-1-grml-amd64: syntax error: invalid arithemtic operator (error token is ".16-1-grml-amd64")
+   dpkg: error processing /var/cache/apt/archives/libc6_2.7-18lenny7_amd64.deb (--install):
+   [....]
+
+To workaround this either debootstrap from a system with an according
+kernel version or use the "fake uname" workaround (just google for it).
 
 When installing lenny to a new mdraid, grml-debootstrap will use md metadata
 format version 0.90. This limits the device to a maximum size of 2TB, but has
@@ -363,22 +475,22 @@ the advantage of grub-legacy actually being able to boot from it.
 ================================================================================
 
 [NOTE]
-.sid release
+.unstable and testing releases
 ================================================================================
-[2] Please notice that sid is Debian/unstable and due to its nature might not be
-always installable. What _might_ work instead is deploying stable (squeeze) or
-testing (wheezy) and upgrade it after installation finished.
+[2] Please notice that Debian/testing and Debian/unstable (sid) might
+not be always installable due to their nature. What _might_ work instead is
+deploying a stable release and upgrade it after installation finished.
 ================================================================================
 
 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
 ------