Scroll to navigation

LIVE-BUILD(1) Debian Live Project LIVE-BUILD(1)

NAME

lb_config - Create config directory

SYNOPSIS

lb config {-h|--help|-u|--usage|-v|--version}

lb config
[--apt apt|apt-get|aptitude]
[--apt-http-proxy URL]
[--apt-indices true|false]
[--apt-options OPTION|"OPTIONS"]
[--apt-pipeline DEPTH]
[--apt-recommends true|false]
[--apt-secure true|false]
[--apt-source-archives true|false]
[--aptitude-options OPTION|"OPTIONS"]
[-a|--architecture ARCHITECTURE]
[--archive-areas ARCHIVE_AREA|"ARCHIVE_AREAS"]
[--backports true|false]
[--binary-filesystem fat16|fat32|ext2|ext3|ext4|ntfs]
[-b|--binary-image iso|iso-hybrid|netboot|tar|hdd]
[--bootappend-install PARAMETER|"PARAMETERS"]
[--bootappend-live PARAMETER|"PARAMETERS"]
[--bootappend-live-failsafe PARAMETER|"PARAMETERS"]
[--bootloaders grub-legacy|grub-pc|syslinux|grub-efi|"BOOTLOADERS"]
[--bootstrap-qemu-arch ARCH]
[--bootstrap-qemu-exclude PACKAGE|"PACKAGES"]
[--bootstrap-qemu-static PATH]
[--breakpoints]
[--build-with-chroot true|false]
[--cache true|false]
[--cache-indices true|false]
[--cache-packages true|false]
[--cache-stages bootstrap|chroot|rootfs|"STAGES"]
[--checksums md5|sha1|sha224|sha256|sha384|sha512|none]
[--chroot-filesystem ext2|ext3|ext4|squashfs|jffs2|none|plain]
[--chroot-squashfs-compression-level LEVEL]
[--chroot-squashfs-compression-type gzip|lzma|lzo|lz4|xz|zstd]
[--clean]
[--color]
[--compression bzip2|gzip|lzip|xz|none]
[-c|--conffile FILE]
[--config GIT_URL::GIT_BRANCH]
[--debconf-frontend dialog|editor|noninteractive|readline]
[--debconf-priority low|medium|high|critical]
[--debian-installer cdrom|netinst|netboot|businesscard|live|none]
[--debian-installer-distribution daily|git|CODENAME]
[--debian-installer-gui true|false]
[--debian-installer-preseedfile FILE|URL]
[--debootstrap-options OPTION|"OPTIONS"]
[--debootstrap-script SCRIPT]
[--debug]
[-d|--distribution CODENAME]
[--distribution-chroot CODENAME]
[--distribution-binary CODENAME]
[--dm-verity]
[--dm-verity-fec NB_ROOTS]
[--dm-verity-sign SIGN_SCRIPT]
[--dump]
[--firmware-binary true|false]
[--firmware-chroot true|false]
[--force]
[--gzip-options OPTION|"OPTIONS"]
[--hdd-label LABEL]
[--hdd-partition-start START]
[--hdd-size SIZE]
[--ignore-system-defaults]
[--image-name NAME]
[--initramfs none|live-boot]
[--initramfs-compression bzip2|gzip|lzma]
[--initsystem sysvinit|systemd|none]
[--interactive true|shell|x11|xnest|false]
[--iso-application NAME]
[--iso-preparer NAME]
[--iso-publisher NAME]
[--iso-volume NAME]
[--jffs2-eraseblock SIZE]
[--keyring-packages PACKAGE|"PACKAGES"]
[-k|--linux-flavours FLAVOUR|"FLAVOURS"]
[--linux-packages PACKAGE|"PACKAGES"]
[--loadlin true|false]
[--memtest memtest86+|memtest86|none]
[--mirror-binary URL]
[--mirror-binary-security URL]
[--mirror-bootstrap URL]
[--mirror-chroot URL]
[--mirror-chroot-security URL]
[--mirror-debian-installer URL]
[--mode debian]
[--net-tarball true|false]
[--no-color]
[--onie true|false]
[--onie-kernel-cmdline OPTION|"OPTIONS"]
[--parent-archive-areas ARCHIVE_AREA|"ARCHIVE_AREAS"]
[--parent-debian-installer-distribution daily|git|CODENAME]
[--parent-distribution CODENAME]
[--parent-distribution-chroot CODENAME]
[--parent-distribution-binary CODENAME]
[--parent-mirror-binary URL]
[--parent-mirror-binary-security URL]
[-m|--parent-mirror-bootstrap URL]
[--parent-mirror-chroot URL]
[--parent-mirror-chroot-security URL]
[--parent-mirror-debian-installer URL]
[--quiet]
[--security true|false]
[--source true|false]
[-s|--source-images iso|netboot|tar|hdd|"IMAGES"]
[--swap-file-path PATH]
[--swap-file-size MB]
[--system live|normal]
[--uefi-secure-boot auto|enable|disable]
[--updates true|false]
[--utc-time true|false]
[--validate]
[--verbose]
[--win32-loader true|false]
[--zsync true|false]

