/////
vim:set ts=4 sw=4 syntax=asciidoc noet:
/////
mkinitcpio(5)
=============

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
-------
*-b* 'basedir'::
	Use 'basedir' as a starting point for gathering information about the
	currently running system. Default: /.

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

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

*-H* 'hookname'::
	Output help for hookname 'hookname'.

*-h*::
	Output a short overview of available command-line switches.

*-k* 'kernelversion'::
	Use 'kernelversion', instead of the current running kernel. This may be a
	path to a kernel image or a specific kernel version. If specified as a path to
	an image, this will always be prefixed by the 'basedir'.

*-L*::
	List all available hooks.

*-M*::
	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*::
	Disable color output.

*-p* '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.

*-S* 'hooks'::
	Skip 'hooks' when generating the image. Several hooks should be comma-separated.

*-s*::
	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* 'tmpdir'::
	Use 'tmpdir' as the temporary build directory instead of /tmp. 'tmpdir'
	must exist.

*-v*::
	Verbose output. Outputs more information about what's happening during
	creation of the ramdisk.

*-z* 'compress'::
	Override the compression method with the 'compress' program.

About Hooks
-----------
A hook is a script that executes in the initial ramdisk. Scripts are listed in
order of execution as a space separated string in the *HOOKS* variable in the
mkinitcpio configuration file. Hooks can, for example, set up the udev device
filesystem, load IDE modules, etc.

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

Files
-----
'/etc/mkinitcpio.conf'::
	Default configuration file for mkinitcpio.

'/etc/mkinitcpio.d'::
	Folder containing mkinitcpio presets.

'/lib/initcpio'::
	Files related to creating an initial ramdisk.

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 kernel26*::
	Create an initial ramdisk based on the 'kernel26' preset.

*mkinitcpio -b /mnt -g /mnt/boot/kernel26.img -k /boot/vmlinuz26*::
	Create an initial ramdisk for the root at /mnt, with the kernel at
	/mnt/boot/vmlinuz26. The resulting image will be written to
	/mnt/boot/kernel26.img.

See also
--------
A more thorough article on configuring mkinitcpio:
<http://wiki.archlinux.org/index.php/Configuring_mkinitcpio>

initrd(4)

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 by the Arch Linux Developer community.

Manpage written by:::
* Glenn 'RedShift' Matthys <glenn@opengate.be>

Manpage contributions by:::
* Jens 'byte' Adam <j_adam@web.de>
* Geir 'gejr' Vaagland
* Joerie 'Thralas' de Gram <j.de.gram@gmail.com>

Copyright
---------
Copyright (c) Arch Linux
