summaryrefslogtreecommitdiff
path: root/vmdebootstrap.8.in
diff options
context:
space:
mode:
Diffstat (limited to 'vmdebootstrap.8.in')
-rw-r--r--vmdebootstrap.8.in393
1 files changed, 0 insertions, 393 deletions
diff --git a/vmdebootstrap.8.in b/vmdebootstrap.8.in
deleted file mode 100644
index 0364bed..0000000
--- a/vmdebootstrap.8.in
+++ /dev/null
@@ -1,393 +0,0 @@
-.\" Copyright 2011 Lars Wirzenius <liw@liw.fi>
-.\"
-.\" This program is free software: you can redistribute it and/or modify
-.\" it under the terms of the GNU General Public License as published by
-.\" the Free Software Foundation, either version 3 of the License, or
-.\" (at your option) any later version.
-.\"
-.\" This program is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
-.\"
-.TH VMDEBOOTSTRAP 8
-.SH NAME
-vmdebootstrap \- install basic Debian system into virtual disk image
-.SH SYNOPSIS
-.B vmdebootstrap
-\-\-image=FILE \-\-size=SIZE [\-\-mirror=URL] [\-\-distribution=NAME]
-.PP
-.B vmdebootstrap
-[\-\-output=FILE] [\-\-verbose |\-\-no-verbose] \-\-image=FILE \-\-size=SIZE
-[\-\-tarball=FILE] [\-\-mirror=URL] [\-\-arch=ARCH] [\-\-distribution=NAME]
-[\-\-package=PACKAGE] [\-\-custom-package=DEB] [\-\-no-kernel] [\-\-kernel-package]
-[\-\-enable-dhcp | \-\-no-enable-dhcp] [\-\-root-password=PASSWORD]
-[\-\-customize=SCRIPT] [\-\-hostname=HOSTNAME] [\-\-user=USER/PASSWORD]
-[\-\-serial-console | \-\-no-serial-console] [\-\-sudo |\-\-no-sudo] [\-\-owner=OWNER]
-[\-\-bootsize=BOOTSIZE] [\-\-boottype=FSTYPE] [\-\-roottype=FSTYPE] [\-\-foreign=PATH]
-[\-\-variant=VARIANT] [\-\-no-extlinux] [\-\-squash] [\-\-configure-apt]
-[\-\-grub] [\-\-apt-mirror] [\-\-pkglist] [\-\-use\-efi] [\-\-efi\-size]
-.SH DESCRIPTION
-.B vmdebootstrap
-installs a basic Debian system into a virtual disk image,
-for use with virtual machines,
-such as KVM, Qemu, or VirtualBox.
-It is like
-.BR debootstrap (8),
-which does the same thing, but puts the system into a directory,
-for use with
-.BR chroot (8).
-(In fact,
-.B vmdebootstrap
-is a wrapper around
-.BR debootstrap ).
-.PP
-You need to run
-.B vmdebootstrap
-as root. If the \-\-verbose option is not used, no output will be
-sent to the command line. If the \-\-log option is not used, no
-output will be sent to any log files either.
-.PP
-To use the image,
-you probably want to create a virtual machine using your preferred
-virtualization technology, such as
-.BR kvm (1),
-or
-.BR qemu (1).
-Configure the virtual machine to use the image you've created.
-Then start the virtual machine, (see
-.B EXAMPLES
-)
-and log into it via its console to configure it.
-The image has an empty root password and will not have networking
-configured by default. Set the root password before you configure
-networking.
-.SH NETWORKING
-The \-\-enable\-networking option uses the /etc/network/interfaces.d/
-source directory, with the default settings for
-.B lo
-and
-.B eth0
-being added to /etc/network/interfaces.d/setup. Other networking
-configuration can be specified using a customisation script.
-Localhost settings would be:
-
- auto lo
- iface lo inet loopback
-
-If \-\-enable\-dhcp is specified, these settings are also included
-into /etc/network/interfaces.d/setup:
-
- auto eth0
- iface eth0 inet dhcp
-
-.SH BOOTLOADERS
-Unless the \-\-no\-extlinux or \-\-grub options are specified, the
-image will use
-.BR extlinux (1)
-as a boot loader.
-.B bootsize
-is not recommended when using
-.B extlinux
-\- use grub instead.
-Versions of grub2 in wheezy
-can fail to install in the VM, at which point vmdebootstrap will fall back to
-extlinux. It may still be possible to complete the installation of grub2 after
-booting the VM as the problem may be related to the need to use loopback
-devices during the grub-install operation. Details of the error will appear in the
-vmdebootstrap log file, if enabled with the \-\-log option. Note that
-.B grub-legacy
-is not supported.
-.B vmdebootstrap
-also supports
-.B EFI.
-Use \-\-use\-uefi to use grub\-efi instead of grub\-pc. If the default 5Mb
-is not enough space, use the \-\-esp\-size option to specify a different
-size for the EFI partition. Registered firmware is not supported as it
-would need to be done after boot. If the system you are creating is for
-more than just a VM or live image, you will likely need a larger ESP,
-up to 500Mb.
-.B UBoot
-needs manual configuration via the customisation hook scripts,
-typically support requires adding u\-boot using \-\-package and then
-copying or manipulating the relevant u\-boot files in the customisation
-script. Examples are included for beaglebone-black.
-.SH INSTALLATION IMAGES AND VIRTUAL MACHINES
-.B vmdebootstrap
-is aimed principally at creating virtual machines, not installers or prebuilt
-installation images. It is possible to create prebuilt installation images
-for some devices but this depends on the specific device. (A 'prebuilt
-installation image' is a single image file which can be written to physical
-media in a single operation and which allows the device to boot directly
-into a fully installed system \- in a similar way to how a virtual machine
-would behave.)
-.PP
-.B vmdebootstrap
-assumes that all operations take place on a local image file, not a
-physical block device / removable media.
-.PP
-.B vmdebootstrap
-is intended to be used with tools like qemu on the command line to launch
-a new virtual machine. Not all devices have virtualisation support in hardware.
-.PP
-This has implications for
-.B u-boot
-support in some cases. If the device can support reading the bootloader
-from a known partition, like the beaglebone-black, then
-.B vmdebootstrap
-can provide space for the bootloader and the image will work as a prebuilt
-installation image. If the device expects that the bootloader exists at a
-specific offset and therefore requires that the bootloader is written as
-an image not as a binary which can be copied into an existing partition,
-.B vmdebootstrap
-is unable to include that bootloader image into the virtual machine image.
-.PP
-The beagleboneblack.sh script in the examples/ directory provides a worked
-example to create a prebuilt installation image. However, the beagleboneblack
-itself does not support virtualisation in hardware, so is unable to launch
-a virtual machine. Other devices, like the Cubietruck or Wandboard need
-.B u-boot
-at a predefined offset but can launch a virtual machine using qemu, so
-the cubietruck and wandboard6q scripts in the examples/ directory relate
-to building images for virtual machines once the device is already
-installed and booted into a suitable kernel.
-.PP
-It is possible to wrap
-.B vmdebootstrap
-in such a way as to prepare a
-.B physical block device
-with a bootloader image and then deploy the bootstrap on top. However,
-this does require physical media to be inserted and removed each time
-the wrapper is executed. To do this, use the \-\-tarball option instead
-of the \-\-image option. Then setup the physical media and bootloader
-image manually, as required for the device, redefine the partitions to
-make space for the rootfs, create a filesystem on the physical media and
-unpack the
-.B vmdebootstrap
-tarball onto that filesystem. Once you have working media, an image can be
-created using dd to read back from the media to an image file, allowing
-other media to be written with a single image file.
-.SH OPTIONS
-.IP \-\-output=FILE
-write output to FILE, instead of standard output
-.IP \-\-verbose
-report what is going on
-.IP \-\-image=FILE
-put created disk image in FILE
-.IP \-\-size=SIZE
-create a disk image of size SIZE (1000000000)
-.IP \-\-tarball=FILE
-tar up the disk's contents in FILE
-.IP \-\-mirror=URL
-use MIRROR as package source (http://http.debian.net/debian/)
-.IP \-\-arch=ARCH
-architecture to use (amd64) - if using an architecture which the
-host system cannot execute, ensure the \-\-foreign option is also
-used.
-.IP \-\-distribution=NAME
-release to use (defaults to stable). The release needs to be a valid
-Debian or Ubuntu release name or codename.
-.IP \-\-package=PACKAGE
-install PACKAGE onto system
-.IP \-\-custom-package=DEB
-install package in DEB file onto system (not from mirror)
-.IP \-\-no-kernel
-do not install a linux package
-.IP \-\-kernel-package
-If \-\-no-kernel is not used and the auto-selection of the
-.B linux-image-586
-or
-.B linux-image-armmp
-or
-.B linux-image-$ARCH
-package is not suitable, the kernel package can be specified
-explicitly.
-.IP \-\-enable-dhcp
-enable DHCP on eth0
-.IP \-\-root-password=PASSWORD
-set root password
-.IP \-\-customize=SCRIPT
-run SCRIPT after setting up system. If the script does not exist in the current
-working directory, /usr/share/vmdebootstrap/examples/ will be checked as a
-fallback. The script needs to be executable and is passed the root directory of
-the debootstrap as the only argument. Use chroot if you need to execute binaries
-within the debootstrap.
-.IP \-\-hostname=HOSTNAME
-set name to HOSTNAME (debian)
-.IP \-\-user=USER/PASSWORD
-create USER with PASSWORD
-.IP \-\-owner=OWNER
-change the owner of the final image from root to the specified user.
-.IP \-\-serial\-console
-configure image to use a serial console
-.IP \-\-serial-console-command
-set the command to manage the serial console which will be appended to
-/etc/inittab. Default is "/sbin/getty \-L ttyS0 115200 vt100", resulting in a line
-.BR "S0:23:respawn:/sbin/getty \-L ttyS0 115200 vt100"
-.IP \-\-sudo
-install sudo, and if user is created, add them to sudo group
-.IP \-\-bootsize=BOOTSIZE
-If specified, create a /boot partition of the given size within the image.
-Debootstrapping will fail if this is too small for the selected kernel package.
-.IP \-\-boottype=FSTYPE
-Filesystem to use for the /boot partition. (default ext2)
-.IP \-\-roottype=FSTYPE
-Filesystem to use for the / (root) partition. (default ext4)
-.IP \-\-swap=SWAPSIZE
-If specified, create a swap partition of the given size within the image.
-Debootstrapping will fail if this results in a root partition which is
-too small for the selected packages. The minimum swap space is 256Mb as
-the default memory allocation of QEMU is 128Mb. A default 1Gb image is
-not likely to have enough space for a swap partition as well.
-.IP \-\-foreign=PATH
-Path to the binfmt_handler to enable foreign support in debootstrap.
-e.g. /usr/bin/qemu-arm-static \- note foreign debootstraps may take a signficant
-amount of time to complete and that debootstrap will retry five times if
-packages fail to install by default.
-.IP \-\-no\-extlinux
-Skip installation of extlinux. needs a customize script to make the image
-bootable. Useful for architectures where extlinux is not supportable.
-Depending on how the image is to be booted, the \-\-mbr option may also be
-necessary with extlinux.
-.IP \-\-squash
-Run mksquashfs against the final image using xz compression \- requires
-squashfs-tools to be installed. The final file will have the .squashfs suffix.
-By default, mksquashfs is allowed to use all processors which may result
-in high load. Run mksquashfs separately if you need to control the number
-of processors used per run. squashfs can also have issues with large image
-files (where large is a factor of the amount of data inside the image rather
-than the size of the image itself). These errors can result in invalid
-images (e.g. image does not boot) or corrupted images (truncated file).
-This is a known bug in squashfs. Avoid using the \-\-squash option and
-consider squashing the loopback mounted directory tree of the image.
-.B
-vmdebootstrap
-will check if the squashed filesystem is less than 1MB and leave the
-unsquashed image in place with a warning about a possible squashfs
-failure.
-.IP \-\-configure\-apt
-Use the specified mirror and distribution to create a suitable apt source inside
-the VM. Can be useful if debootstrap fails to create it automatically.
-.IP \-\-apt\-mirror
-Use the specified mirror inside the image instead of the mirror used to
-build the image. This is useful if you have a local mirror to make building
-the image quicker but the image needs to run even if that mirror is not
-available.
-.IP \-\-grub
-Disable extlinux installation and configure grub2 instead. grub2 will be added to
-the list of packages to install. update-grub will be called once the debootstrap is
-complete and grub-install will be called in the image.
-.IP \-\-no\-acpid
-Disable installation of acpid if not required, otherwise acpid will be
-installed if \-\-foreign is not used.
-.IP \-\-pkglist
-Output a list of package names installed inside the image. Useful if you
-need to track the relevant source packages used inside the image for
-licence compliance.
-.SH Configuration files and settings:
-.IP \-\-dump-config
-write out the entire current configuration
-.IP \-\-no-default-configs
-clear list of configuration files to read
-.IP \-\-config=FILE
-add FILE to config files
-.SH Logging:
-.IP \-\-log=FILE
-write log entries to FILE (default is to not write log files at all);
-use "syslog" to log to system log, or "none" to disable logging
-.IP \-\-log-level=LEVEL
-log at LEVEL, one of debug, info, warning, error, critical, fatal (default: debug)
-.IP \-\-log-max=SIZE
-rotate logs larger than SIZE, zero for never (default: 0)
-.IP \-\-log-keep=N
-keep last N logs (10)
-.IP \-\-log-mode=MODE
-set permissions of new log files to MODE (octal; default 0600)
-.SH Peformance:
-.IP \-\-dump-memory-profile=METHOD
-make memory profiling dumps using METHOD, which is one of:
-none, simple, meliae, or heapy (default: simple)
-.IP \-\-memory-dump-interval=SECONDS
-make memory profiling dumps at least SECONDS apart
-.SH EXAMPLE
-To create an image for the stable release of Debian:
-.IP
-sudo vmdebootstrap \-\-image test.img \-\-size 1g \\
- \-\-log test.log \-\-log-level debug \-\-verbose \\
- \-\-mirror http://mirror.lan/debian/
-.PP
-To run the test image, make sure it is writeable. Use the \-\-owner option to set
-mode 0644 for the specified user or use chmod manually:
-.IP
-sudo chmod a+w ./test.img
-.PP
-Execute using qemu, e.g. on amd64 using qemu-system-x86_64:
-.IP
-qemu-system-x86_64 -drive format=raw,file=./test.img
-.PP
-(This loads the image in a new window.) Note the use of -drive
-file=<img>,format=raw which is needed for newer versions of QEMU.
-.PP
-There is EFI firmware available to use with QEMU when testing images built
-using the UEFI support, but this software is in Debian non-free due to patent
-concerns. If you choose to install
-.B
-ovmf
-to test UEFI builds, a secondary change is also needed to symlink the provided
-OVMF.fd to the file required by QEMU: bios-256k.bin and then tell QEMU about
-the location of this file with the -L option:
-.IP
-$ qemu-system-x86_64 \-L /usr/share/ovmf/ -machine accel=kvm \\
- \-m 4096 \-smp 2 \-drive format=raw,file=test.img
-.PP
-For further examples, including u-boot support for beaglebone-black,
-see /usr/share/vmdebootstrap/examples
-.SH NOTES
-If you get problems with the bootstrap process, run a similar bootstrap
-call directly and chroot into the directory to investigate the failure.
-The actual debootstrap call is part of the vmdebootstrap logfile. The
-debootstrap logfile, if any, will be copied into your current working
-directory on error.
-.PP
-.B debootstrap
-will download all the apt archive files into the apt cache and does not
-remove them before starting the configuration of the packages. This can
-mean that debootstrap can fail due to a lack of space on the device if
-the VM size is small. vmdebootstrap cleans up the apt cache once debootstrap
-has finished but this doesn't help if the package unpack or configuration
-steps use up all of the space in the meantime. Avoid this problem by
-specifying a larger size for the image.
-.PP
-Note that if you are also using a separate /boot partition in your options to
-.B vmdebootstrap
-it may well be the boot partition which needs to be enlarged rather than
-the entire image.
-.PP
-It is advisable to change the mirror in the example scripts to a mirror
-closer to your location, particularly if you need to do repeated builds.
-Use the \-\-apt\-mirror option to specify the apt mirror to be used inside
-the image, after boot.
-.PP
-There are two types of examples for ARM devices available with
-.B vmdebootstrap:
-prebuilt installation images (like the beaglebone-black) and virtual
-machine images (cubietruck and wandboard). ARM devices which do not
-support hypervisor mode and which also rely on the bootloader being at
-a specific offset instead of using a normal partition will
-.B not
-be supportable by vmdebootstrap. Similarly, devices which support
-hypervisor will only be supported using virtual machine images, unless
-the bootloader can be executed from a normal partition.
-.PP
-.SH "SEE ALSO"
-.BR debootstrap (8)
-,
-.BR qemu-system-x86_64 (1)
-,
-.BR grub-install (8)
-.
-.SH BUGS
-Please provide the config section of the logfile when reporting bugs, as well as the complete command line.