DESCRIPTION

lb config is a high-level command (porcelain) of live-build(7), the Debian Live tool suite.

lb config populates the configuration directory for live-build. This directory is named 'config' and is created in the current directory where lb config was executed.

Note: lb config tries to be smart and sets defaults for some options depending upon the settings of others. However, this only typically happens when no existing saved config exists, because values are only automatically set when not already defined (and running lb config involves loading any existing config). This means that when generating a new configuration, you should typically first ensure that any existing saved config files are removed (by deletion of config/{binary,bootstrap,chroot,common,source}), before then calling lb config just once with all necessary options specified. Calling it when an existing saved config exists risks ending up with a non-working configuration, depending on the options changed, since in doing so other options may end up with different values than they otherwise might have had had automatic setting of them not been blocked by an existing saved value. In some cases invalid combinations will be noticed and reported as an error or warning, but this is not always the case and should not be relied upon.

OPTIONS

In addition to its specific options lb config understands all generic live-build options. See live-build(7) for a complete list of all generic live-build options.

defines if apt-get or aptitude is used to install packages when building the image. The default is apt.
sets the proxy for HTTP connections. By default, this is empty. It is recommended to use the environment variable http_proxy instead.
defines if the resulting images should have apt indices or not and defaults to true.
defines the default options that will be appended to every apt call that is made inside chroot during the building of the image. By default, this is set to '--yes' to allow non-interactive installation of packages.
sets the depth of the apt/aptitude pipeline. In cases where the remote server is not RFC conforming or buggy (such as Squid 2.0.2) this option can be a value from 0 to 5 indicating how many outstanding requests apt should send. A value of zero MUST be specified if the remote host does not properly linger on TCP connections - otherwise data corruption will occur. Hosts which require this are in violation of RFC 2068. By default, live-build does not set this option.
defines if apt should install recommended packages automatically. By default, this is true.
defines if apt should check repository signatures. This is true by default.
defines if deb-src entries should be included in the resulting live image's apt sources.list or not, defaults to true.
defines the default options that will be appended to every aptitude call that is made inside chroot during building of the image. By default, this is set to '--assume-yes' to allow non-interactive installation of packages.
defines the architecture of the to be built image. By default, this is set to the host architecture. Note that you cannot crossbuild for another architecture if your host system is not able to execute binaries for the target architecture natively. For example, building amd64 images on i386 and vice versa is possible if you have a 64bit capable i386 processor and the right kernel. But building powerpc images on an i386 system is not possible.
defines which package archive areas (a comma or space separated list) of a debian package archive should be used for configured debian package mirrors. By default, this is set to main only. Remember to check the licenses of each package with respect to their redistributability in your juristiction when enabling contrib or non-free with this mechanism.
defines if debian backports package archives should be included in the image or not.
defines the filesystem to be used in the image type. This only has an effect if the selected binary image type lets you choose a filesystem. For example, for the ISO image type the resulting CD/DVD always has the filesystem ISO9660. When building HDD images for USB sticks, multiple filesystem formats are supported, thus this becomes applicable to allow selection. Note that it defaults to 'fat32' on all architectures. Also note that if you choose 'fat16' and your resulting binary image gets bigger than 2GB, the binary filesystem automatically gets switched to 'fat32'.
defines the image type to build. By default, for images using syslinux, this is set to 'iso-hybrid' to build CD/DVD images that may also be used like HDD images, for non-syslinux images, it defaults to 'iso'.
sets boot parameters specific to debian-installer, if included.
sets boot parameters specific to debian-live. A complete list of boot parameters can be found in the live-boot(7) and live-config(7) manual pages.
sets boot parameters specific to debian-live failsafe boot entries. A complete list of boot parameters can be found in the live-boot(7) and live-config(7) manual pages.
defines which bootloaders to use in the generated image. This only has an effect if the selected binary image type lets you choose the bootloader. For example, if you build an ISO then syslinux (or more precise, isolinux) is always used. Also note that not all combinations of binary image types and bootloaders are supported (lb config will fail to create such an unsupported configuration and will give a explanation about it). For HDD images on amd64 and i386, the default is 'syslinux'. This option supports more than one bootloader to be specified (space or comma separated) in order to allow for both BIOS and EFI bootloaders to be included, though note that only one of each type can be used (i.e. do not try to use two BIOS bootloaders).
sets the architecture to use for foreign bootstrap. Defaults to empty.
sets the packages to exclude during foreign bootstrap. Defaults to empty.
sets the static qemu binary for foreign bootstrap. Defaults to empty.
inserts pauses during the generation of the image, where breakpoints have been placed, if any (development oriented).
defines whether live-build should use the tools from within the chroot to build the binary image or not by using and including the host system's tools. This is a very dangerous option, using the tools of the host system can lead to tainted and even non-bootable images if the host systems version of the required tools (mainly these are the bootloaders such as syslinux and grub, and the auxiliary tools such as dosfstools, xorriso, squashfs-tools and others) do not exactly match what is present at build-time in the target distribution. Never disable this option unless you are exactly sure what you are doing and have completely understood its consequences.
defines globally if any cache should be used at all. Different caches can be controlled through their own options.
defines if downloaded package indices and lists should be cached. This is false by default. Enabling it lets you rebuild an image completely offline, however, you would not get updates anymore then.
defines if downloaded packages files should be cached. This is true by default. Disabling it does save space consumption in your build directory, but remember that you will cause much unnecessary traffic if you do a couple of rebuilds. In general you should always leave it true, however, in some particular rare build setups, it can be faster to refetch packages from the network mirror, if using a local one, rather than to utilize the local disk.
sets which stages should be cached (a comma or space separated list). By default this is set to 'bootstrap'. As an exception to the normal stage names, 'rootfs' can also be used here which means only cache the generated root filesystem in filesystem.{dir,ext*,squashfs}. This is useful during development if you want to rebuild the binary stage but not regenerate the root filesystem all the time.
defines if the binary image should contain a file called XXXsums.txt, where XXX is one of the mentioned checksum types. This file lists all files on the image together with their checksums. This in turn can be used by live-boot(7)'s built-in integrity-check to verify the medium if specified at boot prompt. In general, this should not be 'none' and is an important feature of live system released to the public. However, during development of very big images it can save some time by not calculating the checksums.
defines which filesystem type should be used for the root filesystem image. If you use 'none' or 'plain', then no filesystem image is created and the root filesystem content is copied on the binary image filesystem as flat files. Depending on what binary filesystem you have chosen, it may not be possible to build with such a plain root filesystem, e.g. fat16/fat32 will not work as linux does not support running directly on them.
defines the compression level that is used for the root filesystem image if squashfs is used. Each compression algorithm supports different levels (or none). You can look them up in the mksquashfs help. Defaults to the default setting in mksquashfs.
defines the compression algorithm that is used for the root filesystem image if squashfs is used. Defaults to xz.
minimizes config directory by automatically removing unused and thus empty subdirectories.
turns on color in the messages.
defines the compression program to be used to compress tarballs. Defaults to none.
defines a user specified alternative configuration file to use in addition to the normally used one in the config directory.
bootstraps the config tree from a git repository, optionally appended by a Git ID (branch, commit, tag, etc.).
defines what value the debconf frontend should be set to inside the chroot. Note that setting it to anything but 'noninteractive', which is the default, makes your build asking questions during the build.
defines what value the debconf priority should be set to inside the chroot. By default, it is set to critical, which means that almost no questions are displayed. Note that this only has an effect if you use any debconf frontend different from noninteractive.
defines which type, if any, of the debian-installer should be included in the resulting binary image. By default, no installer is included. All available flavours except live are the identical configurations used on the installer media produced by regular debian-cd. When live is chosen, the live-installer udeb is included so that debian-installer will behave different than usual - instead of installing the debian system from packages from the medium or the network, it installs the live system to the disk.
defines the distribution where the debian-installer files should be taken out from. Normally, this should be set to the same distribution as the live system. However, sometimes, one wants to use a newer or even either the daily built installer or the installer rebuilt from its git repository.
defines whether the graphical version of the debian-installer should be provided alongside the text based one. This defaults to true.
sets the filename or URL for an optionally used and included preseeding file for debian-installer. If config/binary_debian-installer/preseed.cfg exists, it will be used by default.
passes the given options to debootstrap when setting up the base system.
tells debootstrap to use an alternate bootstrap script (last parameter to debootstrap).
turns on debugging informational messages.
defines the distribution of the resulting live system. This currently defaults to 'buster'. The value 'sid' can be used for Debian unstable.
defines the distribution enabled in the resulting live system (defaults to the value set in --distribution)
defines the distribution used to build the live system (defaults to the value set in --distribution)
Enables dm-verity support for root file system. Only squashfs, ext2, ext3 and ext4 are supported. For more information see live-boot(7).
Enables forward error correction for dm-verity. NB_ROOTS is the number of error correction roots thas should be used. The value can be between 2 and 24. Android uses 2 by default.
Sign root hash of dm-verity device. Script takes two arguments: the root hash and a file to output the signature to.
prepares a report of the currently present live system configuration and the version of live-build used. This is useful to provide if you submit bug reports, helping to provide basic useful information required for us to locate and replicate an error.
includes firmware packages in debian-installer. Defaults to true.
includes firmware packages in the live image. Defaults to true. Beware that some firmware packages are non-free and will only be included if the non-free archive area is included in --archive-areas (and --parent-archive-areas). This is particularly relevant if you want working wifi for instance.
forces re-execution of already run stages. Use only if you know what you are doing. It is generally safer to use lb clean to clean up before re-executing lb build.
defines the default options that will be appended to (almost) every gzip call during the building of the image. By default, this is set to '--best' to use highest (but slowest) compression. Dynamically, if the host system supports it, also '--rsyncable' is added.
defines the label for the HDD target. Defaults to 'DEBIAN_LIVE'.
sets the start of the partition for the HDD target for BIOSes that expect a specific boot partition start (e.g. "63s"). If empty, use optimal layout. Defaults to empty.
defines the size for the HDD target. The unit is MiB. Defaults to 'auto', which generates the smallest possible image.
lb config by default reads system defaults from /etc/live/build.conf and /etc/live/build/* when generating a new live system config directory. This is useful if you want to set global settings, such as mirror locations, and don't want to specify them all of the time. This option allows you to ignore such global settings.
sets the base name of the image. Defaults to live-image.
sets the name of the package that contains the live system specific initramfs modification and defaults to live-boot. Using 'none' is useful if the resulting system image should not be a live image (experimental).
defines the compression program to be used to compress the initramfs. Defaults to 'gzip'.
defines the init system. Defaults to 'systemd'.
defines if after the chroot stage and before the beginning of the binary stage, an interactive shell login should be spawned in the chroot in order to allow you to do manual customizations, or as an alternative to 'true' and 'false' a specific shell to use (note that 'true' corresponds to a value of 'shell'). Once you close the shell with logout or exit, the build will continue as usual. Note that it's strongly discouraged to use this for anything else than testing. Modifications that should be present in all builds of a live system should be properly made through hooks. Everything else destroys the beauty of being able to completely automate the build process and making it non-interactive. By default, this is of course 'false'.
sets the APPLICATION field in the header of a resulting CD/DVD image and defaults to "Debian Live".
sets the PREPARER field in the header of a resulting CD/DVD image. By default this is set to "live-build VERSION; https://salsa.debian.org/live-team/live-build", where VERSION is expanded to the version of live-build that was used to build the image.
sets the PUBLISHED field in the header of a resulting CD/DVD image. By default, this is set to 'Debian Live project; https://wiki.debian.org/DebianLive; debian-live@lists.debian.org'. Remember to change this to the appropriate value when distributing custom and unofficial images.
sets the VOLUME field in the header of a resulting CD/DVD and defaults to 'Debian (DISTRIBUTION) (DATE)' where DISTRIBUTION is replaced with the distribution name, and DATE with the current date and time of the generation.
sets the eraseblock size for a JFFS2 (Second Journaling Flash File System) filesystem. The default is 64 KiB. If you use an erase block size different than the erase block size of the target MTD device, JFFS2 may not perform optimally. If the SIZE specified is below 4096, the units are assumed to be KiB.
sets the keyring package or additional keyring packages (a space separated list). By default this is set to 'debian-archive-keyring'.
sets the kernel flavours to be installed (a space separated list). Note that in case you specify more than one the first will be configured as the default kernel that gets booted. Optionally you can use an architecture qualifier, e.g. amd64:amd64. Given an i386 system you can enable amd64 foreign architecture thanks to the commands: "dpkg --add-architecture amd64 ; apt-get update". This enables you to use "686 amd64:amd64" as a linux flavour. The amd64 kernel will be installed alongside the i386's 686 kernel.
defines a space separated list of partial kernel package names. For each name given and for each flavour in LB_LINUX_FLAVOURS_WITH_ARCH (--linux-flavours), '-FLAVOUR' will be appended to the name to get the names of kernel packages to be included. By default this is 'linux-image'. So for instance if this is set to "linux-image linux-headers" and LB_LINUX_FLAVOURS_WITH_ARCH is "i386 amd64:amd64" then you will get the four packages "linux-image-i386", "linux-image-amd64:amd64", "linux-headers-i386" and "linux-headers-amd64:amd64". You can specify "none" to disable the kernel installation step.
sets loadlin. Defaults to false, except when the debian-installer is included for x86_64 or i386.
defines if memtest, memtest86+ or no memory tester at all should be included (available as a bootloader menu entry). This is only available on amd64 and i386 and defaults to memtest86+.
sets the location of the derivative package mirror that should end up configured in the final image and which is the one a user would see and use. This has not necessarily to be the same that is used to build the image, e.g. if you use a local mirror but want to have an official mirror in the image. This defaults to 'http://deb.debian.org/debian/'.
sets the location of the derivatives security package mirror that should end up configured in the final image. This defaults to 'http://security.debian.org/'.
sets the location of the debian package mirror that should be used to bootstrap the derivative from. This defaults to 'http://deb.debian.org/debian/'.
sets the location of the debian package mirror that will be used to fetch the packages of the derivative in order to build the live system. By default, this is set to the value of --mirror-bootstrap.
sets the location of the debian security package mirror that will be used to fetch the packages of the derivative in order to build the live system. By default, this points to 'http://security.debian.org/'.
sets the location of the mirror that will be used to fetch the debian installer images of the derivative. By default, this points to the same mirror used to build the live system, i.e. the value of --mirror-chroot.
defines a global mode to load project specific defaults. By default this is set to debian.
defines if a compressed tarball should be created. If disabled, the plain binary directory is considered the output. Default is true.
turns off color in the messages.
defines if an ONIE.bin image is generated. ONIE binaries can be loaded by supported systems, and will in turn boot the live image. Note that ISO or hybrid-iso are the only formats supported. For more information visit <http://onie.org/>. Default is false.
defines additional kernel command line options that the ONIE system will use when booting the image. Default is empty string.
defines the archive areas for derivatives of the resulting live system (a comma or space separated list).
defines the parent debian-installer distribution for derivatives of the resulting live system.
defines the parent distribution for derivatives of the resulting live system.
defines the derivative's parent distribution enabled in the resulting live system.
defines the derivative's parent distribution used to build the live system.
sets the location of the debian package mirror that should end up configured in the final image and which is the one a user would see and use. This has not necessarily to be the same that is used to build the image, e.g. if you use a local mirror but want to have an official mirror in the image. This defaults to the value of --mirror-binary.
sets the location of the debian security package mirror that should end up configured in the final image. This defaults to the value of --mirror-binary-security.
sets the location of the debian package mirror that should be used to bootstrap from. This defaults to the value of --mirror-bootstrap.
sets the location of the debian package mirror that will be used to fetch the packages in order to build the live system. This defaults to the value of --parent-mirror-bootstrap.
sets the location of the debian security package mirror that will be used to fetch the packages in order to build the live system. This defaults to the value of --mirror-chroot-security.
sets the location of the mirror that will be used to fetch the debian installer images. This defaults to the value of --parent-mirror-chroot.
reduces the verbosity of messages output by lb build.
defines if the security repositories specified in the security mirror options should be used or not.
defines if a corresponding source image to the binary image should be built. By default this is false because most people do not require this and it involves downloading quite a few source packages. However, if you distribute your live image to others, you should make sure you build it with a source image alongside to help enable you to comply with licensing terms.
defines the image type for the source image. Default is tar. More than one can be specified (a comma or space separated list).
defines the path to a swap file to create in the binary image. Default is not to create a swap file.
defines what size in megabytes the swap file should be, if one is to be created. Default is 512MB.
defines if the resulting system image should be a live system or a normal, non-live system. Defaults to live.
enables or disables Secure Boot support when using grub-efi, by installing signed shim and grub-efi packages. By default, this is set to auto, which means if the packages are available they will be installed, but if not only a warning will be printed and the normal non-signed grub-efi will be used.
defines if debian updates package archives should be included in the image or not.
defines if timestamps should be UTC. Default is false, unless SOURCE_DATE_EPOCH is set. Note, this does not affect the build log which remains local time.
requests that the config be validated only, not changed, thus after the validation check the script ends rather than writing an updated config. Please note that at the time of writing, many options do not have corresponding validation checks.
increases the verbosity of messages output by lb build.
defines if win32-loader should be included in the binary image or not.
defines whether a file for distributing the image in zsync(1) format will be generated. Defaults to true.

ENVIRONMENT

Currently, command line switches can also be specified through the corresponding environment variable. However, this generally should not be relied upon, as it is an implementation detail that is subject to change in future releases. For options applying directly to live-build, environment variables are named LB_FOO, meaning, e.g. --apt-http-proxy becomes LB_APT_HTTP_PROXY (the exception being internal options such as --debug). For options passed to another program, as in APT_OPTIONS or GZIP_OPTIONS, no LB_ prefix is used.

FILES

/etc/live/build.conf, /etc/live/build/*
An optional, global configuration file for lb config variables. It is useful to specify a few system wide defaults, like LB_PARENT_MIRROR_BOOTSTRAP. This feature can be disabled by using the --ignore-system-defaults option.

SEE ALSO

live-build(7)

live-boot(7)

live-config(7)

This program is a part of live-build.

HOMEPAGE

More information about live-build and the Debian Live project can be found on the homepage at <https://wiki.debian.org/DebianLive>.

BUGS

Bugs can be reported by submitting a bug report for the live-build package in the Bug Tracking System at <http://bugs.debian.org/> or by writing a mail to the Debian Live mailing list at <debian-live@lists.debian.org>.

AUTHOR

live-build was originally written by Daniel Baumann <mail@daniel-baumann.ch>. Since 2016 development has been continued by the Debian Live team.

2024-08-09 1:20240810