Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
BSDINSTALL(8)           FreeBSD System Manager's Manual          BSDINSTALL(8)

NAME
     bsdinstall - system installer

SYNOPSIS
     bsdinstall [options] [target] [...]

DESCRIPTION
     bsdinstall is used for installation of new systems, both for system setup
     from installation media (e.g. CD-ROMs) and for use on live systems to
     prepare VM images and jails.

     Much like make(1), bsdinstall takes a target and possible parameters of
     the target as arguments. If invoked with no arguments, it will invoke the
     auto target, which provides a standard interactive installation, invoking
     the others in sequence. To perform a scripted installation, these
     subtargets can be invoked separately by an installation script.

OPTIONS
     bsdinstall supports the following options, global to all targets:

     -D file  Provide a path for the installation log file (overrides
              BSDINSTALL_LOG).  See ENVIRONMENT VARIABLES for more information
              on BSDINSTALL_LOG.

TARGETS
     Most of the following targets are only useful for scripting the
     installer.  For interactive use, most users will be interested only in
     the auto, jail, and script targets.

     auto                     Run the standard interactive installation,
                              including disk partitioning.

     jail destination         Sets up a new chroot system at destination,
                              suitable for use with jail(8).  Behavior is
                              generally similar to auto, except that disk
                              partitioning and network setup are skipped and a
                              kernel is not installed into the new system.

     script script            Runs the installation script at script.  See
                              SCRIPTING for more information on this target.

     keymap                   If the current controlling TTY is a syscons(4)
                              or vt(4) console, asks the user to set the
                              current keymap, and saves the result to the new
                              system's rc.conf.

     hostname                 Prompts the user for a host name for the new
                              system and saves the result to the new system's
                              rc.conf.  If BSDINSTALL_CONFIGCURRENT is set,
                              also sets the host name of the current system.

     netconfig                Interactively configures network interfaces
                              (first invoking wlanconfig on wireless
                              interfaces), saving the result to the new
                              system's rc.conf and resolv.conf.  If
                              BSDINSTALL_CONFIGCURRENT is set, also configures
                              the network interfaces of the current system to
                              match.

     autopart                 Provides the installer's interactive guided disk
                              partitioner for single-disk installations.
                              Defaults to UFS.

     zfsboot                  Provides an alternative ZFS-only automatic
                              interactive disk partitioner.  Creates a single
                              zpool with separate datasets for /tmp, /usr,
                              /usr/home, /usr/ports, /usr/src, and /var.
                              Optionally can set up geli(8) to encrypt the
                              disk.

     partedit                 Provides the installer's interactive manual disk
                              partitioner with an interface identical to
                              sade(8).  Supports multiple disks as well as
                              UFS, ZFS, and FAT file systems. ZFS is set up
                              with one pool and dataset per partition.

     scriptedpart parameters  Sets up disks like autopart and partedit, but
                              non-interactively according to the disk setup
                              specified in parameters.  Each disk setup is
                              specified by a three-part argument:

                              disk [scheme] [{partitions}]

                              Multiple disk setups are separated by
                              semicolons. The disk argument specifies the disk
                              on which to operate (which will be erased),
                              while the scheme argument specifies the gpart(8)
                              partition scheme to apply to the disk. If scheme
                              is unspecified, scriptedpart will apply the
                              default bootable scheme on your platform.  The
                              partitions argument is also optional and
                              specifies how to partition disk.  It consists of
                              a comma-separated list of partitions to create
                              enclosed in curly braces. Each partition
                              declaration takes the form

                              size type [mount point]

                              size specifies the partition size to create in
                              bytes (K, M, and G suffixes can be appended to
                              specify kilobytes, megabytes, and gigabytes
                              respectively), while the auto keyword causes the
                              partition to take all the remaining space on the
                              disk. The type option chooses the gpart(8)
                              filesystem type (e.g. freebsd-ufs, freebsd-zfs,
                              or freebsd-swap).  The optional mount point
                              argument sets where the created partition is to
                              be mounted in the installed system. As an
                              example, a typical invocation looks like:

                              bsdinstall scriptedpart ada0 { 20G freebsd-ufs
                              /, 4G freebsd-swap, 20G freebsd-ufs /var, auto
                              freebsd-ufs /usr }

                              A shorter invocation to use the default
                              partitioning (as autopart would have used) on
                              the same disk:

                              bsdinstall scriptedpart ada0

     mount                    Mounts the file systems previously configured by
                              autopart, partedit, or scriptedpart under
                              BSDINSTALL_CHROOT.

     distfetch                Fetches the distributions in DISTRIBUTIONS to
                              BSDINSTALL_DISTDIR from BSDINSTALL_DISTSITE.

     checksum                 Verifies the checksums of the distributions
                              listed in DISTRIBUTIONS against the distribution
                              manifest.

     distextract              Extracts the distributions listed in
                              DISTRIBUTIONS into BSDINSTALL_CHROOT.

     rootpass                 Interactively invokes passwd(1) in the new
                              system to set the root user's password.

     adduser                  Interactively invokes adduser(8) in the new
                              system.

     time                     Interactively sets the time, date, and time zone
                              of the new system.

     services                 Queries the user for the system daemons to begin
                              at system startup, writing the result into the
                              new system's rc.conf.

     entropy                  Reads a small amount of data from /dev/random
                              and stores it in a file in the new system's root
                              directory.

     config                   Installs the configuration files destined for
                              the new system (e.g. rc.conf fragments generated
                              by netconfig, etc.) onto the new system.

