Provided by: debirf_0.38_all bug

NAME

       debirf - build an initrd to boot a full Debian system entirely from RAM

SYNOPSIS

       debirf <subcommand> [options] [args]

DESCRIPTION

       debirf  (DEBian  on Initial Ram Filesystem) is a set of tools designed to create and prepare a kernel and
       initial ram filesystem that can run a full-blown Debian environment entirely from RAM.

       debirf has various subcommands (see SUBCOMMANDS) which act on a specified debirf profile (see PROFILES).

       The debirf system is outlined at:

          http://cmrg.fifthhorseman.net/wiki/debirf

EXAMPLES

       Make a stock debirf rescue image using the default settings:
        $ tar xzf /usr/share/doc/debirf/example-profiles/rescue.tgz
        $ debirf make rescue

       Make a debirf rescue image, specifying the mirror and a local HTTP proxy:
        $ tar xzf /usr/share/doc/debirf/example-profiles/rescue.tgz
        $ DEBIRF_MIRROR=http://ftp.debian.org/debian http_proxy=http://127.0.0.1:3128/ debirf make rescue

SUBCOMMANDS

       debirf takes various subcommands:

       make [options] PROFILE
              Create a debirf system based on profile PROFILE.  This will create the root for the  profile,  run
              all  modules  on  the  root, and then generate the kernel image (see KERNEL) and debirf initramfs.
              This subcommand takes various options (see OPTIONS).

       enter PROFILE
              Chroot into root of profile PROFILE, with full profile environment.

       makeiso PROFILE
              Create a bootable CD-ROM image from  the  kernel  and  initramfs  in  PROFILE.   This  requires  a
              bootloader to be available.  If grub-mkrescue (in the grub-common package on debian) is available,
              it  will  be  used.   Otherwise,  isolinux  is  used  if  it  is  available.   You  may  use   the
              DEBIRF_ISO_BOOTLOADER environment variable to specify a preference manually (see below).

       help   Output a brief usage summary.

OPTIONS (for make subcommand only)

       -c, --check-vars
              check variables before make

       -n, --new
              create new root, even if old one exists

       -o, --overwrite
              debootstrap on top of old root if it exists

       -s, --skip
              skip debootstrap step altogether if old root exists

       -r, --root-build
              use real chroot to build instead of fakechroot (requires superuser privileges or CAP_SYS_CHROOT)

       -w, --no-warning
              skip superuser warning

       -i, --initrd-only
              remake initramfs from existing root (skip debootstrap and module stages)

       -k, --kernel-deb=KERNEL
              install KERNEL .deb, instead of default kernel

PROFILES

       A  debirf  profile  is  a directory containing a debirf.conf config file and a modules sub-directory (see
       MODULES).

PACKAGE INCLUDES/EXCLUDES

       If the profile directory includes a 'packages'  file,  it  is  interpreted  as  a  list  of  packages  to
       include/exclude  during  the  debootstrap  stage.   Packages should be specified one per line, with a '+'
       prefix to indicate inclusion during debootstrap, or a '-' prefix to indicate exclusion.

MODULES

       Modules are used to configure the debirf system, and can be used to extend the  capabilities  of  debirf.
       Modules  are  bash shell scripts that are executed in alpha-numeric order by run-parts in a chroot in the
       debirf root during the module stage of the debirf build.  The module stage  is  right  after  the  debirf
       debootstrap stage, and right before the initramfs archive is created.  All shell variables beginning with
       "DEBIRF_", including those defined in the debirf.conf file, are available to the modules.

       Modules may  specify  packages  to  be  included/excluded  during  the  debootstrap  stage  with  special
       '#DEBIRF_PACKAGE>'  comments  anywhere  in  the module.  Lines beginning with '#DEBIRF_PACKAGE>+' specify
       packages to include, and lines beginning with '#DEBIRF_PACKAGE>-' indicate packages to exclude.  Only one
       package should be specified per comment line (no spaces).  So for instance, the lines:

       #DEBIRF_PACKAGE>+emacs
       #DEBIRF_PACKAGE>+ed
       #DEBIRF_PACKAGE>-nano

       would include the packages emacs and ed, and would exclude the package nano.

       NOTE:  Some  modules are more important to the proper functioning of debirf than others, and the ordering
       of modules is important.  Some modules may depend on certain other modules having already  been,  or  not
       yet been, run.  For instance, the module that cleans the debirf apt cache ("z1_clean_root") should be the
       last module run at the end of the module stage.

KERNEL

       The debirf "install-kernel" module will try to pick the most up-to-date kernel  for  the  suite  you  are
       installing (versions 2.6 only), with the arch determined by the kernel running on the host build system.

FUNCTIONS

       A  set  of  pre-defined  bash  shell functions are available to the modules to fasciliate configuring the
       debirf system:

       debirf_exec <command>
              Execute <command> within debirf root (DEBIRF_ROOT) with chroot.

       msg <message>
              Output a message to standard out during the build process.

       failure <message> <exit-code>
              Cause debirf script to fail with <exit-code>, and <message> to stderr.

       debirf_info_sh <message>
              Write one line of sh code to the debirf.info file on the debirf root.

       debirf_info_comment <message>
              Write one line of comment to the debirf.info file on the debirf root.

ENVIRONMENT

       The following environment variables are used by debirf:

       DEBIRF_LABEL
              debirf label (default: debirf)

       DEBIRF_BUILDD
              where to build the debirf (default: ./)

       DEBIRF_ARCH
              architecture to build (default is the architecture of the build machine)

       DEBIRF_SUITE
              suite to build from (default determined from lsb_release, otherwise "sid")

       DEBIRF_DISTRO
              distro for suite (default determined from lsb_release, otherwise "debian")

       DEBIRF_MIRROR
              mirror to pull suite (default determined by DEBIRF_DISTRO)

       DEBIRF_KEYRING
              keyring to verify debootstrap (default determined by DEBIRF_DISTRO)

       DEBIRF_KERNEL_FLAVOR
              the flavor of kernel debirf should install.  Supply everything from a typical debian package  name
              after  the  version  number.  e.g. 486, vserver-686-bigmem, openvz-amd64. (default chosen based on
              currently-running kernel)

       DEBIRF_ISO_BOOTLOADER
              whether to use "grub" or "isolinux" as the El  Torito  bootloader  for  debirf  makeiso.   if  not
              specified, "grub" is the default.

FILES

       $DEBIRF_PROFILE/debirf.conf
              Debirf  profile  configuration file.  Contains values for the various debirf environment variables
              (see ENVIRONMENT).  Variables specified in the debirf.conf override those specified on the command
              line.

       $DEBIRF_ROOT/etc/debirf/debirf.info
              File that stores various information about the debirf build.  This is a bash-sourceable file.

AUTHOR

       Written by Jameson Rollins and Daniel Kahn Gillmor.

BUGS

       Debirf  does  not  work  as a non-privileged user across different versions of libc.  In particular, this
       means that you probably won't be able to build an image from a different version of the operating  system
       than you're using without building as root. (see http://bugs.debian.org/650242)

       Please report bugs in debirf via the debian BTS: http://bugs.debian.org/

COPYRIGHT

       Copyright © 2007-2011 Jameson Rollins and Daniel Kahn Gillmor
       This  is  free  software.   You  may  redistribute copies of it under the terms of the GNU General Public
       License <http://www.gnu.org/licenses/gpl.html>.  There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

       /usr/share/doc/debirf/README, debootstrap(8), fakechroot(1)