Provided by: tiny-initramfs-core_0.1-1_amd64 bug

NAME

       mktirfs - tool for creating a tiny-initramfs image

SYNOPSIS

       mktirfs -o outputfile [options] [kernel-version]

DESCRIPTION

       The  mktirfs  script  generates  an  initramfs image that contains the tiny-initramfs init
       binary. Invoking mktirfs is meant for expert users that want to have greater control  over
       their initramfs image. Typically it would be called from update-tirfs.

       Images  created  with  this utility are designed to be very small and fast, and thus ideal
       for use cases where the amount of space available in the boot loader is very  low.  If  no
       modules and no microcode updates are included in the image, it will be less than 16 kiB in
       size. This comes at the  cost  of  runtime  flexibility  and  supported  features  of  the
       generated  images.  It is not meant to replace traditional initramfs implementations (such
       as dracut or initramfs-tools) in the generic case, but  provide  a  lean  alternative  for
       common use cases.

       Please  read /usr/share/doc/tiny-initramfs-core/README.md for an overview of the use cases
       it was designed for and the features it supports.

OPTIONS

       -o, --output=imagefile
              Where to store the resulting initramfs image. This option must be specified.

       -m, --auto-modules=yes/no
              Whether to try to automatically detect which modules are required to  mount  the  /
              and /usr file systems and include them in the resulting initramfs image.

              Defaults to yes.

       --include-modules=mod1,mod2,...
              Which modules to directly add to the initramfs image, regardless of the setting for
              -m. Dependencies of the modules will be resolved by mktirfs. This option is  useful
              if  the  required modules are not properly detected or one wants to create an image
              for a different computer.

              By default this list is empty.

       -M, --microcode=generic/yes/no
              Whether to prepend CPU microcode updates (if installed)  to  the  initramfs  image.
              Microcode  updates  may  be  prepended  to  the  initramfs,  and  the  kernel  will
              automatically load them at boot time.  (This  requires  the  CONFIG_MICROCODE_EARLY
              kernel    option    in    conjunction   with   either   CONFIG_MICROCODE_INTEL   or
              CONFIG_MICROCODE_AMD compiled into the kernel.) The microcode updates can be  found
              in the (non-free) packages intel-microcode and amd64-microcode packages.

              If  the generic setting is specified, all installed microcode updates will be added
              to the initramfs image; if yes is specified only the update for  the  processor  on
              which mktirfs was run on will be included.

              Microcode  updates  not  being  installed (or no microcode updates for the specific
              processor being available) is not considered  to  be  an  error  and  mktirfs  will
              proceed regardless.

              Defaults to yes. Is only supported on x86 processors and will be ignored otherwise.

       -d, --debug=yes/no
              If  set to yes, this option will install a (larger) version of the init binary into
              the initramfs image that prints additional debug messages while booting, and  waits
              5  seconds  after  mounting the root file system before handing control over to the
              system's init process. This allows the administrator to debug  boot  problems  with
              initramfs images.

              Defaults to no.

       kernel-version
              The kernel version for which to generate the initramfs image. This is only relevant
              if modules are to be added (either automatically  or  manually)  to  the  initramfs
              image.  If  no modules are included in the initramfs image, the resulting image may
              be used with any kernel that has the drivers required to mount the root  filesystem
              built in.

              By default the version returned by uname -r is used.

CONFIGURATION

       Except  for  -o and the kernel version, defaults for all the options may be specified in a
       configuration file /etc/tiny-initramfs/tiny-initramfs.conf.  This file does not  exist  by
       default,       but       an       example      version      may      be      found      in
       /usr/share/doc/tiny-initramfs-core/tiny-initramfs.conf.example.

       Any settings that update-tirfs is to use when  calling  mktirfs  should  be  set  in  that
       configuration file.

