## INSTALLATION and SETUP

System installation and setup is a basic but important job of a BSD system administrator. Beyond getting the system up and running, the BSDP candidate must be able to perform more complex tasks such as preparing and updating automated installation scripts, using a serial console for installation, restoring a corrupted boot sector, and other similar tasks.

--------------------


###  3.1.1. Build and install system from source code.

Importance: 3.6, Frequency: 1.7, Bloom: K,C

**Concept:** BSD systems allow the administrator to compile both the kernel and userland from source in order to upgrade an existing operating system. The commands provided for this purpose vary between the BSDs.

BSDP candidates should be familiar with the steps required to compile both kernel and userland from source and to install the new kernel and userland for their BSD of choice.

**Practical:**

Dragonfly BSD: build(7), development(7), make(1)

FreeBSD: config(8), make(1), mergemaster(8)

NetBSD: build.sh, etcupdate(8), postinstall(8)

OpenBSD: config(8), make(1), sysmerge(8)

**Estimated Time:** 

10 minutes to describe the steps required to build and install a system from source code.

###  3.1.2. Use disklabel to modify or create partitions.

Importance: 3.5, Frequency: 1.4, Bloom: K,C,A

**Concept:**

*Note:* bsdlabel was removed from objective as disklabel is available on all BSDs.

The disklabel utility can be used to install, examine, or modify the label on a hard drive. The disk label contains information about the size and type of disk and the partition layout. While each BSD provides the disklabel utility, the command
parameters and usage of the utility vary by BSD.

BSDP candidates should be able to view, modify, or create the disk label on a BSD system.

**Practical:**

disklabel(8)

**Estimated Time:** 

10 minutes to create or modify an existing disk label according to a specification. 

###  3.1.3. Use fdisk tool.

Importance: 3.3, Frequency: 1.5, Bloom: K,C,A

**Concept:** Note this objective was renamed. The phrase "modify or create partitions" was removed.

On BSD systems, the built-in fdisk utility is either used to view and modify the disk slice table or to view and modify the master boot record.

BSDP candidates should be able to either modify the disk slice table or the master boot record using the built-in fdisk utility, depending upon their BSD of choice.

**Practical:**

fdisk(8)

**Estimated Time:** 

10 minutes to create or edit the disk slice table or master boot record according to a specification.


<font color="#A0A0A0">

###  Change Partition IDs to other BSD or non-BSD IDs.

Importance: 2.5, Frequency: 1.2, Bloom:

**Concept:** DRU: Should we keep this objective which falls below both cutoff threshholds? If so, do we want them to do this during the install or go back into the installer utility afterwards? Or does the next objective make more sense to test than this one?

@@@jpb: recommend dropping this one, and keeping the Objective 5


**Practical:**

**Estimated Time:**

</font>

###  3.1.4. Create FAT32, NTFS, or other non-BSD partitions.

Importance: 2.5,  Frequency: 1.3, Bloom: K,C,A

**Concept:**

Creating a non-BSD disk partition is the first step in creating a filesystem
used by other operating systems.  The partition is assigned an
identifier that marks it as a non-BSD partition.  

BSDP candidates should be familiar with all the steps in the creation of a filesystem and be able to configure a disk partition as the first step
in preparing a non-BSD filesystem.

**Practical:**

fdisk(8), disklabel(8)

**Estimated Time:**

10 minutes to create a non-BSD partition according to a specification.

<font color="#A0A0A0">
###  Create or edit the device.hints or loader.conf file.

Importance: 3.2, Frequency: 1.4, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session.*

**Practical:**

**Estimated Time:**</font>

<font color="#A0A0A0">

###  Perform a 'headless' install using serial console.

Importance: 2.8, Frequency: 1.4, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/05/10 SME session.*

**Practical:**

**Estimated Time:**
</font>

###  3.1.5. Create an install script or configuration for unattended installation.

Importance: 3.2, Frequency: 1.4, Bloom: K,C,A

**Concept:**

Creating a script for unattended installation relieves the BSD system administrator of manually repeating the same task  when installing multiple systems.
BSDP candidates should be able to configure a script for unattended installation or post-installation configuration of a BSD system.

**Practical:**

software of choice in packages/pkgsrc

FreeBSD: sysinstall(8)

OpenBSD: install.site or upgrade.site

**Estimated Time:**

20 minutes to create, install, and test an install script according to a specification.

<font color="#A0A0A0">
###  Create an ISO installation image.

Importance: 2.8, Frequency: 1.4, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session. It should be considered for a Global Enterprise exam.*

**Practical:**

**Estimated Time:**
</font>

<font color="#A0A0A0">
### Create an emergency repair disk.

Importance: 3.1, Frequency: 1.3, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session.*

**Practical:**

**Estimated Time:**
</font>

### 3.1.6. Configure startup scripts to be run at boot time.

Importance: 3.3, Frequency: 1.9, Bloom: K,C,A

**Concept:**

Note: This objective was modified during the July 18, 2010 SME session.

BSD systems perform startup operations by means of scripts that are run at boot time.

BSDP candidates should be able to enable and disable system, third-party, and custom services at boot time, as well as temporarily start a service without configuring it to start at boot time.

**Practical:**

rc(8), rc.conf(5)

**Estimated Time:**

5 minutes to enable or disable a service to start at boot time.

<font color="#A0A0A0">
### Install a boot manager.

Importance: 3.3, Frequency: 1.5, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session. It should be considered for a Desktop or an Embedded exam.*

**Practical:**

**Estimated Time:**
</font>

### 3.1.7. Restore a corrupted boot sector.

