mkinitcpio man page on Archlinux

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Archlinux logo
[printable version]

MKINITCPIO(8)		       mkinitcpio manual		 MKINITCPIO(8)

NAME
       mkinitcpio - Create an initial ramdisk environment

SYNOPSIS
       mkinitcpio [options]

DESCRIPTION
       Creates an initial ramdisk environment for booting the linux kernel.
       The initial ramdisk is in essence a very small environment (early
       userspace) which loads various kernel modules and sets up necessary
       things before handing over control to init. This makes it possible to
       have, for example, encrypted root filesystems and root filesystems on a
       software RAID array. mkinitcpio allows for easy extension with custom
       hooks, has autodetection at runtime, and many other features.

OPTIONS
       -A, --addhooks hooks
	   Add the additional hooks to the image. These will be processed in
	   order after all other hooks from the config file. Multiple hooks
	   should be comma-separated. This option can be specified multiple
	   times.

       -c, --config config
	   Use config file to generate the ramdisk. Default:
	   /etc/mkinitcpio.conf

       -d, --generatedir directory
	   Set directory as the location where the initramfs is built. This
	   might be useful to generate a shutdown ramfs in /run/initramfs.

       -g, --generate filename
	   Generate a CPIO image as filename. Default: no; this means nothing
	   will be written to the filesystem unless this option is specified.

       -H, --hookhelp hookname
	   Output help for hookname hookname.

       -h, --help
	   Output a short overview of available command-line switches.

       -k, --kernel kernelversion
	   Use kernelversion, instead of the current running kernel. This may
	   be a path to a kernel image, a specific kernel version or the
	   special keyword none. In the latter case, no kernel modules are
	   added to the image.

       -L, --listhooks
	   List all available hooks.

       -M, --automods
	   Display modules found via autodetection. mkinitcpio will
	   automatically try to determine which kernel modules are needed to
	   start your computer. This option lists which modules were detected.

       -n, --nocolor
	   Disable color output.

       -P, --allpresets
	   Process all presets contained in /etc/mkinitcpio.d. See the -p
	   option for more detail about presets.

       -p, --preset preset
	   Build initramfs image(s) according to specified preset. This may be
	   a file in /etc/mkinitcpio.d (without the .preset extension) or a
	   full, absolute path to a file. This option may be specified
	   multiple times to process multiple presets.

       -r, --moduleroot root
	   Specifies the root directory to find modules in, defaulting to /.

       -S, --skiphooks hooks
	   Skip hooks when generating the image. Multiple hooks should be
	   comma-separated. This option can be specified multiple times.

       -s, --save
	   Saves the build directory for the initial ramdisk. Default: no;
	   This means the directory will not be retained if this option isn’t
	   specified. Useful for debugging purposes.

       -t, --builddir tmpdir
	   Use tmpdir as the temporary build directory instead of /tmp.
	   tmpdir must exist. The TMPDIR environment variable is also honored
	   to set this location, but the command line option will take
	   precedence.

       -V, --version
	   Display version information.

       -v, --verbose
	   Verbose output. Outputs more information about what’s happening
	   during creation of the ramdisk.

       -z, --compress compress
	   Override the compression method with the compress program.

ABOUT PRESETS
       A preset is a pre-defined definition on how to create an initial
       ramdisk. Instead of specifying the configuration file and which output
       file, every time you generate a new initial ramdisk, you define a
       preset and use the -p switch to generate an initial ramdisk according
       to your preset. Presets are located in /etc/mkinitcpio.d

ABOUT INSTALL HOOKS
       Install hooks are bash scripts which are sourced during mkinitcpio
       runtime in order to add modules, binaries, and other files to the
       image. A variety of functions exist to facilitate this.

       add_module modname
	   Adds the module specified by modname to the image. Dependencies are
	   derived and added automatically.

       add_binary binary [ destination ] [ mode ]
	   Adds a binary to the image. The argument binary need not be an
	   absolute path and, if needed, a lookup will be performed. If the
	   binary is a dynamically linked ELF binary, dependencies will be
	   automatically added. Optionally, a destination within the initramfs
	   image as well as a file mode can be specified. By default, the
	   destintation and mode be taken from the source derived from binary.

       add_file path [ destination ] [ mode ]
	   Adds a file and any needed parent directories to the image.
	   Optionally, a destination within the initramfs image as well as a
	   file mode can be specified. By default, the destination and mode
	   will be taken from the source and mode of the file specified by the
	   path.

       add_dir path
	   Adds a directory and its parents to the image.

       add_full_dir directory
	   Recursively adds a directory to the image by walking the given path
	   and calling add_file, add_dir, and add_symlink accordingly. This
	   function will not follow symlinks, nor will it add the targets of
	   symlinks.

       add_symlink path [ link-target ]
	   Adds a symlink to the image at the specified path, optionally
	   pointing to the specified link-target. If the link-target is not
	   provided, it is assumed that this symlink exists in the real
	   filesystem, and the target will be read using readlink. There is no
	   checking done to ensure that the target of the symlink exists, and
	   symlinks will not be followed recursively.

       add_all_modules [ -f filter ] pattern
	   Adds modules to the image, without regard for the autodetect
	   whitelist.  pattern should be a subdirectory within the kernel tree
	   describing a subset of modules to be included. Further refinement
	   can be provided via the -f flag with an extended regular
	   expression.

       add_checked_modules [ -f filter ] pattern
	   Similar to add_all_modules with the constraint that only modules
	   matching the whitelist generated by the autodetect hook will be
	   added to the image. If the autodetect hook is not present in the
	   image, this function is identical to add_all_modules.

       add_runscript
	   Adds a runtime hook to the image, which is a busybox ash compatible
	   shell script. The name of the script is guaranteed to match the
	   name of the hook the script is called from.