HOOKS

       There are no hooks within the initramfs itself, the init binary is a very small statically
       linked C program.

       However mktirfs supports hooks when it comes to creating the initramfs image. The  overall
       logic of mktirfs is as follows:

       1.  Determine  the  list  of kernel module names (without dependencies) to be added to the
           initramfs.

       2.  Run start hooks.

       3.  Copy init executable, add directories, copy microcode.

       4.  Run middle hooks.

       5.  Determine dependencies of modules, add all module files.

       6.  Create initramfs image.

       7.  Run end hooks.

       8.  Copy image to its final location.

       mktirfs   looks   for    hooks    in    the    /usr/share/tiny-initramfs/hooks.type    and
       /etc/tiny-initramfs/hooks.type  directories,  e.g.   /etc/tiny-initramfs/hooks.start.  The
       directory in /usr/share is the domain of other Debian packages,  while  the  directory  in
       /etc  is  designated  for  the  administrator  of  the  system.  Hooks  will  be called in
       alphabetical order, and hooks in /etc will override hooks in /usr/share.  run-parts(8)  is
       used to determine what hooks should be considered.

       Hooks  are  sourced,  not  executed,  so calling exit in a hook aborts the creation of the
       initramfs image. It also allows the hooks to modify variables  that  will  be  interpreted
       later.

       Note  that  mktirfs uses /bin/sh as the interpreter, which is dash(1) by default on Debian
       systems, so not all bash(1) functionality is available within hooks.

       The following shell variables are available from within hooksL

       VERSION
           The kernel version for which the initramfs is built.

       DEBUG
           The value of the -d command line option.

       AUTO_MODULES
           The value of the -m command line option.

       INCLUDE_MODULES
           The value of the --include-modules command line option.

       MICROCODE
           The value of the -M command line option.

       OUTPUT
           The value of the -o command line option. This should not be used,  as  mktirfs  should
           only replace it if image creation was successful.

       image_name
           The  temporary  file name of the initramfs image that is to be created.  Will be empty
           except for end hooks.

       initramfs_dir
           The temporary directory that  contains  the  contents  of  the  initramfs  image.  Any
           directories and files placed here will be part of the final initramfs image.

       early_dir
           The  temporary directory that contains the contents of the early part of the initramfs
           image. This is used for storing microcode updates for the CPU,  but  the  kernel  also
           supports  other  updates  here, e.g. updates to ACPI tables. If this directory is non-
           empty after the middle hooks an uncompressed CPIO image  of  this  directory  will  be
           prepended  to  the  final initramfs image by mktirfs. If it is empty (no microcode, no
           other early updates), the initramfs  image  will  just  contain  the  compressed  CPIO
           archive of the initramfs_dir directory.

       modules_list
           The  name  of  the  temporary file that contains the list of module names that will be
           added to the initramfs image (one line per module name).  After the middle  hooks  all
           modules,  together  with their dependencies, will be added to the initramfs image, any
           module options defined in /etc/modprobe.d for those modules will also be included.

EXAMPLE

       Create a new initramfs image for the current kernel:

               mktirfs -o /boot/initrd.img.tiny-$(uname -r)

       Create a new initramfs image for a specific kernel:

               mktirfs -o /boot/initrd.img.tiny-4.2.0 4.2.0

FILES

       /etc/tiny-initramfs/tiny-initramfs.conf
              If present, values in there will be used as defaults for the command line arguments
              of mktirfs.

       /usr/share/doc/tiny-initramfs-core/tiny-initramfs.conf.example
              An example configuration file that may be copied to the above location.

       /usr/share/tiny-initramfs/hooks.start

       /usr/share/tiny-initramfs/hooks.middle

       /usr/share/tiny-initramfs/hooks.end
              If  present,  hooks  created  by  other  Debian packages will be sourced from these
              directories.

       /etc/tiny-initramfs/hooks.start

       /etc/tiny-initramfs/hooks.middle

       /etc/tiny-initramfs/hooks.end
              If present, hooks created by the system administrator will be  sourced  from  thsee
              directories. Hooks will replace those with the same name as hooks in /usr/share.

SEE ALSO

       update-tirfs(8)

AUTHORS

       Christian Seiler <christian@iwakd.de>

                                             Jan 2016                                  MKTIRFS(8)