X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=grml-debootstrap%2Findex.html;h=b002bcb431d67592c9b7f817c3cf74f4dca02cc9;hb=f889fe7bc06111c3007d41058d115dd049d0e7e0;hp=2d7a7dc32272fa9abe5310a18c1b7a0dc2a499f7;hpb=c39f079208e4a8e8a354e19e17d34ee43699e908;p=grml.org.git diff --git a/grml-debootstrap/index.html b/grml-debootstrap/index.html index 2d7a7dc..b002bcb 100644 --- a/grml-debootstrap/index.html +++ b/grml-debootstrap/index.html @@ -1,16 +1,27 @@ + - - + + grml-debootstrap(8) - +
+

Name

-

grml-debootstrap - wrapper around debootstrap for installing plain Debian via grml

+

grml-debootstrap - wrapper around debootstrap for installing plain Debian

+
+

Synopsis

grml-debootstrap [ options ]

@@ -565,40 +751,56 @@ footnotes: function () { Screenshot

+
+

Introduction

-

grml-debootstrap is a wrapper suite around debootstrap (and cdebootstrap if you -want) for installing a plain Debian system via grml 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 commandline) and invoke -grml-debootstrap without any further options then.

-

A plain and base Debian system will be installed on the given device (or -directory) then. Customization of this process is possible as well.

+

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 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 +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!The Grml team does not take responsibility for loss of any data!
+
+

Options and environment variables

---arch <_architecture_> +--arch architecture

- Architecture you want to bootstrap. Currently only i386 is supported. - Defaults to the architecture that is currently running on your system. If - you’re running an amd64 system and want to deploy a i386 system use this option. - Note: deploying amd64 from a i386 system won’t work. + Set target architecture you want to install. Defaults to the architecture + you are currently running. If you’re running an amd64 kernel and want to + deploy an i386 system use this option. Note: deploying amd64 from an i386 + kernel does not work. Example: "--arch i386"

---bootappend <_appendline for the kernel_> +--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

@@ -607,7 +809,7 @@ directory) then. Customization of this process is possible as well.

--c, --config <_file_> +-c, --config file

@@ -615,7 +817,7 @@ directory) then. Customization of this process is possible as well.

---chroot-scripts <_directory_> +--chroot-scripts directory

@@ -626,7 +828,16 @@ directory) then. Customization of this process is possible as well.

--d, --confdir <_path_> +--contrib +
+
+

+ Enable the contrib repository in COMPONENTS. By default only + the main repository is enabled. +

+
+
+-d, --confdir path

@@ -634,7 +845,7 @@ directory) then. Customization of this process is possible as well.

---debconf <_file_> +--debconf file

@@ -643,7 +854,7 @@ directory) then. Customization of this process is possible as well.

---debopt <_params_> +--debopt params

@@ -651,7 +862,70 @@ directory) then. Customization of this process is possible as well.

---grub <_device_> +--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 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. + If unset defaults to ext4. Valid values are all filesystems that + can be created through mkfs.filesystem. +

+
+
+--force +
+
+

+ Skip user acknowledgement and do not prompt for user input. +

+
+
+--grmlrepos +
+
+

+ Enable Grml.org’s Debian repository (http://deb.grml.org/) via the + /etc/apt/sources.list.d/grml.list configuration file. This provides the + option to install Debian packages from Grml’s repository. +

+
+
+--grub device

@@ -672,22 +946,22 @@ directory) then. Customization of this process is possible as well.

---hostname <_hostname_> +--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_> +-i, --iso /mntpoint

- Specify mountpoint where you have a Debian ISO mounted loopback. + Specify mount point where you have a Debian ISO mounted loopback. Using this option instead of the mirror option gives you the possibility to install the base-system without network access. Make sure you - mounted the according Debian-ISO to the given <_/mntpoint_>. See section + mounted the according Debian-ISO to the given /mntpoint. See section Usage examples for a demonstration.

@@ -700,7 +974,7 @@ directory) then. Customization of this process is possible as well.

--m, --mirror <_URL_> +-m, --mirror URL

@@ -717,6 +991,34 @@ directory) then. Customization of this process is possible as well.

+--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
@@ -725,26 +1027,28 @@ directory) then. Customization of this process is possible as well.

---insecure +--nopassword

- Do not download and check signatures for retrieved Release files. + Do not prompt for the root password. Note: Use the --password option if + you want to set the root password during an automatic installation but don’t + want to use the interactive dialog.

--p, --mntpoint <_/mntpoint_> +-p, --mntpoint /mntpoint

- Specify mountpoint that should be used for mounting the target system. + Specify mount point that should be used for mounting the target system. Corresponding with configuration variable MNTPOINT. Note: this option has no effect if option -t is given and represents a directory.

---packages <_file_> +--packages file

@@ -753,27 +1057,29 @@ directory) then. Customization of this process is possible as well.

---password <_password_> +--password password

Use specified password as password for user root. Use with caution, as your - commandline might be visible in the process list and the shell history. + 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 (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_> +--pre-scripts directory

@@ -785,25 +1091,53 @@ directory) then. Customization of this process is possible as well.

---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

