Provided by: rootstrap_0.3.25-1_amd64 bug

NAME

       rootstrap — Construct a root filesystem image in a file

SYNOPSIS

       rootstrap [options ...]  imagefile

DESCRIPTION

       rootstrap is a tool for creating root filesystem images.  It was written primarily for use
       with User-Mode Linux, but may be useful for other purposes as well.

       Because it uses User-Mode Linux to bootstrap itself, rootstrap can be  used  without  root
       privileges  on  the host system, which are normally required for this task in order to use
       chroot(2) and mount and unmount filesystems.  Rootstrap boots UML and uses tools from  the
       host filesystem to perform installation and configuration tasks.

       Note:  since  roostrap  needs to access the host filesystem it requires an UML kernel with
       hostfs built-in (CONFIG_HOSTFS=y), not as module.

OPTIONS

       -s, --image-size
                 Sets the initial size of the image, in  megabytes,  overriding  the  initialsize
                 option in rootstrap.conf.

       -o logfile
                 Log the output of the creation process to logfile instead of to standard output.

       -u args, --umlargs args
                 Pass  additional  arguments to user-mode linux when booting to create the image.
                 Supplements the 'umlargs' option in rootstrap.conf.

Configuration

       The configuration file consists of sections, starting with a "[section]" header,  followed
       by  "option=value"  entries.   Long  values  are  allowed  to  span multiple lines if each
       continued line is indented with whitespace.

       With  the  exception  of  the  special  section  "global",  sections  are  named  after  a
       corresponding module.  When that module is executed, it receives the option/value pairs in
       its section as environment variables.  All modules inherit global options  as  environment
       variables,  except  where  overridden  by options within their specific section.  At least
       PATH must be set here, in addition to the required parameters listed below under [global].

       Documentation for configurable modules distributed with rootstrap is included below.  This
       section is currently incomplete.

       Note  that  the  modules  shipped  with rootstrap have a recommended ordering due to their
       cooperation in building the guest OS image, equivalent modules can be  used  for  each  of
       these tasks:

          1. setup guest network (if you need it for OS installation)

          2. create the target filesystem

          3. mount target filesystem in the guest Linux

          4. OS installation

          5. UML basic setup (device nodes, kernel modules, etc.)

          6. Tweaking (here you should have a fully working OS to play with)

          7. unmount the target filesystem