Importance: 3.6, Frequency: 1.3, Bloom: K,C,A

**Concept:**

A corrupted boot sector prevents the system from booting normally.  Restoring the
boot sector can enable the system to boot, or enable the administrator to
access files on the affected disk.

BSDP candidates should be able to restore the master boot record of a disk.

**Practical:**

software of choice for packages/pkgsrc

fdisk(8)

NetBSD, OpenBSD: scanffs(8)

**Estimated Time:**

10 minutes to restore a corrupted boot sector.

### 3.1.8. Boot via the serial console.

Importance: 2.9, Frequency: 1.6, Bloom: K

**Concept:**

Using a serial device for booting the system permits the system to be booted when there is no attached keyboard and/or display device.

BSDP candidates should know how to configure a BSD system to use an attached serial device
during the boot loader and kernel load, all the way to a login prompt. 

**Practical:**

ttys(5)

FreeBSD: loader.conf(5)

OpenBSD: boot(8)

**Estimated Time:**

20 minutes to configure and test booting the system from a serial console.

<font color="#A0A0A0">
### Configure a splash screen at boot.

Importance: 1.6, Frequency: 1.1, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session.*

**Practical:**

**Estimated Time:**
</font>

### 3.1.9. Configure sysctl values to be loaded at system startup.

Importance: 4.0, Frequency: 1.9, Bloom: K,C, A

**Concept:**

Note: This objective was reworded during the July 18, 2010 SME session.

**Concept:**

BSD systems utilize an internal "Management Information Base" (MIB) that contains a collection of variables and values
that maintain kernel state.  The values of some of these variables can be changed by the system administrator.

BSDP candidates should understand the use of the MIB to maintain kernel state, be able to configure custom
MIB values on a live system, and configure the system to preserve custom values after a system boot.

**Practical:**

sysctl(7) or (8), sysctl.conf(5)

**Estimated Time:**

10 minutes to set custom MIB values and configure the system to preserve the values after a system boot, according to a specification.

<font color="#A0A0A0">
###  Password protect single user mode.

Importance: 3.5, Frequency: 1.4, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session.*

**Practical:**

**Estimated Time:**
</font>

### 3.1.10. Configure BSD system for PXE booting.

Importance: 3.1, Frequency: 1.6, Bloom: K,C,A

**Concept:**

NOTE: This objective requires multiple steps and is best suited to a lab exercise. 

Preboot Execution Environment (PXE) allows diskless systems to access a network's resources using a network interface.

BSDP candidates should understand the PXE boot process and be able to configure a BSD PXE boot server to enable diskless systems to boot and access network resources.  Candidates should also be able to configure the services necessary for a PXE boot environment: i) DHCP or bootp server; and ii) TFTP or NFS.

**Practical:**

software of choice from packages/pkgsrc

pxeboot(8), diskless(8)

**Estimated Time:**

30 minutes to configure a BSD PXE boot server and test a diskless workstation according to a specification.

### 3.1.11. Configure system to mount remote network filesystems at boot.

Importance: 3.7, Frequency: 2.2, Bloom: K,C,A

**Concept:**

BSD systems can be configured to access remote Network File System (NFS) shares over a network at boot time.

BSDP candidates should be able to configure a BSD system to access NFS shares over a network.

**Practical:**

fstab(5)

DragonFly BSD, FreeBSD: rc.conf(5)

**Estimated Time:**

15 minutes to configure a BSD system to mount remote NFS shares at boot time according to a specification.

<font color="#A0A0A0">
### Create and install a jail.  

(@@@jpb: MOVED to VIRTUALIZATION section)

### Prepare a host system for jails.

@@@jpb: Note: This objective was integrated into objective 174 and removed from this section during the July 18, 2010 SME session.

### Start or shutdown a jail.

@@@jpb: this objective was moved to the VIRTUALIZATION section during the July 18, 2010 SME Session.
</font>

### 3.1.12. Create a local package repository.

Importance: 3.3, Frequency: 1.7, Bloom: K,C,A

**Concept:** 

While each BSD project provides its own official package repository, it is often desirable for a system administrator to create a local repository containing only those packages needed by the organization.

BSDP candidates should be able to configure a local repository containing a subset of the packages collection or pkgsrc.  In addition, BSDP candidates should be aware of the environment variables and program switches needed to modify the default path used when installing packages.

**Practical:**

pkg_add(1)

**Estimated Time:**

20 minutes to configure and test a local package repository according to a specification.

### 3.1.13. Compile a customized binary using ports or pkgsrc.

Importance: 4.2, Frequency 3.0, Bloom: K,C,A

**Concept:** Objective renamed. The phrase ",packages" was removed.

System administrators often need to install customized software compiled from source code.

BSDP candidates should be able to compile a customized binary using either the ports collection or pkgsrc. This may require the use of make(1) targets, customizing a port's Makefile, or setting pkgsrc environmental variables.

**Practical:**

The pkgsrc Guide

make(1)

FreeBSD, OpenBSD: ports(7) 

**Estimated Time:**

10 minutes to compile and test customized software according to a specification.

<font color="#A0A0A0">
### Compress a kernel.

Importance: 2.5, Frequency: 1.4, Bloom:

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session. It should be considered for an Embedded exam.*

**Practical:**

**Estimated Time:**
</font>

<font color="#A0A0A0">
###  Perform cross-platform building, such as using build.sh or 'make universe'

Importance: 2.4, Frequency: 1.2, Bloom: 

**Concept:** *BSDCG Note: This objective was removed at the 15/5/10 SME session. It should be considered for an Embedded exam.*

**Practical:**

**Estimated Time:**
</font>
