{
    "mode": "man",
    "parameter": "KERNEL-INSTALL",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/KERNEL-INSTALL/8/json",
    "generated": "2026-10-04T14:27:55Z",
    "synopsis": "kernel-install [OPTIONS...] add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE...]\nkernel-install [OPTIONS...] remove KERNEL-VERSION\nkernel-install [OPTIONS...] inspect [KERNEL-VERSION] [KERNEL-IMAGE] [INITRD-FILE...]\nkernel-install [OPTIONS...] list",
    "sections": {
        "NAME": {
            "content": "kernel-install - Add and remove kernel and initrd images to and from /boot\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "kernel-install [OPTIONS...] add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE...]\n\nkernel-install [OPTIONS...] remove KERNEL-VERSION\n\nkernel-install [OPTIONS...] inspect [KERNEL-VERSION] [KERNEL-IMAGE] [INITRD-FILE...]\n\nkernel-install [OPTIONS...] list\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "kernel-install is used to install and remove kernel and initrd images [1] to and from the\nboot loader partition, referred to as $BOOT here. It will usually be one of /boot/, /efi/, or\n/boot/efi/, see below.\n\nkernel-install will run the executable files (\"plugins\") located in the directory\n/usr/lib/kernel/install.d/ and the local administration directory /etc/kernel/install.d/. All\nfiles are collectively sorted and executed in lexical order, regardless of the directory in\nwhich they live. However, files with identical filenames replace each other. Files in\n/etc/kernel/install.d/ take precedence over files with the same name in\n/usr/lib/kernel/install.d/. This can be used to override a system-supplied executables with a\nlocal file if needed; a symbolic link in /etc/kernel/install.d/ with the same name as an\nexecutable in /usr/lib/kernel/install.d/, pointing to /dev/null, disables the executable\nentirely. Executables must have the extension \".install\"; other extensions are ignored.\n\nAn executable placed in these directories should return 0 on success. It may also return 77\nto cause the whole operation to terminate (executables later in lexical order will be\nskipped).\n",
            "subsections": []
        },
        "COMMANDS": {
            "content": "The following commands are understood:\n\nadd [[[KERNEL-VERSION] KERNEL-IMAGE] [INITRD-FILE ...]]\nThis command takes a kernel version string and a path to a kernel image file as\narguments. If the former is omitted, specified as an empty string or as \"-\" it defaults\nto the current kernel version, i.e. the same string uname -r returns. If the latter is\nomitted, specified as an empty string or as \"-\" defaults to\n/usr/lib/modules/KERNELVERSION/vmlinuz. Optionally, one or more initrd images may be\nspecified as well (note that plugins might generate additional ones).\n\nThe executable files from /usr/lib/kernel/install.d/*.install and\n/etc/kernel/install.d/*.install (i.e. the plugins) are called with the following\narguments:\n\nadd KERNEL-VERSION $BOOT/ENTRY-TOKEN/KERNEL-VERSION/ KERNEL-IMAGE \\\n[INITRD-FILE ...]\n\nThe third argument directly refers to the path where to place kernel images, initrd\nimages and other resources for Boot Loader Specification[2] Type #1 entries (the \"entry\ndirectory\"). If other boot loader schemes are used the parameter may be ignored.\n\nThe ENTRY-TOKEN string is typically the machine ID and is supposed to identify the local\ninstallation on the system. For details see below.\n\nTwo default plugins execute the following operations in this case:\n\n•   kernel-install creates $BOOT/ENTRY-TOKEN/KERNEL-VERSION, if enabled (see\n$KERNELINSTALLLAYOUT).\n\n•   50-depmod.install runs depmod(8) for the KERNEL-VERSION.\n\n•   90-loaderentry.install copies KERNEL-IMAGE to $BOOT/ENTRY-TOKEN/KERNEL-VERSION/linux.\nIf INITRD-FILEs are provided, it also copies them to\n$BOOT/ENTRY-TOKEN/KERNELVERSION/INITRD-FILE. This can also be used to prepend\nmicrocode before the actual initrd. It also creates a boot loader entry according to\nthe Boot Loader Specification[2] (Type #1) in\n$BOOT/loader/entries/ENTRY-TOKEN-KERNEL-VERSION.conf. The title of the entry is the\nPRETTYNAME parameter specified in /etc/os-release or /usr/lib/os-release (if the\nformer is missing), or \"Linux KERNEL-VERSION\", if unset.\n\nIf $KERNELINSTALLLAYOUT is not \"bls\", this plugin does nothing.\n\n•   90-uki-copy.install copies a file uki.efi from $KERNELINSTALLSTAGINGAREA or if it\ndoes not exist the KERNEL-IMAGE argument, only if it has a \".efi\" extension, to\n$BOOT/EFI/Linux/ENTRY-TOKEN-KERNEL-VERSION.efi.\n\nIf $KERNELINSTALLLAYOUT is not \"uki\", this plugin does nothing.\n\nAdded in version 198.\n",
            "subsections": [
                {
                    "name": "add-all",
                    "content": "This is the same as add (see above), but invokes the operation iteratively for every\ninstalled kernel in /usr/lib/modules/. This operation is only supported on systems where\nthe kernel image is installed in /usr/lib/modules/KERNEL-VERSION/vmlinuz.\n\nAdded in version 255.\n\nremove KERNEL-VERSION\nThis command expects a kernel version string as single argument.\n\nThe executable files from /usr/lib/kernel/install.d/*.install and\n/etc/kernel/install.d/*.install (i.e. the plugins) are called with the following\narguments:\n\nremove KERNEL-VERSION $BOOT/ENTRY-TOKEN/KERNEL-VERSION/\n\nAfterwards, kernel-install removes the entry directory $BOOT/ENTRY-TOKEN/KERNEL-VERSION/\nand its contents, if it exists.\n\nTwo default plugins execute the following operations in this case:\n\n•   50-depmod.install removes the files generated by depmod for this kernel again.\n\n•   90-loaderentry.install removes the file\n$BOOT/loader/entries/ENTRY-TOKEN-KERNEL-VERSION.conf.\n\n•   90-uki-copy.install removes the file $BOOT/EFI/Linux/ENTRY-TOKEN-KERNEL-VERSION.efi.\n\nAdded in version 198.\n\ninspect [[[KERNEL-VERSION] KERNEL-IMAGE] [INITRD-FILE ...]]\nTakes the same parameters as add.\n\nShows the various paths and parameters configured or auto-detected. In particular shows\nthe values of the various $KERNELINSTALL* environment variables listed below, as they\nwould be passed to plugins. The --json option can be used to get the output of this verb\nas a JSON object.\n\nAdded in version 251.\n"
                },
                {
                    "name": "list",
                    "content": "Shows the various installed kernels. This enumerates the subdirectories of\n/usr/lib/modules/, and shows whether a kernel image is installed there.\n\nAdded in version 255.\n"
                }
            ]
        },
        "COMPATIBILITY WITH THE KERNEL BUILD SYSTEM": {
            "content": "installkernel [OPTIONS...] VERSION VMLINUZ [MAP] [INSTALLATION-DIR]\n\nWhen invoked as installkernel, this program accepts arguments as specified by the kernel\nbuild system's make install command. The VERSION and VMLINUZ parameters specify the kernel\nversion and the kernel binary. The other two parameters (MAP and INSTALLATION-DIR) are\ncurrently ignored.\n\nTHE $BOOT PARTITION\nThe partition where the kernels and Boot Loader Specification[2] snippets are located is\ncalled $BOOT.  kernel-install determines the location of this partition by checking /efi/,\n/boot/, and /boot/efi/ in turn. The first location where $BOOT/loader/entries/ or\n$BOOT/ENTRY-TOKEN/ exists is used.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "The following options are understood:\n",
            "subsections": [
                {
                    "name": "--esp-path=",
                    "content": "Path to the EFI System Partition (ESP). If not specified, /efi/, /boot/, and /boot/efi/\nare checked in turn. It is recommended to mount the ESP to /efi/, if possible.\n"
                },
                {
                    "name": "--boot-path=",
                    "content": "Path to the Extended Boot Loader partition, as defined in the Boot Loader\nSpecification[2]. If not specified, /boot/ is checked. It is recommended to mount the\nExtended Boot Loader partition to /boot/, if possible.\n"
                },
                {
                    "name": "--make-entry-directory=yes|no|auto",
                    "content": "Controls creation and deletion of the Boot Loader Specification[2] Type #1 entry\ndirectory on the file system containing resources such as kernel and initrd images during\nadd and remove, respectively. The directory is named after the entry token, and is placed\nimmediately below the boot root directory. When \"auto\", the directory is created or\nremoved only when the install layout is \"bls\". Defaults to \"auto\".\n\nAdded in version 254.\n",
                    "long": "--make-entry-directory",
                    "arg": "yes|no|auto"
                },
                {
                    "name": "--entry-token=",
                    "content": "Controls how to name and identify boot loader entries for this kernel installation or\ndeletion. Takes one of \"auto\", \"machine-id\", \"os-id\", \"os-image-id\", or an arbitrary\nstring prefixed by \"literal:\" as argument.\n\nIf set to machine-id the entries are named after the machine ID of the running system\n(e.g.  \"b0e793a9baf14b5fa13ecbe84ff637ac\"). See machine-id(5) for details about the\nmachine ID concept and file.\n\nIf set to os-id the entries are named after the OS ID of the running system, i.e. the ID=\nfield of os-release(5) (e.g.  \"fedora\"). Similarly, if set to os-image-id the entries are\nnamed after the OS image ID of the running system, i.e. the IMAGEID= field of os-release\n(e.g.  \"vendorx-cashier-system\").\n\nIf set to auto (the default), the /etc/kernel/entry-token (or\n$KERNELINSTALLCONFROOT/entry-token) file will be read if it exists, and the stored\nvalue used. Otherwise if the local machine ID is initialized it is used. Otherwise\nIMAGEID= from os-release will be used, if set. Otherwise, ID= from os-release will be\nused, if set. Otherwise a randomly generated machine ID is used.\n\nUsing the machine ID for naming the entries is generally preferable, however there are\ncases where using the other identifiers is a good option. Specifically: if the\nidentification data that the machine ID entails shall not be stored on the (unencrypted)\n$BOOTROOT partition, or if the ID shall be generated on first boot and is not known when\nthe entries are prepared. Note that using the machine ID has the benefit that multiple\nparallel installations of the same OS can coexist on the same medium, and they can update\ntheir boot loader entries independently. When using another identifier (such as the OS ID\nor the OS image ID), parallel installations of the same OS would try to use the same\nentry name. To support parallel installations, the installer must use a different entry\ntoken when adding a second installation.\n\nAdded in version 254.\n"
                },
                {
                    "name": "-v --verbose",
                    "content": "Output additional information about operations being performed.\n\nAdded in version 242.\n\n--root=root\nTakes a directory path as an argument. All paths will be prefixed with the given\nalternate root path, including config search paths. This is useful to operate on a system\nimage mounted to the specified directory instead of the host system itself.\n\nAdded in version 255.\n\n--image=image\nTakes a path to a disk image file or block device node. If specified, all operations are\napplied to the file system in the indicated disk image. This option is similar to\n--root=, but operates on file systems stored in disk images or block devices. The disk\nimage should either contain just a file system or a set of file systems within a GPT\npartition table, following the Discoverable Partitions Specification[3]. For further\ninformation on supported disk images, see systemd-nspawn(1)'s switch of the same name.\n\nAdded in version 255.\n",
                    "flag": "-v",
                    "long": "--verbose"
                },
                {
                    "name": "-h --help",
                    "content": "Print a short help text and exit.\n",
                    "flag": "-h",
                    "long": "--help"
                },
                {
                    "name": "--version",
                    "content": "Print a short version string and exit.\n",
                    "long": "--version"
                },
                {
                    "name": "--no-pager",
                    "content": "Do not pipe output into a pager.\n\n--json=MODE\nShows output formatted as JSON. Expects one of \"short\" (for the shortest possible output\nwithout any redundant whitespace or line breaks), \"pretty\" (for a pretty version of the\nsame, with indentation and line breaks) or \"off\" (to turn off JSON output, the default).\n\n--image-policy=policy\nTakes an image policy string as argument, as per systemd.image-policy(7). The policy is\nenforced when operating on the disk image specified via --image=, see above. If not\nspecified defaults to the \"*\" policy, i.e. all recognized file systems in the image are\nused.\n",
                    "long": "--no-pager"
                },
                {
                    "name": "--no-legend",
                    "content": "Do not print the legend, i.e. column headers and the footer with hints.\n",
                    "long": "--no-legend"
                }
            ]
        },
        "ENVIRONMENT VARIABLES": {
            "content": "",
            "subsections": [
                {
                    "name": "Environment variables exported for plugins",
                    "content": "If --verbose is used, $KERNELINSTALLVERBOSE=1 will be exported for plugins. They may output\nadditional logs in this case.\n\n$KERNELINSTALLIMAGETYPE=uki|pe|unknown is set for the plugins to specify the type of the\nkernel image.\n\nuki\nUnified kernel image.\n\nAdded in version 254.\n\npe\nPE binary.\n\nAdded in version 254.\n\nunknown\nUnknown type.\n\nAdded in version 254.\n\n$KERNELINSTALLMACHINEID is set for the plugins to the desired machine-id to use. It's\nalways a 128-bit ID. Normally it's read from /etc/machine-id, but it can also be overridden\nvia $MACHINEID (see below). If not specified via these methods, a fallback value will\ngenerated by kernel-install and used only for a single invocation.\n\n$KERNELINSTALLENTRYTOKEN is set for the plugins to the desired entry \"token\" to use. It's\nan identifier that shall be used to identify the local installation, and is often the machine\nID, i.e. same as $KERNELINSTALLMACHINEID, but might also be a different type of\nidentifier, for example a fixed string or the ID=, IMAGEID= values from /etc/os-release. The\nstring passed here will be used to name Boot Loader Specification entries, or the directories\nthe kernel image and initial RAM disk images are placed into.\n\nNote that while $KERNELINSTALLENTRYTOKEN and $KERNELINSTALLMACHINEID are often set to\nthe same value, the latter is guaranteed to be a valid 32 character ID in lowercase\nhexadecimals while the former can be any short string. The entry token to use is read from\n/etc/kernel/entry-token, if it exists. Otherwise a few possible candidates below $BOOT are\nchecked for Boot Loader Specification Type 1 entry directories, and if found the entry token\nis derived from that. If that is not successful, $KERNELINSTALLMACHINEID is used as\nfallback.\n\n$KERNELINSTALLBOOTROOT is set for the plugins to the absolute path of the root directory\n(mount point, usually) of the hierarchy where boot loader entries, kernel images, and\nassociated resources should be placed. This usually is the path where the XBOOTLDR partition\nor the ESP (EFI System Partition) are mounted, and also conceptually referred to as $BOOT.\nCan be overridden by setting $BOOTROOT (see below).\n\n$KERNELINSTALLLAYOUT=auto|bls|uki|other|...  is set for the plugins to specify the\ninstallation layout. Additional layout names may be defined by convention. If a plugin uses a\nspecial layout, it's encouraged to declare its own layout name and configure layout= in\ninstall.conf upon initial installation. The following values are currently understood:\n\nbls\nStandard Boot Loader Specification[2] Type #1 layout, compatible with systemd-boot(7):\nentries in $BOOT/loader/entries/ENTRY-TOKEN-KERNEL-VERSION[+TRIES].conf, kernel and\ninitrds under $BOOT/ENTRY-TOKEN/KERNEL-VERSION/\n\nImplemented by 90-loaderentry.install.\n\nAdded in version 250.\n\nuki\nStandard Boot Loader Specification[2] Type #2 layout, compatible with systemd-boot(7):\nunified kernel images under $BOOT/EFI/Linux as\n$BOOT/EFI/Linux/ENTRY-TOKEN-KERNEL-VERSION[+TRIES].efi.\n\nImplemented by 90-uki-copy.install.\n\nAdded in version 253.\n\nother\nSome other layout not understood natively by kernel-install.\n\nAdded in version 250.\n\nauto\nPick the layout automatically. If the kernel is a UKI set layout to uki. If not default\nto bls if $BOOT/loader/entries.srel with content \"type1\" or $BOOT/ENTRY-TOKEN exists, or\nother otherwise.\n\nLeaving layout blank has the same effect. This is the default.\n\nAdded in version 254.\n\n$KERNELINSTALLINITRDGENERATOR and $KERNELINSTALLUKIGENERATOR are set for plugins to\nselect the initrd and/or UKI generator. This may be configured as initrdgenerator= and\nukigenerator= in install.conf, see below.\n\n$KERNELINSTALLSTAGINGAREA is set for plugins to a path to a directory. Plugins may drop\nfiles in that directory, and they will be installed as part of the loader entry, based on the\nfile name and extension: Files named initrd* will be installed as INITRD-FILEs, and files\nnamed microcode* will be prepended before INITRD-FILEs.\n"
                },
                {
                    "name": "Environment variables understood by kernel-install",
                    "content": "$KERNELINSTALLCONFROOT can be set to override the location of the configuration files read\nby kernel-install. When set, install.conf, entry-token, and other files will be read from\nthis directory.\n\n$KERNELINSTALLPLUGINS can be set to override the list of plugins executed by\nkernel-install. The argument is a whitespace-separated list of paths.\n\"KERNELINSTALLPLUGINS=:\" may be used to prevent any plugins from running.\n\n$MACHINEID can be set for kernel-install to override $KERNELINSTALLMACHINEID, the machine\nID.\n\n$BOOTROOT can be set for kernel-install to override $KERNELINSTALLBOOTROOT, the\ninstallation location for boot entries.\n\nThe last two variables may also be set in install.conf. Variables set in the environment take\nprecedence over the values specified in the config file.\n"
                }
            ]
        },
        "EXIT STATUS": {
            "content": "If every executable returns 0 or 77, 0 is returned, and a non-zero failure code otherwise.\n",
            "subsections": []
        },
        "FILES": {
            "content": "/etc/kernel/install.d/*.install, /usr/lib/kernel/install.d/*.install\nDrop-in files which are executed by kernel-install.\n\nAdded in version 198.\n\n/etc/kernel/cmdline, /usr/lib/kernel/cmdline, /proc/cmdline\nSpecifies the kernel command line to use. The first of the files that is found will be\nused.  $KERNELINSTALLCONFROOT may be used to override the search path; see below for\ndetails.\n\nAdded in version 198.\n\n/etc/kernel/devicetree, /usr/lib/kernel/devicetree\nSpecifies the partial path to the file containing the device tree blob to install with\nthe kernel and use at boot. The first of the files that is found will be used.\n$KERNELINSTALLCONFROOT may be used to override the search path; see below for details.\n\nThe devicetree file contains a path, and this path specifies a location relative to the\nkernel install tree. A set of locations is checked, including in particular\n/usr/lib/modules/KERNELVERSION/dtb/, which is the recommended location to place the dtb\nfiles under. For example, with \"broadcom/bcm2711-rpi-4-b.dtb\" in the devicetree file, the\ndevice tree blob for the Raspberry Pi 4 Model B would be installed, and the actual file\nwould be /usr/lib/modules/KERNELVERSION/dtb/broadcom/bcm2711-rpi-4-b.dtb.\n\nAdded in version 255.\n\n/etc/kernel/tries\nRead by 90-loaderentry.install and 90-uki-copy.install. If this file exists, a numeric\nvalue is read from it and the naming of the generated entry file or UKI is altered to\ninclude it as $BOOT/loader/entries/ENTRY-TOKEN-KERNEL-VERSION+TRIES.conf or\n$BOOT/EFI/Linux/ENTRY-TOKEN-KERNEL-VERSION+TRIES.efi, respectively. This is useful for\nboot loaders such as systemd-boot(7) which implement boot attempt counting with a counter\nembedded in the entry file name.  $KERNELINSTALLCONFROOT may be used to override the\nsearch path; see below for details.\n\nAdded in version 240.\n\n/etc/kernel/entry-token\nIf this file exists it is read and used as \"entry token\" for this system, i.e. is used\nfor naming Boot Loader Specification entries. See $KERNELINSTALLENTRYTOKEN above for\ndetails.  $KERNELINSTALLCONFROOT may be used to override the search path; see below\nfor details.\n\nAdded in version 251.\n\n/etc/machine-id\nThe content of this file specifies the machine identification MACHINE-ID.\n\nAdded in version 198.\n\n/etc/os-release, /usr/lib/os-release\nRead by 90-loaderentry.install. If available, PRETTYNAME= is read from these files and\nused as the title of the boot menu entry. Otherwise, \"Linux KERNEL-VERSION\" will be used.\n\nAdded in version 198.\n\n/etc/kernel/install.conf, /usr/lib/kernel/install.conf\nConfiguration file with options for kernel-install, as a series of KEY=VALUE assignments,\ncompatible with shell syntax, following the same rules as described in os-release(5). The\nfirst of the files that is found will be used.  $KERNELINSTALLCONFROOT may be used to\noverride the search path; see below for details.\n\nCurrently, the following keys are supported: MACHINEID=, BOOTROOT=, layout=,\ninitrdgenerator=, ukigenerator=. See the Environment variables section above for\ndetails.\n\nAdded in version 250.\n\n/etc/kernel/uki.conf\nIni-style configuration file for ukify(1) which is only effective when\n$KERNELINSTALLLAYOUT or layout= in install.conf is set to uki and\n$KERNELINSTALLUKIGENERATOR or ukigenerator= in install.conf is set to ukify, or is\nunset.  $KERNELINSTALLCONFROOT may be used to override the search path; see below for\ndetails.\n\nAdded in version 255.\n\n/usr/lib/modules/KERNEL-VERSION/\nLocation for installed kernel modules and other kernel related resources. For each\nlocally installed kernel a directory named after the kernel version (uname -r) is kept.\n\nAdded in version 255.\n\n/usr/lib/modules/KERNEL-VERSION/vmlinuz\nLocation for installed kernel images. This is the recommended location for OS package\nmanagers to install kernel images into (as applicable), from which kernel-install add\nthen copies it into the final boot partition.\n\nAdded in version 255.\n\nFor various cases listed above, if the $KERNELINSTALLCONFROOT environment variable is set,\nit will override the search path. The files will be loaded only from the directory specified\nby the environment variable. When the variable is not set, the listed paths are tried in\nturn, and the first file that exists is used.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "machine-id(5), os-release(5), depmod(8), systemd-boot(7), ukify(1), Boot Loader\nSpecification[2]\n",
            "subsections": []
        },
        "NOTES": {
            "content": "1. Nowadays  actually  CPIO  archives  used  as  an  \"initramfs\",  rather than \"initrd\". See\nbootup(7) for an explanation.\n\n2. Boot Loader Specification\nhttps://uapi-group.org/specifications/specs/bootloaderspecification\n\n3. Discoverable Partitions Specification\nhttps://uapi-group.org/specifications/specs/discoverablepartitionsspecification\n\nsystemd 255                                                                        KERNEL-INSTALL(8)",
            "subsections": []
        }
    },
    "summary": "kernel-install - Add and remove kernel and initrd images to and from /boot",
    "flags": [
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Path to the EFI System Partition (ESP). If not specified, /efi/, /boot/, and /boot/efi/ are checked in turn. It is recommended to mount the ESP to /efi/, if possible."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Path to the Extended Boot Loader partition, as defined in the Boot Loader Specification[2]. If not specified, /boot/ is checked. It is recommended to mount the Extended Boot Loader partition to /boot/, if possible."
        },
        {
            "flag": "",
            "long": "--make-entry-directory",
            "arg": "yes|no|auto",
            "description": "Controls creation and deletion of the Boot Loader Specification[2] Type #1 entry directory on the file system containing resources such as kernel and initrd images during add and remove, respectively. The directory is named after the entry token, and is placed immediately below the boot root directory. When \"auto\", the directory is created or removed only when the install layout is \"bls\". Defaults to \"auto\". Added in version 254."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "Controls how to name and identify boot loader entries for this kernel installation or deletion. Takes one of \"auto\", \"machine-id\", \"os-id\", \"os-image-id\", or an arbitrary string prefixed by \"literal:\" as argument. If set to machine-id the entries are named after the machine ID of the running system (e.g. \"b0e793a9baf14b5fa13ecbe84ff637ac\"). See machine-id(5) for details about the machine ID concept and file. If set to os-id the entries are named after the OS ID of the running system, i.e. the ID= field of os-release(5) (e.g. \"fedora\"). Similarly, if set to os-image-id the entries are named after the OS image ID of the running system, i.e. the IMAGEID= field of os-release (e.g. \"vendorx-cashier-system\"). If set to auto (the default), the /etc/kernel/entry-token (or $KERNELINSTALLCONFROOT/entry-token) file will be read if it exists, and the stored value used. Otherwise if the local machine ID is initialized it is used. Otherwise IMAGEID= from os-release will be used, if set. Otherwise, ID= from os-release will be used, if set. Otherwise a randomly generated machine ID is used. Using the machine ID for naming the entries is generally preferable, however there are cases where using the other identifiers is a good option. Specifically: if the identification data that the machine ID entails shall not be stored on the (unencrypted) $BOOTROOT partition, or if the ID shall be generated on first boot and is not known when the entries are prepared. Note that using the machine ID has the benefit that multiple parallel installations of the same OS can coexist on the same medium, and they can update their boot loader entries independently. When using another identifier (such as the OS ID or the OS image ID), parallel installations of the same OS would try to use the same entry name. To support parallel installations, the installer must use a different entry token when adding a second installation. Added in version 254."
        },
        {
            "flag": "-v",
            "long": "--verbose",
            "arg": null,
            "description": "Output additional information about operations being performed. Added in version 242. --root=root Takes a directory path as an argument. All paths will be prefixed with the given alternate root path, including config search paths. This is useful to operate on a system image mounted to the specified directory instead of the host system itself. Added in version 255. --image=image Takes a path to a disk image file or block device node. If specified, all operations are applied to the file system in the indicated disk image. This option is similar to --root=, but operates on file systems stored in disk images or block devices. The disk image should either contain just a file system or a set of file systems within a GPT partition table, following the Discoverable Partitions Specification[3]. For further information on supported disk images, see systemd-nspawn(1)'s switch of the same name. Added in version 255."
        },
        {
            "flag": "-h",
            "long": "--help",
            "arg": null,
            "description": "Print a short help text and exit."
        },
        {
            "flag": "",
            "long": "--version",
            "arg": null,
            "description": "Print a short version string and exit."
        },
        {
            "flag": "",
            "long": "--no-pager",
            "arg": null,
            "description": "Do not pipe output into a pager. --json=MODE Shows output formatted as JSON. Expects one of \"short\" (for the shortest possible output without any redundant whitespace or line breaks), \"pretty\" (for a pretty version of the same, with indentation and line breaks) or \"off\" (to turn off JSON output, the default). --image-policy=policy Takes an image policy string as argument, as per systemd.image-policy(7). The policy is enforced when operating on the disk image specified via --image=, see above. If not specified defaults to the \"*\" policy, i.e. all recognized file systems in the image are used."
        },
        {
            "flag": "",
            "long": "--no-legend",
            "arg": null,
            "description": "Do not print the legend, i.e. column headers and the footer with hints."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "machine-id",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/machine-id/5/json"
        },
        {
            "name": "os-release",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/os-release/5/json"
        },
        {
            "name": "depmod",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/depmod/8/json"
        },
        {
            "name": "systemd-boot",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/systemd-boot/7/json"
        },
        {
            "name": "ukify",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/ukify/1/json"
        }
    ]
}