- 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/ + Delete grml-debootstrap configuration files (/etc/debootstrap/*) from installed + system. Useful for reproducible builds or if you don’t want to leak information.

--t, --target <_target_> +--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 - 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).

@@ -815,6 +1149,43 @@ directory) then. Customization of this process is possible as well.

+--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
@@ -828,156 +1199,183 @@ directory) then. Customization of this process is possible as well.

Warning -the commandline parsing of grml-debootstrap does not validate the provided -arguments for the commandline options. Please be careful and check docs and -/etc/debootstrap/config for further information. +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
+
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.

+
+
+
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 default Debian release (stable/lenny) on /dev/sda1 and install bootmanager -Grub in MBR (master boot record) of /dev/sda and use /dev/sda1 as system partition.

+

Install Debian unstable/sid on /dev/sda6 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.

-
grml-debootstrap --target /dev/sda6 --grub /dev/sda --release sid
+
DEBOOTSTRAP=mmdebstrap grml-debootstrap --target /dev/sda1 --grub /dev/sda
-

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 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.

-
mount /dev/sda1 /data/chroot
-grml-debootstrap --target /data/chroot
+
grml-debootstrap --target /dev/mapper/vg0-rootfs --grub /dev/sda
-

Install default Debian release (stable/lenny) in directory /data/chroot (without -any bootloader).

+

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 --target /dev/sda3 --grub /dev/sda  --mirror ftp://ftp.tugraz.at/mirror/debian
+
grml-debootstrap --efi /dev/sda1 --target /dev/sda2 --grub /dev/sda
-

Install default Debian release (stable/lenny) 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) 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 -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 /dev/sda1 /data/chroot
+grml-debootstrap --target /data/chroot
-

Install Debian stable/lenny 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 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 (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 (buster) in a Virtual Machine file with 3GB disk size (including GRUB as bootmanager in MBR of the virtual disk file):

+
+
+
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. +Please notice, that the chroot system requires network access for all packages which are not part of the ISO.

+
+

Files

-
/etc/debootstrap/config
+
/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
+
/etc/debootstrap/chroot-script

The script executed within the new Debian system as soon as the main system has been installed via [c]debootstrap.

-
/etc/debootstrap/locale.gen
+
/etc/debootstrap/locale.gen

Defines the default locales used for generating locales via locale-gen.

-
/etc/debootstrap/packages
+
/etc/debootstrap/packages

Defines the software packages which should be installed in the new Debian system by default.

-
/etc/debootstrap/extrapackages
+
/etc/debootstrap/extrapackages/
-

Debian Packages dropped here will be installed into the new Debian system by -default (Controlvariable: 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).

+

Debian Packages dropped in this directory will be installed into the new Debian +system by default (Control variable: EXTRAPACKAGES)

+
+

Customization

You can control execution of grml-debootstrap via adjusting /etc/debootstrap/config for some main stuff or via setting some selected -variables via commandline. The packages which should be installed in the new +variables via command line. The packages which should be installed in the new Debian system can be defined via the file /etc/debootstrap/packages. If you want to put existing files to the new Debian system you can place them into the (by default non-existing) directories boot, etc, share, usr and var in /etc/debootstrap/. Every existing directory will be copied to the new Debian system then. If you want to install additional packages that are not available -via the grml or debian mirror drop them into /etc/debootstrap/extrapackages and +via the Grml or Debian mirror drop them into /etc/debootstrap/extrapackages and make sure that EXTRAPACKAGES is set to "yes".

+
+

Automatic installation

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 commandline instead) it is meant for use via bootoption -debian2hd. The bootoption debian2hd (more precise: the kernelname on bootprompt) -supports the following bootoptions (they correspond with the commandline options -mentioned above):

+variables on the command line instead) it is meant for use via boot option +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=...
+
target=...

The target partition/directory of the new Debian system. Usage example: target=/dev/sda1

-
grub=...
+
grub=...

Where do you want to install grub to? Usage example: grub=/dev/sda

-
release=...
+
release=...
-

Specify release of new Debian system. Defaults to Debian stable. Supported -relases: lenny, squeeze 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=...
+
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=...
+
password=...

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
+
debian2hd target=/dev/sda1 grub=/dev/sda mirror=ftp://ftp.tugraz.at/mirror/debian password=foobar
-

You have to enter this commandline at the bootprompt of grml. Please make sure -that /dev/sda1 is the partition where you really want to install your new Debian -system.

+

You have to enter this command line at the bootprompt of the Grml live system. +Please make sure that /dev/sda1 is the partition where you really want to +install your new Debian system.

+boot options for grml-debootstrap.
@@ -986,67 +1384,62 @@ system.

Automatic installation within booting process is done in grml-autoconfig via setting environment variable AUTOINSTALL and creation of /usr/bin/grml-debootstrap_noninteractive with the available and relevant -bootoptions for grml-debootstrap.
+
+ +

Supported Releases

- ---+ ++ - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableCurrent status Table 1. Current status
- Release / - - Tool debootstrap - - cdebootstrap -
Release Status
- Lenny - - works - - works -
- Squeeze - - works - - works -
- Sid - - works - - works -

lenny

works[1]

squeeze

works[1]

wheezy

works[1]

jessie

works

stretch

works

buster

works

bullseye

works[2]

sid

works[2]

@@ -1056,31 +1449,84 @@ cellspacing="0" cellpadding="4"> Note -
Etch-Release
-

[1] Please notice that Etch is the current old-stable within Debian. -grml-debootstrap can handle the release but you really should not use Etch -anymore unless you really know what you are doing. Choose Lenny instead.

+
lenny/squeeze/wheezy release
+

[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 +the advantage of grub-legacy actually being able to boot from it.

+ + +
+
+ + +
+Note + +
unstable and testing releases
+

[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>.

+ +
+

See also

-

debootstrap (8), cdebootstrap (1).

+

debootstrap (8), cdebootstrap (1), mmdebstrap(1).

+
+

Author

Michael Prokop <mika@grml.org>

+