Modules

   [global]
       Contains  configuration  options that affect the operation of rootstrap itself, or several
       modules.

       fstype    The type of filesystem to create (ext2, ext3, reiserfs, etc.)  This parameter is
                 mandatory.

       umlargs   Additional arguments to user-mode linux passed when booting to create the image.

       PATH      The PATH environment variable to pass to modules.  This parameter is mandatory.

       initialsize
                 The  initial  size  of  the filesystem image (in megabytes).  This must be large
                 enough to contain a complete  installed  system  as  produced  by  the  selected
                 modules.   It  will  be  created  sparsely,  so additional space is not entirely
                 allocated until it is used.  This parameter is mandatory.

       freespace The amount of free space  to  leave  on  the  filesystem  (in  megabytes).   The
                 filesystem  will  be resized, if possible, to adjust the amount of free space to
                 approximately this amount.  This parameter is optional.

       modules   The list of modules to invoke, in order.  Each module will be  searched  for  in
                 several  directories,  listed in the FILES section below, and passed environment
                 variables based  on  the  options  set  in  the  corresponding  section  of  the
                 configuration file.  This parameter is mandatory.

       debug     When  set  to  "true"  make  rootstrap  spawn a shell when a module script fails
                 allowing further debugging actions.  The shell will have the same environment as
                 the failing script so you could simply invoke sh -x /path/to/module           to
                 see what's going wrong. Moreover the shell exit  value  will  be  used  to  tell
                 rootstrap  to:  re-evaluate the script when 1 (with exit 1) or continue with the
                 next one when 2 (with exit 2); all other values will make rootstrap fail with an
                 error.  This parameter is optional.

   [network]
       Network configuration.  This module configures virtual networking with the user-mode Linux
       system used to build the filesystem image.  Its presence is not strictly necessary, if the
       selected  modules do not require network access (for example, with a local package mirror)
       and the network module is not included in the global "modules" list.

       interface The name of the network interface to configure inside the UML  virtual  machine,
                 typically "eth0".  This parameter is mandatory.

       host      The IP address of the host side of the interface (the host on which rootstrap is
                 run), as visible to the UML virtual machine.  This parameter is mandatory.

       uml       The IP address of the UML side of the  interface  (where  the  system  is  being
                 built).  The  value "dhcp" is also accepted and makes rootstrap try to configure
                 the network interface through DHCP.  This parameter is mandatory.

       transport The type of virtual networking interface to be used.  Typically "tuntap".  Other
                 available transports are "slirp" and "daemon".  This parameter is mandatory.

       netmask   The  netmask  for the network interface (applies to both sides).  This parameter
                 is mandatory.

       hostname  The host name to use for the created UML virtual  machine.   This  parameter  is
                 optional.

       gateway   A  default  gateway to be used by the user-mode Linux system.  This parameter is
                 optional.

       domain    The local domain name.

       nameserver
                 The DNS server to use for domain name resolution inside the UML virtual machine.
                 This  parameter is optional, but useful if you do not have a name server running
                 on the host.

   [mkfs]
       This module creates the filesystem for the rootfs.  It uses the fstype global parameter.

   [mount]
       This module mounts the root filesystem where the OS image is going to be created.  It uses
       the fstype global parameter.

   [umount]
       This module unmounts the root filesystem and /proc.

   [uml]
       Creates  /etc/fstab  and  necessary device nodes, it eventually copies kernel modules into
       the target image.  It uses the fstype global parameter.

       kernel_modules
                 How to deal with kernel modules for the guest Linux.  It can  be  one  of  none,
                 hostfs or copy, defaults to the latter which copies the available modules in the
                 target filesystem.

       kernel_modules_dir
                 The  directory  where  kernel_modules              are  located  on   the   host
                 filesystem. It defaults to /usr/lib/uml/modules

       install_modules
                 This  parameter  is  superseeded  by  kernel_modules  and kernel_modules_dir. It
                 accepts a boolean value (true/false).

   [debian]
       Debian installation.  This module installs a basic Debian system using debootstrap.

       dist      The distribution to install (e.g., potato, woody, etc.)

       mirror    A URL for a Debian archive containing the base packages.  This  must  be  a  URL
                 understood  by debootstrap, which as of this writing includes URLs understood by
                 wget, and file: URLs.

       exclude   A list of packages which should be excluded (never installed  at  all).   It  is
                 quite  possible to produce a broken system, or fail to build a system at all, if
                 this option is used improperly.  It is useful for excluding  packages,  such  as
                 pcmcia-cs, which are typically not necessary for UML and other applications.

                 Corresponds to debootstrap's --exclude option

       purge     A  list of packages which should be removed after installation is complete.  Use
                 this for packages which are required during installation,  but  may  be  removed
                 afterward.  The same warning applies as with the exclude option.

                 Packages are removed with dpkg --purge.

       include   A  list  of  packages which should be included in the initial set of packages to
                 install.

                 Corresponds to debootstrap's --include option.

       install   Extra packages to install via apt after initial debootstrap install.

                 See also the sources option.

       debconf_preseed_file
                 A  file  containing  a  debconf  DB  to  be  used  as  default.   Read   debconf
                 documentation  and  see  your  /var/cache/debconf/config.dat  for  examples  and
                 caveats.

       sources   Sources for target's sources.list. If no value is given the default is the  main
                 section  of  mirror.   NOTE:  you can provide multiple lines if each new line is
                 indented with blank spaces.

       preferences
                 Preferences for target's apt preferences file (see  apt_preferences(5)).   NOTE:
                 you  can  provide multiple lines if each new line is indented with blank spaces.
                 Multiple apt_preferences stanzas are allowed provided that they are separated by
                 a line containing only a dot (".") and obviously indented as specified above.

       apt_conf  Apt configuration for target's apt.conf file (see apt.conf(5)). The file will be
                 created before installing additional packages so it will  be  already  effective
                 then.   NOTE:  you  can provide multiple lines if each new line is indented with
                 blank spaces.

       apt_force_yes
                 Will make rootstrap use the --force-yes switch to install debian packages.  This
                 useful  when  you  need  to  install  packages  from  sources  that  don't use a
                 Release.gpg file and thus failing apt key authentication. It can be either  true
                           or false and defaults to the former.

                 Be  careful  anyway  as  using  this  option "will cause apt to continue without
                 prompting if it is doing something potentially harmful" (from apt-get(8)).  This
                 option  is  provided  standalone instead of forcing its inclusion in apt_conf to
                 avoid causing  destructive  actions  later  when  using  apt-get  from  the  UML
                 instance.

   Custom modules
       Custom  modules  can very easily be used by rootstrap, in addition to (or in place of) the
       supplied modules.  See FILES below for locations that are searched for modules.

       When a module is invoked, the filesystem being created is mounted on $TARGET,  /dev,  /etc
       and  /tmp are tmpfs filesystems internal to the UML system, while the root filesystem is a
       hostfs mount of the system where rootstrap  is  running,  to  have  access  to  the  above
       shadowed directories the full host filesystem is available on $HOST. /lib/modules is tmpfs
       too and bind mounted to the host's /usr/lib/uml/modules  to  let  scripts  load  necessary
       kernel  modules.  This means that most software on the host system should be available and
       work as expected. The working directory where rootstrap is run is available  as  $WORKDIR.
       The environment is generated from the configuration file as described above.

       Be  careful  about  modules ordering (see CONFIGURATION above), you'll mostly want to plug
       into the tweaking step to perform custom configurations.

       To debug modules enable the debug global parameter, see its description fro more hints.

FILES

       /etc/rootstrap/rootstrap.conf
                 System-wide default configuration

       rootstrap.conf
                 Local overrides

       /usr/lib/rootstrap/modules
                 Modules distributed with rootstrap

       /etc/rootstrap/modules
                 System-wide overrides and additional modules

       modules   Local overrides and additional modules

SEE ALSO

       debootstrap(8), apt_preferences(5), apt.conf(5), debconf(7), linux(1);  locally  installed
       User-Mode Linux documentation or      http://user-mode-linux.sourceforge.net/ (link to URL
       http://user-mode-linux.sourceforge.net/)

AUTHOR

       Rootstrap was written by Matt Zimmerman mdz@debian.org

                                                                                     rootstrap(1)