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

FreeBSD Manual Pages

  
 
  

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 subtar-
     gets 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	parti-
		       tioner 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	parti-
		       tioner with an interface	identical to sade(8).  Sup-
		       ports 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 spec-
		       ifies 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	kilo-
		       bytes, 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 sys-
		       tem'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 overrid-
     den when making scripted or customized installers.

     DISTRIBUTIONS	  The set of distributions to install (e.g. "base ker-
			  nel 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	archi-
			  tecture 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 exe-
			  cuted. 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 exe-
			  cuted. 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 sec-
     ond 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 instal-
     lation parameters (see ENVIRONMENT	VARIABLES) as well as disk partition-
     ing. The preamble is interpreted as a sh(1) script	run at the very	begin-
     ning 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 par-
     ticular DISTRIBUTIONS, the	preamble can contain a variable	PARTITIONS
     which is passed to	the scriptedpart target	to control disk	setup.	Alter-
     natively, 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.1		       October 31, 2014			  FreeBSD 11.1

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+11.1-RELEASE+and+Ports>

home | help