1.\"- 2.\" Copyright (c) 2011-2013 Nathan Whitehorn <nwhitehorn@FreeBSD.org> 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17.\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 18.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 22.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 23.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24.\" POSSIBILITY OF SUCH DAMAGE. 25.\"
| 1.\"- 2.\" Copyright (c) 2011-2013 Nathan Whitehorn <nwhitehorn@FreeBSD.org> 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17.\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 18.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 22.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 23.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24.\" POSSIBILITY OF SUCH DAMAGE. 25.\"
|
26.\" $FreeBSD: stable/10/usr.sbin/bsdinstall/bsdinstall.8 256719 2013-10-18 07:42:50Z dteske $
| 26.\" $FreeBSD: stable/10/usr.sbin/bsdinstall/bsdinstall.8 258421 2013-11-21 03:40:52Z dteske $
|
27.\"
| 27.\"
|
28.Dd October 6, 2013
| 28.Dd October 15, 2013
|
29.Dt BSDINSTALL 8 30.Os 31.Sh NAME 32.Nm bsdinstall 33.Nd system installer 34.Sh SYNOPSIS 35.Nm
| 29.Dt BSDINSTALL 8 30.Os 31.Sh NAME 32.Nm bsdinstall 33.Nd system installer 34.Sh SYNOPSIS 35.Nm
|
| 36.Op Ar options
|
36.Op Ar target 37.Op Ar ... 38.Sh DESCRIPTION 39.Nm 40is used for installation of new systems, both for system setup from 41installation media (e.g. CD-ROMs) and for use on live systems to prepare 42VM images and jails. 43.Pp 44Much like 45.Xr make 1 , Nm 46takes a target and possible parameters of the target as arguments. If 47invoked with no arguments, it will invoke the 48.Cm auto 49target, which provides a standard interactive installation, invoking the 50others in sequence. To perform a scripted installation, these subtargets 51can be invoked separately by an installation script.
| 37.Op Ar target 38.Op Ar ... 39.Sh DESCRIPTION 40.Nm 41is used for installation of new systems, both for system setup from 42installation media (e.g. CD-ROMs) and for use on live systems to prepare 43VM images and jails. 44.Pp 45Much like 46.Xr make 1 , Nm 47takes a target and possible parameters of the target as arguments. If 48invoked with no arguments, it will invoke the 49.Cm auto 50target, which provides a standard interactive installation, invoking the 51others in sequence. To perform a scripted installation, these subtargets 52can be invoked separately by an installation script.
|
| 53.Sh OPTIONS 54.Nm 55supports the following options, global to all targets: 56.Bl -tag -width indent+ 57.It Fl D Ar file 58Provide a path for the installation log file 59.Pq overrides Ev BSDINSTALL_LOG . 60See 61.Sx ENVIRONMENT VARIABLES 62for more information on 63.Ev BSDINSTALL_LOG . 64.El
|
52.Sh TARGETS 53Most of the following targets are only useful for scripting the installer. 54For interactive use, most users will be interested only in the 55.Cm auto , 56.Cm jail , 57and 58.Cm script 59targets. 60.Bl -tag -width ".Cm jail Ar destination" 61.It Cm auto 62Run the standard interactive installation, including disk partitioning. 63.It Cm entropy 64Reads a small amount of data from 65.Pa /dev/random 66and stores it in a file in the new system's root directory. 67.It Cm jail Ar destination 68Sets up a new chroot system at 69.Pa destination , 70suitable for use with 71.Xr jail 8 . 72Behavior is generally similar to 73.Cm auto , 74except that disk partitioning and network setup are skipped and a kernel is 75not installed into the new system. 76.It Cm script Ar script 77Runs the installation script at 78.Pa script . 79See 80.Sx SCRIPTING 81for more information on this target. 82.It Cm keymap 83If the current controlling TTY is a 84.Xr syscons 4 85console, asks the user to set the current keymap, and saves the result to the 86new system's 87.Pa rc.conf . 88.It Cm hostname 89Prompts the user for a host name for the new system and saves the result to the 90new system's 91.Pa rc.conf . 92If 93.Ev BSDINSTALL_CONFIGCURRENT 94is set, also sets the host name of the current system. 95.It Cm netconfig 96Interactively configures network interfaces (first invoking 97.Cm wlanconfig 98on wireless interfaces), saving the result to the new system's 99.Pa rc.conf 100and 101.Pa resolv.conf . 102If 103.Ev BSDINSTALL_CONFIGCURRENT 104is set, also configures the network interfaces of the current system to match. 105.It Cm autopart 106Provides the installer's interactive guided disk partitioner for single-disk 107installations. Partitions disks, runs 108.Xr newfs 8 , 109and writes the new system's 110.Pa fstab .
| 65.Sh TARGETS 66Most of the following targets are only useful for scripting the installer. 67For interactive use, most users will be interested only in the 68.Cm auto , 69.Cm jail , 70and 71.Cm script 72targets. 73.Bl -tag -width ".Cm jail Ar destination" 74.It Cm auto 75Run the standard interactive installation, including disk partitioning. 76.It Cm entropy 77Reads a small amount of data from 78.Pa /dev/random 79and stores it in a file in the new system's root directory. 80.It Cm jail Ar destination 81Sets up a new chroot system at 82.Pa destination , 83suitable for use with 84.Xr jail 8 . 85Behavior is generally similar to 86.Cm auto , 87except that disk partitioning and network setup are skipped and a kernel is 88not installed into the new system. 89.It Cm script Ar script 90Runs the installation script at 91.Pa script . 92See 93.Sx SCRIPTING 94for more information on this target. 95.It Cm keymap 96If the current controlling TTY is a 97.Xr syscons 4 98console, asks the user to set the current keymap, and saves the result to the 99new system's 100.Pa rc.conf . 101.It Cm hostname 102Prompts the user for a host name for the new system and saves the result to the 103new system's 104.Pa rc.conf . 105If 106.Ev BSDINSTALL_CONFIGCURRENT 107is set, also sets the host name of the current system. 108.It Cm netconfig 109Interactively configures network interfaces (first invoking 110.Cm wlanconfig 111on wireless interfaces), saving the result to the new system's 112.Pa rc.conf 113and 114.Pa resolv.conf . 115If 116.Ev BSDINSTALL_CONFIGCURRENT 117is set, also configures the network interfaces of the current system to match. 118.It Cm autopart 119Provides the installer's interactive guided disk partitioner for single-disk 120installations. Partitions disks, runs 121.Xr newfs 8 , 122and writes the new system's 123.Pa fstab .
|
| 124.It Cm zfsboot 125Provides the installer's 126.Pq experimental 127interactive/scriptable ZFS partitioner for multi-disk installations. 128Creates a single 129.Ic zpool 130with datasets and writes to the new system's 131.Pa rc.conf , 132.Pa loader.conf , 133and 134.Pa fstab . 135Supports 136.Xr geli 8 , 137.Xr gnop 8 , 138and many other features.
|
111.It Cm partedit 112Provides the installer's interactive manual disk partitioner, with support 113for multi disk setups, non-UFS file systems, and manual selection of 114partition schemes. Partitions disks, runs 115.Xr newfs 8 , 116and writes the new system's 117.Pa fstab . 118.It Cm scriptedpart Ar parameters 119Sets up disks like 120.Cm autopart 121and 122.Cm partedit , 123but non-interactively according to the disk setup specified in 124.Ar parameters . 125Each disk setup is specified by a three-part argument: 126.Pp 127.Ar disk 128.Op Ar scheme 129.Op Ar {partitions} 130.Pp 131Multiple disk setups are separated by semicolons. The 132.Ar disk 133argument specifies the disk on which to operate (which will be erased), 134while the 135.Ar scheme 136argument specifies the 137.Xr gpart 8 138partition scheme to apply to the disk. If 139.Ar scheme 140is unspecified, 141.Cm scriptedpart 142will apply the default bootable scheme on your platform. 143The 144.Ar partitions 145argument is also optional and specifies how to partition 146.Ar disk . 147It consists of a comma-separated list of partitions to create enclosed in 148curly braces. Each partition declaration takes the form 149.Pp 150.Ar size 151.Ar type 152.Op Ar mount point 153.Pp 154.Ar size 155specifies the partition size to create in bytes (K, M, and G suffixes 156can be appended to specify kilobytes, megabytes, and gigabytes respectively), 157while the 158.Em auto 159keyword causes the partition to take all the remaining space on the disk. The 160.Ar type 161option chooses the 162.Xr gpart 8 163filesystem type (e.g. freebsd-ufs or freebsd-swap). 164The optional 165.Ar mount point 166argument sets where the created partition is to be mounted in the installed 167system. As an example, a typical invocation looks like: 168.Pp 169bsdinstall scriptedpart ada0 { 20G freebsd-ufs /, 4G freebsd-swap, 20G freebsd-ufs /var, auto freebsd-ufs /usr } 170.It Cm mount 171Mounts the file systems previously configured by 172.Cm autopart , 173.Cm partedit , 174or 175.Cm scriptedpart 176under 177.Ev BSDINSTALL_CHROOT . 178.It Cm distfetch 179Fetches the distributions in 180.Ev DISTRIBUTIONS 181to 182.Ev BSDINSTALL_DISTDIR 183from 184.Ev BSDINSTALL_DISTSITE . 185.It Cm checksum 186Verifies the checksums of the distributions listed in 187.Ev DISTRIBUTIONS 188against the distribution manifest. 189.It Cm distextract 190Extracts the distributions listed in 191.Ev DISTRIBUTIONS 192into 193.Ev BSDINSTALL_CHROOT . 194.It Cm rootpass 195Interactively invokes 196.Xr passwd 1 197in the new system to set the root user's password. 198.It Cm adduser 199Interactively invokes 200.Xr adduser 8 201in the new system. 202.It Cm time 203Interactively sets the time, date, and time zone of the new system. 204.It Cm services 205Queries the user for the system daemons to begin at system startup, 206writing the result into the new system's 207.Pa rc.conf . 208.It Cm config 209Installs the configuration files destined for the new system (e.g. rc.conf 210fragments generated by 211.Cm netconfig , 212etc.) onto the new system. 213.El 214.Sh ENVIRONMENT VARIABLES 215The following environment variables control various aspects of the installation 216process. Many are used internally during installation and have reasonable 217default values for most installation scenarios. Others are set by various 218interactive user prompts, and can be usefully overridden when making scripted 219or customized installers. 220.Bl -tag -width ".Ev BSDINSTALL_DISTSITE" 221.It Ev DISTRIBUTIONS 222The set of distributions to install (e.g. "base kernel ports"). Default: none 223.It Ev BSDINSTALL_DISTDIR 224The directory in which the distribution files can be found (or to which they 225should be downloaded). Default: 226.Pa /usr/freebsd-dist 227.It Ev BSDINSTALL_DISTSITE 228URL from which the distribution files should be downloaded if they are not 229already present in the directory defined by 230.Ev BSDINSTALL_DISTDIR . 231This should be a full path to the files, including architecture and release 232names. Most targets (e.g. 233.Cm auto 234and 235.Cm jail ) 236that prompt for a 237.Fx 238mirror will skip that step if this variable is already defined in the 239environment. Example: 240.Pa ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/powerpc64/9.1-RELEASE 241.It Ev BSDINSTALL_CHROOT 242The directory into which the distribution files should be unpacked and the 243directory at which the root file system of the new system should be mounted. 244Default: 245.Pa /mnt 246.It Ev BSDINSTALL_LOG 247Path to a log file for the installation. Default: 248.Pa /tmp/bsdinstall_log 249.It Ev BSDINSTALL_TMPETC 250Directory where files destined for the new system's 251.Pa /etc 252will be stored until the 253.Cm config 254target is executed. If this directory does not already exist, it will be 255created. Default: 256.Pa /tmp/bsdinstall_etc 257.It Ev BSDINSTALL_TMPBOOT 258Directory where files destined for the new system's 259.Pa /boot 260will be stored until the 261.Cm config 262target is executed. If this directory does not already exist, it will be 263created. Default: 264.Pa /tmp/bsdinstall_boot 265.El 266.Sh SCRIPTING 267.Nm 268scripts consist of two parts: a 269.Em preamble 270and a 271.Em setup script . 272The preamble sets up the options for the installation (how to partition the 273disk[s], which distributions to install, etc.) and the optional second part is 274a shell script run under 275.Xr chroot 8 276in the newly installed system before 277.Nm 278exits. The two parts are separated by the usual script header (#!), which 279also sets the interpreter for the setup script. 280.Pp 281A typical bsdinstall script looks like this: 282.Bd -literal -offset indent 283PARTITIONS=ada0 284DISTRIBUTIONS="kernel.txz base.txz" 285 286#!/bin/sh 287echo "ifconfig_em0=DHCP" >> /etc/rc.conf 288echo "sshd_enable=YES" >> /etc/rc.conf 289pkg install puppet 290.Ed 291.Pp 292On 293.Fx 294release media, such a script placed at 295.Pa /etc/installerconfig 296will be run at boot time and the system will be rebooted automatically after 297the installation has completed. This can be used for unattended network 298installation of new systems; see 299.Xr diskless 8 300for details. 301.Ss PREAMBLE 302The preamble consists of installer settings. These control global installation 303parameters (see 304.Sx ENVIRONMENT VARIABLES ) 305as well as disk partitioning. The preamble is interpreted as a 306.Xr sh 1 307script run at the very beginning of the install. If more complicated behavior 308than setting these variables is desired, arbitrary commands can be run here 309to extend the installer. In addition to the variables in 310.Sx ENVIRONMENT VARIABLES , 311in particular 312.Ev DISTRIBUTIONS , 313the preamble can contain a variable 314.Ev PARTITIONS 315which is passed to the 316.Cm scriptedpart 317target to control disk setup.
| 139.It Cm partedit 140Provides the installer's interactive manual disk partitioner, with support 141for multi disk setups, non-UFS file systems, and manual selection of 142partition schemes. Partitions disks, runs 143.Xr newfs 8 , 144and writes the new system's 145.Pa fstab . 146.It Cm scriptedpart Ar parameters 147Sets up disks like 148.Cm autopart 149and 150.Cm partedit , 151but non-interactively according to the disk setup specified in 152.Ar parameters . 153Each disk setup is specified by a three-part argument: 154.Pp 155.Ar disk 156.Op Ar scheme 157.Op Ar {partitions} 158.Pp 159Multiple disk setups are separated by semicolons. The 160.Ar disk 161argument specifies the disk on which to operate (which will be erased), 162while the 163.Ar scheme 164argument specifies the 165.Xr gpart 8 166partition scheme to apply to the disk. If 167.Ar scheme 168is unspecified, 169.Cm scriptedpart 170will apply the default bootable scheme on your platform. 171The 172.Ar partitions 173argument is also optional and specifies how to partition 174.Ar disk . 175It consists of a comma-separated list of partitions to create enclosed in 176curly braces. Each partition declaration takes the form 177.Pp 178.Ar size 179.Ar type 180.Op Ar mount point 181.Pp 182.Ar size 183specifies the partition size to create in bytes (K, M, and G suffixes 184can be appended to specify kilobytes, megabytes, and gigabytes respectively), 185while the 186.Em auto 187keyword causes the partition to take all the remaining space on the disk. The 188.Ar type 189option chooses the 190.Xr gpart 8 191filesystem type (e.g. freebsd-ufs or freebsd-swap). 192The optional 193.Ar mount point 194argument sets where the created partition is to be mounted in the installed 195system. As an example, a typical invocation looks like: 196.Pp 197bsdinstall scriptedpart ada0 { 20G freebsd-ufs /, 4G freebsd-swap, 20G freebsd-ufs /var, auto freebsd-ufs /usr } 198.It Cm mount 199Mounts the file systems previously configured by 200.Cm autopart , 201.Cm partedit , 202or 203.Cm scriptedpart 204under 205.Ev BSDINSTALL_CHROOT . 206.It Cm distfetch 207Fetches the distributions in 208.Ev DISTRIBUTIONS 209to 210.Ev BSDINSTALL_DISTDIR 211from 212.Ev BSDINSTALL_DISTSITE . 213.It Cm checksum 214Verifies the checksums of the distributions listed in 215.Ev DISTRIBUTIONS 216against the distribution manifest. 217.It Cm distextract 218Extracts the distributions listed in 219.Ev DISTRIBUTIONS 220into 221.Ev BSDINSTALL_CHROOT . 222.It Cm rootpass 223Interactively invokes 224.Xr passwd 1 225in the new system to set the root user's password. 226.It Cm adduser 227Interactively invokes 228.Xr adduser 8 229in the new system. 230.It Cm time 231Interactively sets the time, date, and time zone of the new system. 232.It Cm services 233Queries the user for the system daemons to begin at system startup, 234writing the result into the new system's 235.Pa rc.conf . 236.It Cm config 237Installs the configuration files destined for the new system (e.g. rc.conf 238fragments generated by 239.Cm netconfig , 240etc.) onto the new system. 241.El 242.Sh ENVIRONMENT VARIABLES 243The following environment variables control various aspects of the installation 244process. Many are used internally during installation and have reasonable 245default values for most installation scenarios. Others are set by various 246interactive user prompts, and can be usefully overridden when making scripted 247or customized installers. 248.Bl -tag -width ".Ev BSDINSTALL_DISTSITE" 249.It Ev DISTRIBUTIONS 250The set of distributions to install (e.g. "base kernel ports"). Default: none 251.It Ev BSDINSTALL_DISTDIR 252The directory in which the distribution files can be found (or to which they 253should be downloaded). Default: 254.Pa /usr/freebsd-dist 255.It Ev BSDINSTALL_DISTSITE 256URL from which the distribution files should be downloaded if they are not 257already present in the directory defined by 258.Ev BSDINSTALL_DISTDIR . 259This should be a full path to the files, including architecture and release 260names. Most targets (e.g. 261.Cm auto 262and 263.Cm jail ) 264that prompt for a 265.Fx 266mirror will skip that step if this variable is already defined in the 267environment. Example: 268.Pa ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/powerpc64/9.1-RELEASE 269.It Ev BSDINSTALL_CHROOT 270The directory into which the distribution files should be unpacked and the 271directory at which the root file system of the new system should be mounted. 272Default: 273.Pa /mnt 274.It Ev BSDINSTALL_LOG 275Path to a log file for the installation. Default: 276.Pa /tmp/bsdinstall_log 277.It Ev BSDINSTALL_TMPETC 278Directory where files destined for the new system's 279.Pa /etc 280will be stored until the 281.Cm config 282target is executed. If this directory does not already exist, it will be 283created. Default: 284.Pa /tmp/bsdinstall_etc 285.It Ev BSDINSTALL_TMPBOOT 286Directory where files destined for the new system's 287.Pa /boot 288will be stored until the 289.Cm config 290target is executed. If this directory does not already exist, it will be 291created. Default: 292.Pa /tmp/bsdinstall_boot 293.El 294.Sh SCRIPTING 295.Nm 296scripts consist of two parts: a 297.Em preamble 298and a 299.Em setup script . 300The preamble sets up the options for the installation (how to partition the 301disk[s], which distributions to install, etc.) and the optional second part is 302a shell script run under 303.Xr chroot 8 304in the newly installed system before 305.Nm 306exits. The two parts are separated by the usual script header (#!), which 307also sets the interpreter for the setup script. 308.Pp 309A typical bsdinstall script looks like this: 310.Bd -literal -offset indent 311PARTITIONS=ada0 312DISTRIBUTIONS="kernel.txz base.txz" 313 314#!/bin/sh 315echo "ifconfig_em0=DHCP" >> /etc/rc.conf 316echo "sshd_enable=YES" >> /etc/rc.conf 317pkg install puppet 318.Ed 319.Pp 320On 321.Fx 322release media, such a script placed at 323.Pa /etc/installerconfig 324will be run at boot time and the system will be rebooted automatically after 325the installation has completed. This can be used for unattended network 326installation of new systems; see 327.Xr diskless 8 328for details. 329.Ss PREAMBLE 330The preamble consists of installer settings. These control global installation 331parameters (see 332.Sx ENVIRONMENT VARIABLES ) 333as well as disk partitioning. The preamble is interpreted as a 334.Xr sh 1 335script run at the very beginning of the install. If more complicated behavior 336than setting these variables is desired, arbitrary commands can be run here 337to extend the installer. In addition to the variables in 338.Sx ENVIRONMENT VARIABLES , 339in particular 340.Ev DISTRIBUTIONS , 341the preamble can contain a variable 342.Ev PARTITIONS 343which is passed to the 344.Cm scriptedpart 345target to control disk setup.
|
| 346Alternatively, 347instead of 348.Ev PARTITIONS , 349the preamble can contain the variable 350.Ev ZFSBOOT_DATASETS 351which is parsed by the 352.Pq experimental 353.Cm zfsboot 354target to control ZFS datasets/options of the boot pool setup.
|
318.Ss SETUP SCRIPT 319Following the preamble is an optional shell script, beginning with a #! 320declaration. This script will be run at the end of the installation process 321inside a 322.Xr chroot 8 323environment in the newly installed system and can be used to set up 324configuration files, install packages, etc. Note that newly configured 325system services (e.g. networking) have not been started in the installed 326system at this time and only installation host services are available. 327.Sh HISTORY 328This version of 329.Nm 330first appeared in 331.Fx 9.0 . 332.Sh AUTHORS 333.An -nosplit 334.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org
| 355.Ss SETUP SCRIPT 356Following the preamble is an optional shell script, beginning with a #! 357declaration. This script will be run at the end of the installation process 358inside a 359.Xr chroot 8 360environment in the newly installed system and can be used to set up 361configuration files, install packages, etc. Note that newly configured 362system services (e.g. networking) have not been started in the installed 363system at this time and only installation host services are available. 364.Sh HISTORY 365This version of 366.Nm 367first appeared in 368.Fx 9.0 . 369.Sh AUTHORS 370.An -nosplit 371.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org
|