ABOUT RUNTIME HOOKS
       Runtime hooks added to the image via the add_runscript function from an
       install hook are able to provide extra functionality during early
       userspace. Specific functions in these files will run at different
       times. A hook can define one or more of these. At each hook point,
       hooks are run in the order that they are defined in the HOOKS variable,
       except for cleanup hooks which are run in reverse.

       run_earlyhook
	   Functions of this name will be run once the API mounts have been
	   setup and the kernel command line has been parsed. Daemons needed
	   for early userspace should be started from this hook point.

       run_hook
	   Functions of this name will be run after any early hooks, and after
	   user defined modules have been installed. This is the most common
	   hook point, and functionality such as scanning for LVM volumes and
	   mapping encrypted volumes should be performed here.

       run_latehook
	   Functions of this name will be run after root has been mounted.
	   This is generally used for further necessary setup in the real
	   root, such as mounting other system partitions.

       run_cleanuphook
	   Functions of this name are run as late as possible. Any daemons
	   started from a run_earlyhook function should be shut down here in
	   preparation for switching to the real root.

EARLY INIT ENVIRONMENT
       mkinitcpio gives special treatment to certain environment variables
       passed on the kernel command line:

       break[=<premount|postmount>]
	   If specified, mkinitcpio will start a shell during early init. The
	   optional parameter controls when this occurs: when premount or no
	   parameter are specified, the shell will be launched prior to
	   mounting root. If postmount is specified, the shell will be
	   launched after mounting root.

       disablehooks=hooklist
	   This is a comma separated list of hooks which will be skipped
	   during early init.

       earlymodules=modulelist
	   This is a comma separated list of modules which will be loaded
	   prior to any others. This is generally not needed, and usually
	   points to a configuration or kernel problem.

       quiet
	   Causes mkinitcpio to output fewer messages during boot. Errors will
	   not be suppressed.

       ro
	   Specifies that root should be mounted with readonly permissions.
	   This is the default behavior.

       rw
	   Specifies that root should be mounted with readwrite permissions.
	   This is generally only useful if your initramfs uses the fsck hook.

       root=rootdevice
	   This variable describes the root partition which early init will
	   mount before passing control to the real init. mkinitcpio
	   understands a variety of formats, the most basic of which is the
	   path to the block device, either directly such as /dev/sda2, or
	   using a udev symlink such as /dev/disk/by-label/CorsairF80-root.
	   Support for identification by LABEL or UUID tags are also
	   supported, such as, LABEL=CorsairF80-root. As of util-linux 2.22,
	   PARTUUID and PARTLABEL are also supported. Identification via hex
	   encoded major/minor device ID is supported for legacy reasons, but
	   should be avoided as it tends to be fragile.

       rootdelay=seconds
	   Sets the delay, in seconds, that mkinitcpio is willing to wait for
	   the root device to show up, if it is not available immediately.
	   This defaults to 5 seconds. If an invalid integer is passed, this
	   variable will have no effect.

       rd.debug
	   Enables shell debug (xtrace). If rd.log is not also a parameter on
	   the kernel command line, this parameter implies rd.log=console.

       rd.log[=<console|file|kmsg|all>]
	   Enables logging of early userspace messages. If specified, the
	   optional parameter describes where this information is logged.
	   Multiple options can be OR’d together using the pipe (|) character.
	   Messages are always logged to the console unless the quiet
	   parameter is passed. If the optional parameter is not specified,
	   kmsg|console is assumed. If rd.log is not present on the kernel
	   command line, no logging will take place.

	   console
	       Writes output to /dev/console.

	   file
	       Writes output to /run/initramfs/init.log.

	   kmsg
	       Writes output to the /dev/kmsg device (introduced in Linux
	       3.5). This option is a no-op if your kernel lacks support for
	       /dev/kmsg.

	   all
	       Writes output to all known log targets.

       These are only the variables that the core of mkinitcpio honor.
       Additional hooks may look for other environment variables and should be
       documented by the help output for the hook.

FILES
       /etc/mkinitcpio.conf
	   Default configuration file for mkinitcpio.

       /etc/mkinitcpio.d
	   Directory containing mkinitcpio presets.

       /etc/initcpio/install, /usr/lib/initcpio/install
	   Search path for build time hooks.

       /etc/initcpio/hooks, /usr/lib/initcpio/hooks
	   Search path for early userspace runtime hooks.

EXAMPLES
       mkinitcpio
	   Perform a dry-run. This will generate an initial ramdisk but will
	   not write anything. Use -g to create the real image.

       mkinitcpio -p linux
	   Create an initial ramdisk based on the linux preset.

       mkinitcpio -g /boot/initramfs-linux.img -k /boot/vmlinuz-linux
	   Create an initial ramdisk for the kernel at /boot/vmlinuz-linux.
	   The resulting image will be written to /boot/initramfs-linux.img.

SEE ALSO
       A more thorough article on configuring mkinitcpio:
       http://wiki.archlinux.org/index.php/Mkinitcpio

       initrd(4), lsinitcpio(1), mkinitcpio.conf(5), bootparam(7)

BUGS
       Upon writing this manpage, there were no noticeable bugs present.
       Please visit http://bugs.archlinux.org/ for an up to date list.

AUTHORS
       mkinitcpio is created and maintained by the Arch Linux Developer
       community.

COPYRIGHT
       Copyright (c) Arch Linux 2006-2012

  17				  03/08/2014			 MKINITCPIO(8)
[top]

List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net