ENVIRONMENT VARIABLES
     The following environment variables control various aspects of the
     installation process. Many are used internally during installation and
     have reasonable default values for most installation scenarios. Others
     are set by various interactive user prompts, and can be usefully
     overridden when making scripted or customized installers.

     DISTRIBUTIONS            The set of distributions to install (e.g. "base
                              kernel ports"). Default: none

     BSDINSTALL_DISTDIR       The directory in which the distribution files
                              can be found (or to which they should be
                              downloaded). Default: /usr/freebsd-dist

     BSDINSTALL_DISTSITE      URL from which the distribution files should be
                              downloaded if they are not already present in
                              the directory defined by BSDINSTALL_DISTDIR.
                              This should be a full path to the files,
                              including architecture and release names. Most
                              targets (e.g.  auto and jail) that prompt for a
                              FreeBSD mirror will skip that step if this
                              variable is already defined in the environment.
                              Example:
                              ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/powerpc64/9.1-RELEASE

     BSDINSTALL_CHROOT        The directory into which the distribution files
                              should be unpacked and the directory at which
                              the root file system of the new system should be
                              mounted.  Default: /mnt

     BSDINSTALL_LOG           Path to a log file for the installation.
                              Default: /tmp/bsdinstall_log

     BSDINSTALL_TMPETC        Directory where files destined for the new
                              system's /etc will be stored until the config
                              target is executed. If this directory does not
                              already exist, it will be created. Default:
                              /tmp/bsdinstall_etc

     BSDINSTALL_TMPBOOT       Directory where files destined for the new
                              system's /boot will be stored until the config
                              target is executed. If this directory does not
                              already exist, it will be created. Default:
                              /tmp/bsdinstall_boot

SCRIPTING
     bsdinstall scripts consist of two parts: a preamble and a setup script.
     The preamble sets up the options for the installation (how to partition
     the disk[s], which distributions to install, etc.) and the optional
     second part is a shell script run under chroot(8) in the newly installed
     system before bsdinstall exits. The two parts are separated by the usual
     script header (#!), which also sets the interpreter for the setup script.

     A typical bsdinstall script looks like this:

           PARTITIONS=ada0
           DISTRIBUTIONS="kernel.txz base.txz"

           #!/bin/sh
           echo "ifconfig_em0=DHCP" >> /etc/rc.conf
           echo "sshd_enable=YES" >> /etc/rc.conf
           pkg install puppet

     On FreeBSD release media, such a script placed at /etc/installerconfig
     will be run at boot time and the system will be rebooted automatically
     after the installation has completed. This can be used for unattended
     network installation of new systems; see diskless(8) for details.

   PREAMBLE
     The preamble consists of installer settings. These control global
     installation parameters (see ENVIRONMENT VARIABLES) as well as disk
     partitioning. The preamble is interpreted as a sh(1) script run at the
     very beginning of the install. If more complicated behavior than setting
     these variables is desired, arbitrary commands can be run here to extend
     the installer. In addition to the variables in ENVIRONMENT VARIABLES, in
     particular DISTRIBUTIONS, the preamble can contain a variable PARTITIONS
     which is passed to the scriptedpart target to control disk setup.
     Alternatively, to use zfsboot instead of partedit, the preamble can
     contain the variable ZFSBOOT_DATASETS instead of PARTITIONS.

   SETUP SCRIPT
     Following the preamble is an optional shell script, beginning with a #!
     declaration. This script will be run at the end of the installation
     process inside a chroot(8) environment in the newly installed system and
     can be used to set up configuration files, install packages, etc. Note
     that newly configured system services (e.g. networking) have not been
     started in the installed system at this time and only installation host
     services are available.

HISTORY
     This version of bsdinstall first appeared in FreeBSD 9.0.

AUTHORS
     Nathan Whitehorn <nwhitehorn@FreeBSD.org>

FreeBSD 11.0-PRERELEASE        October 31, 2014        FreeBSD 11.0-PRERELEASE

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | TARGETS | ENVIRONMENT VARIABLES | SCRIPTING | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=bsdinstall&sektion=8&manpath=FreeBSD+10.2-RELEASE+and+Ports>

home | help