LIVE-CONFIG(7)
π NAME π
okay bestie, welcome to live-config(7) from the Live Systems Project π this is the manual for System Configuration Components β the backstage crew that sets up your live system. periodt.
πΈ DESCRIPTION πΈ
live-config contains the components that configure a live system during the boot process (late userspace). it's giving late-stage boot glam β¨
β¨ CONFIGURATION β¨
so live-config can be configured through boot parameters or configuration files. if both mechanisms are used for a certain option, the boot parameters take precedence over the configuration files. when using persistency, live-config components are only run once. no reruns, no drama.
if live-build(7) is used to build the live system, the live-config parameters used by default can be set through the --bootappend-live option, see lb_config(1) manual page. iykyk.
π§© Boot Parameters (components) π§©
live-config is only activated if boot=live is used as a boot parameter. additionally, live-config needs to be told which components to run through the live-config.components parameter or which components to not run through the live-config.nocomponents parameter. if both live-config.components and live-config.nocomponents are used, or, if either one is specified multiple times, always the later one takes precedence over the previous one(s). later = main character, earlier = background extra.
live-config.components|componentsβ all components are run. this is what live images use by default. slay.live-config.components=COMPONENT1,COMPONENT2, ... COMPONENTn|components=COMPONENT1,COMPONENT2, ... COMPONENTnβ only the specified components are run. note that the order matters, e.g.live-config.components=sudo,user-setupwould not work since the user needs to be added before it can be configured for sudo. look at the filenames of the components in/lib/live/configfor their ordering number. order is the blueprint, bestie.live-config.nocomponents|nocomponentsβ no component is run. this is the same as not using any oflive-config.componentsorlive-config.nocomponents.live-config.nocomponents=COMPONENT1,COMPONENT2, ... COMPONENTn|nocomponents=COMPONENT1,COMPONENT2, ... COMPONENTnβ all components are run, except the specified ones. it's giving "everyone but you" energy.
π Boot Parameters (options) π
some individual components can change their behaviour upon a boot parameter. not all, just the ones with main character syndrome.
live-config.debconf-preseed=filesystem|medium|URL1|URL2| ... |URLnordebconf-preseed=medium|filesystem|URL1|URL2| ... |URLnβ allows to fetch and apply one or more debconf preseed files to be applied to the debconf database. note that the URLs must be fetchable bywget(http,ftporfile://). if the file is placed on the live medium, it can be fetched withfile:///lib/live/mount/medium/FILE, or withfile:///FILEif it is in the root filesystem of the live system itself. all preseed files in/lib/live/config-preseed/in the root filesystem of the live system can be automatically enabled with the keywordfilesystem. all preseed files in/live/config-preseed/of the live medium can be automatically enabled with the keywordmedium. if several mechanisms are combined, then filesystem preseed files are applied first, then medium preseed files, and last the network preseed files. first, second, last β lineup is locked. π₯live-config.hostname=HOSTNAME|hostname=HOSTNAMEβ allows to set the hostname of the system. the default isdebian.live-config.username=USERNAME|username=USERNAMEβ allows to set the username that gets created for autologin. the default isuser.live-config.user-default-groups=GROUP1,GROUP2 ... GROUPn|user-default-groups=GROUP1,GROUP2 ... GROUPnβ allows to set the default groups of the users that gets created for autologin is member of. the default isaudio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth. yes, that's the whole group chat.live-config.user-fullname="USER FULLNAME"|user-fullname="USER FULLNAME"β allows to set the fullname of the users that gets created for autologin. on Debian the default isDebian Live user.live-config.locales=LOCALE1,LOCALE2 ... LOCALEn|locales=LOCALE1,LOCALE2 ... LOCALEnβ allows to set the locale of the system, e.g.de_CH.UTF-8. the default isen_US.UTF-8. in case the selected locale is not already available on the system, it is automatically generated on the fly. glow up on demand. β¨live-config.timezone=TIMEZONE|timezone=TIMEZONEβ allows to set the timezone of the system, e.g.Europe/Zurich. the default isUTC.live-config.keyboard-model=KEYBOARD_MODEL|keyboard-model=KEYBOARD_MODELβ allows to change the keyboard model. there is no default value set. no default, no problem.live-config.keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2 ... KEYBOARD_LAYOUTn|keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2 ... KEYBOARD_LAYOUTnβ allows to change the keyboard layouts. if more than one is specified, the tools of the desktop environment will allow to switch it under X11. there is no default value set.live-config.keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2 ... KEYBOARD_VARIANTn|keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2 ... KEYBOARD_VARIANTnβ allows to change the keyboard variants. if more than one is specified, the same number of values as keyboard-layouts values should be specified as they will be matched one-to-one in the order specified. blank values are allowed. the tools of the desktop environment will allow to switch between each layout and variant pair under X11. there is no default value set. matching sets, one-to-one, periodt.live-config.keyboard-options=KEYBOARD_OPTIONS|keyboard-options=KEYBOARD_OPTIONSβ allows to change the keyboard options. there is no default value set.live-config.sysv-rc=SERVICE1,SERVICE2 ... SERVICEn|sysv-rc=SERVICE1,SERVICE2 ... SERVICEnβ allows to disable sysv services throughupdate-rc.d.live-config.utc=yes|no|utc=yes|noβ allows to change if the system is assuming that the hardware clock is set to UTC or not. the default isyes.live-config.x-session-manager=X_SESSION_MANAGER|x-session-manager=X_SESSION_MANAGERβ allows to set the x-session-manager throughupdate-alternatives.live-config.xorg-driver=XORG_DRIVER|xorg-driver=XORG_DRIVERβ allows to set xorg driver instead of autodetecting it. if a PCI ID is specified in/usr/share/live/config/xserver-xorg/DRIVER.idswithin the live system, theDRIVERis enforced for these devices. if both a boot parameter and an override are found, the boot parameter takes precedence. boot parameter wins the argument, no cap.live-config.xorg-resolution=XORG_RESOLUTION|xorg-resolution=XORG_RESOLUTIONβ allows to set xorg resolution instead of autodetecting it, e.g.1024x768.live-config.wlan-driver=WLAN_DRIVER|wlan-driver=WLAN_DRIVERβ allows to set WLAN driver instead of autodetecting it. if a PCI ID is specified in/usr/share/live/config/broadcom-sta/DRIVER.idswithin the live system, theDRIVERis enforced for these devices. if both a boot parameter and an override are found, the boot parameter takes precedence.live-config.hooks=filesystem|medium|URL1|URL2| ... |URLnorhooks=medium|filesystem|URL1|URL2| ... |URLnβ allows to fetch and execute one or more arbitrary files. note that the URLs must be fetchable bywget(http,ftporfile://), the files are executed in/tmpof the running live system, and that the files needs their dependencies, if any, already installed, e.g. if a python script should be executed the system needs python installed. some hooks for some common use-cases are available at/usr/share/doc/live-config/examples/hooks/andhttp://live-systems.org/other/hooks. if the file is placed on the live medium, it can be fetched withfile:///lib/live/mount/medium/FILE, or withfile:///FILEif it is in the root filesystem of the live system itself. all hooks in/lib/live/config-hooks/in the root filesystem of the live system can be automatically enabled with the keywordfilesystem. all hooks in/live/config-hooks/of the live medium can be automatically enabled with the keywordmedium. if several mechanisms are combined, then filesystem hooks are executed first, then medium hooks, and last the network hooks. order: filesystem, medium, network. that's the setlist. π€
π«Ά Boot Parameters (shortcuts) π«Ά
for some common use cases where it would require to combine several individual parameters, live-config provides shortcuts. this allows both to have full granularity over all the options, as well keep things simple. best of both worlds, honestly.
live-config.noroot|norootβ disables sudo and policykit, the user cannot gain root privileges on the system. no root for you, bestie. πlive-config.noautologin|noautologinβ disables both the automatic console login and the graphical autologin.live-config.nottyautologin|nottyautologinβ disables the automatic login on the console, not affecting the graphical autologin.live-config.nox11autologin|nox11autologinβ disables the automatic login with any display manager, not affecting tty autologin.
π₯ Boot Parameters (special options) π₯
for special use cases there are some special boot paramters. (yes, "paramters" β the original said it, i'm keeping it, we don't fix typos in this house unless it's a flag.)
live-config.debug|debugβ enables debug output inlive-config.
π Configuration Files π
live-config can be configured (but not activated) through configuration files. everything but the shortcuts that can be configured with a boot parameter can also alternatively be configured through one or more files. if configuration files are used, the boot=live parameter is still required to activate live-config. activation is not the same as configuration, bestie.
Note: if configuration files are used, either (preferably) all boot parameters should be put into the LIVE_CONFIG_CMDLINE variable, or individual variables can be set. if individual variables are used, the user is required to ensure that all the necessary variables are set to create a valid configuration. don't half-do it, okay?
configuration files can be placed either in the root filesystem itself (/etc/live/config.conf, /etc/live/config.conf.d/*.conf), or on the live media (live/config.conf, live/config.conf.d/*.conf). if both places are used for a certain option, the ones from the live media take precedence over the ones from the root filesystem. live media stays winning.
although the configuration files placed in the configuration directories do not require a particular name, it is suggested for consistency reasons to either use vendor.conf or project.conf as a naming scheme (whereas vendor or project is replaced with the actual name, resulting in a filename like progress-linux.conf). cute naming convention, lowkey iconic.
the actual content of the configuration files consists of one or more of the following variables.
LIVE_CONFIG_CMDLINE=PARAMETER1 PARAMETER2 ... PARAMETERnβ this variable corresponds to the bootloader command line.
...and bestie, the env var squad does not stop. Here's the rest of them, all mapping straight onto their boot-parameter twins π
LIVE_CONFIG_COMPONENTS=COMPONENT1,COMPONENT2, ... COMPONENTnβ this one is the twin of the'live-config.components=COMPONENT1,COMPONENT2, ... COMPONENTn'parameter.LIVE_CONFIG_NOCOMPONENTS=COMPONENT1,COMPONENT2, ... COMPONENTnβ twin of the'live-config.nocomponents=COMPONENT1,COMPONENT2, ... COMPONENTn'parameter.LIVE_DEBCONF_PRESEED=filesystem|medium|URL1|URL2| ... |URLnβ twin of the'live-config.debconf-preseed=filesystem|medium|URL1|URL2| ... |URLn'parameter.LIVE_HOSTNAME=HOSTNAMEβ twin of the'live-config.hostname=HOSTNAME'parameter.LIVE_USERNAME=USERNAMEβ twin of the'live-config.username=USERNAME'parameter.LIVE_USER_DEFAULT_GROUPS=GROUP1,GROUP2 ... GROUPnβ twin of the'live-config.user-default-groups="GROUP1,GROUP2 ... GROUPn"'parameter.LIVE_USER_FULLNAME="USER FULLNAME"β twin of the'live-config.user-fullname="USER FULLNAME"'parameter.LIVE_LOCALES=LOCALE1,LOCALE2 ... LOCALEnβ twin of the'live-config.locales=LOCALE1,LOCALE2 ... LOCALEn'parameter.LIVE_TIMEZONE=TIMEZONEβ twin of the'live-config.timezone=TIMEZONE'parameter.LIVE_KEYBOARD_MODEL=KEYBOARD_MODELβ twin of the'live-config.keyboard-model=KEYBOARD_MODEL'parameter.LIVE_KEYBOARD_LAYOUTS=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2 ... KEYBOARD_LAYOUTnβ twin of the'live-config.keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2 ... KEYBOARD_LAYOUTn'parameter.LIVE_KEYBOARD_VARIANTS=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2 ... KEYBOARD_VARIANTnβ twin of the'live-config.keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2 ... KEYBOARD_VARIANTn'parameter.LIVE_KEYBOARD_OPTIONS=KEYBOARD_OPTIONSβ twin of the'live-config.keyboard-options=KEYBOARD_OPTIONS'parameter.LIVE_SYSV_RC=SERVICE1,SERVICE2 ... SERVICEnβ twin of the'live-config.sysv-rc=SERVICE1,SERVICE2 ... SERVICEn'parameter.LIVE_UTC=yes|noβ twin of the'live-config.utc=yes|no'parameter.LIVE_X_SESSION_MANAGER=X_SESSION_MANAGERβ twin of the'live-config.x-session-manager=X_SESSION_MANAGER'parameter.LIVE_XORG_DRIVER=XORG_DRIVERβ twin of the'live-config.xorg-driver=XORG_DRIVER'parameter.LIVE_XORG_RESOLUTION=XORG_RESOLUTIONβ twin of the'live-config.xorg-resolution=XORG_RESOLUTION'parameter.LIVE_WLAN_DRIVER=WLAN_DRIVERβ twin of the'live-config.wlan-driver=WLAN_DRIVER'parameter.LIVE_HOOKS=filesystem|medium|URL1|URL2| ... |URLnβ twin of the'live-config.hooks=filesystem|medium|URL1|URL2| ... |URLn'parameter.LIVE_CONFIG_DEBUG=true|falseβ twin of the'live-config.debug'parameter.
π CUSTOMIZATION π
live-config is so easy to customize for downstream projects or for your own local little experiments, no cap.
β¨ Adding new config components
Downstream projects can just drop their components into /lib/live/config and honestly that's it β you don't need to do anything else, because the components get called automatically during boot. The way that it just works? Iconic.
The components are best put into an own debian package. A sample package containing an example component can be found in /usr/share/doc/live-config/examples π«Ά
π Removing existing config components
Okay so, ngl, it is not really possible to remove components itself in a sane way yet β not without either shipping a locally modified live-config package or using dpkg-divert. Like, that's just where we're at. However, the same can be achieved by disabling the respective components through the live-config.nocomponents mechanism, see above π And to avoid always having to specify disabled components through the boot parameter, a configuration file should be used, see above.
The configuration files for the live system itself are best put into an own debian package. A sample package containing an example configuration can be found in /usr/share/doc/live-config/examples πΈ
β COMPONENTS β
Right now live-config features the following components in /lib/live/config. Meet the cast π
debconfβ allows to apply arbitrary preseed files placed on the live media or an http/ftp server.hostnameβ configures/etc/hostnameand/etc/hosts.user-setupβ adds a live user account.sudoβ grants sudo privileges to the live user.localesβ configures locales.locales-allβ configures locales-all.tzdataβ configures/etc/timezone.gdm3β configures autologin in gdm3.kdmβ configures autologin in kdm.lightdmβ configures autologin in lightdm.lxdmβ configures autologin in lxdm.nodmβ configures autologin in nodm.slimβ configures autologin in slim.xinitβ configures autologin with xinit.keyboard-configurationβ configures the keyboard.systemdβ configures systemd autologin.sysvinitβ configures sysvinit.sysv-rcβ configures sysv-rc by disabling listed services.loginβ disables lastlog.apportβ disables apport.gnome-panel-dataβ disables lock button for the screen.gnome-power-managerβ disables hibernation.gnome-screensaverβ disables the screensaver locking the screen.kaboomβ disables KDE migration wizard (squeeze and newer).kde-servicesβ disables some unwanted KDE services (squeeze and newer).policykitβ grant user privilegies through policykit.ssl-certβ regenerating ssl snake-oil certificates.anacronβ disables anacron.util-linuxβ disables util-linux' hwclock.loginβ disables lastlog.xserver-xorgβ configures xserver-xorg.broadcom-staβ configures broadcom-sta WLAN drivers.openssh-serverβ recreates openssh-server host keys.xfce4-panelβ configures xfce4-panel to default settings.xscreensaverβ disables the screensaver locking the screen.hooksβ allows to run arbitrary commands from a file placed on the live media or an http/ftp server.
yes bestie, login really does show up twice in that list. We keep the facts exactly as they are. π
π FILES π
All the paths that matter, no gatekeeping:
/etc/live/config.conf/etc/live/config.conf.d/*.conflive/config.conflive/config.conf.d/*.conf/lib/live/config.sh/lib/live/config//var/lib/live/config//var/log/live/config.log/live/config-hooks/*live/config-hooks/*/live/config-preseed/*live/config-preseed/*
π SEE ALSO π
Go read your sisters, they're all slaying in their own lane:
π HOMEPAGE π
More information about live-config and the Live Systems project can be found on the homepage at <http://live-systems.org/> and in the manual at <http://live-systems.org/manual/> πΈ
π BUGS π
Found a bug? Do not suffer in silence bestie π Bugs can be reported by submitting a bugreport for the live-config package in the Bug Tracking System at <http://bugs.debian.org/> or by writing a mail to the Live Systems mailing list at <debian-live@lists.debian.org>.
π AUTHOR π
live-config was written by Daniel Baumann <mail@daniel-baumann.ch>. respect where it's due, king π
And that's a wrap on the whole page π¬ This one is version 5.0~a5-1, dated 2015-09-23, and it's the LIVE-CONFIG(7) manual page. main character energy from start to finish, periodt πβ¨
π¦ where this page comes from
- debian bookworm: open-infrastructure-system-config 20190301-lts1-3 Β· GPL-3.0-or-later
- ubuntu jammy: open-infrastructure-system-config 20190301-lts1-2 Β· GPL-3.0-or-later
- ubuntu noble: open-infrastructure-system-config 20190301-lts1-3 Β· GPL-3.0-or-later
- ubuntu questing: open-infrastructure-system-config 20190301-lts1-5
- ubuntu resolute: open-infrastructure-system-config 20190301-lts1-5build1 Β· GPL-3.0-or-later
- Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms