**Contents**
[[!toc levels=3]]
# Example installation
## Introduction
This chapter will guide you through the installation process. The concepts
presented here apply to all installation methods. The only difference is in the
way the distribution sets are fetched by the installer. Some details of the
installation differ depending on the NetBSD release: The examples from this
chapter were created with NetBSD 5.0.
### Note
The following install screens are just examples. Do not simply copy them, as
your hardware and configuration details may be different!
## The installation process
The installation process is divided logically in two parts. In the first part
you create a partition for NetBSD and write the disklabel for that partition. In
the second part you decide which distribution sets (subsets of the operating
system) you want to install and then extract the files into the newly created
partition(s).
## Keyboard layout
[[!table data="""
US | IT | DE | FR
`-` | `'` | `ß` | `)`
`/` | `-` | `-` | `!`
`=` | `ì` | `'` | `-`
`:` | `ç` | `Ö` | `M`
`;` | `ò` | `ö` | `m`
`#` | `£` | `§` | `3`
`"` | `°` | `Ä` | `%`
`*` | `(` | `(` | `8`
`(` | `)` | `)` | `9`
`)` | `=` | `=` | `0`
`'` | `à` | `ä` | `ù`
`` ` `` | `\` | `^` | `@`
`\` | `ù` | `#` | `` ` ``
"""]]
The NetBSD install program sysinst allows you to change the keyboard layout
during the installation. If for some reason this does not work for you, you can
use the map in the following table.
## Starting the installation
To start the installation of NetBSD, insert your chosen boot media (CD/DVD, USB
drive, floppy, etc.) and reboot the computer. The kernel on the installation
medium will be booted and start displaying a lot of messages on the screen about
hardware being detected.
![Selecting the language](/guide/images/exinst_language.png)
**Selecting the language**
When the kernel has booted you will find yourself in the NetBSD installation
program, sysinst, shown in the previous figure. From here on you should follow
the instructions displayed on the screen, using the `INSTALL` document as a
companion reference. You will find the INSTALL document in various formats in
the root directory of the NetBSD release. The sysinst screens all have more or
less the same layout: the upper part of the screen shows a short description of
the current operation or a short help message, and the rest of the screen is
made up of interactive menus and prompts. To make a choice, use the cursor keys,
the `Ctrl+N` (next) and `Ctrl+P` (previous) keys, or press one of the letters
displayed left of each choice. Confirm your choice by pressing the Return key.
Start by selecting the language you prefer to use for the installation process.
The next screen will allow you to select a suitable keyboard type:
![Selecting a keyboard type](/guide/images/exinst_keyboard.png)
**Selecting a keyboard type**
This will bring you to the main menu of the installation program:
![The sysinst main menu](/guide/images/exinst_main.png)
**The sysinst main menu**
Choosing the *Install NetBSD to hard disk* option brings you to the next screen
, where you need to confirm that you want to continue the installation:
![Confirming to install NetBSD](/guide/images/exinst_confirm.png)
**Confirming to install NetBSD**
After choosing *Yes* to continue, sysinst displays a list of one or more disks
and asks which one you want to install NetBSD on. In the example given in the
following figure, there are two disks, and NetBSD will be installed on `wd0`,
the first IDE disk found. If you use SCSI or external USB disks, the first will
be named `sd0`, the second `sd1` and so on.
![Choosing a hard disk](/guide/images/exinst_select_disk.png)
**Choosing a hard disk**
The installer will then ask whether you want to do a full, minimal or custom
installation. NetBSD is broken into a collection of distributions sets. *Full
installation* is the default and will install all sets; *Minimal installation*
will only install a small core set, the minimum of what is needed for a working
system. If you select *Custom installation* you can select which sets you would
like to have installed. This step is shown here:
![Full or custom installation](/guide/images/exinst_install-type.png)
**Full or custom installation**
If you choose to do a custom installation, sysinst will allow you to choose
which distribution sets to install, as shown in the following figure. At a
minimum, you must select a kernel and the *Base* and *System (/etc)* sets.
![Selecting distribution sets](/guide/images/exinst_sets.png)
**Selecting distribution sets**
## MBR partitions
The first important step of the installation has come: the partitioning of the
hard disk. First, you need to specify whether NetBSD will use a partition
(suggested choice) or the whole disk. In the former case it is still possible to
create a partition that uses the whole hard disk (see below) so we recommend
that you select this option as it keeps the BIOS partition table in a format
which is compatible with other operating systems.
![Choosing the partitioning scheme](/guide/images/exinst_mbr.png)
**Choosing the partitioning scheme**
The next screen shows the current state of the MBR partition table on the hard
disk before the installation of NetBSD. There are four primary partitions, and
as you can see, this example disk is currently empty. If you do have other
partitions you can leave them around and install NetBSD on a partition that is
currently unused, or you can overwrite a partition to use it for NetBSD.
![fdisk](/guide/images/exinst_fdisk.png)
**fdisk**
Deleting a partition is simple: after selecting the partition, a menu with
options for that partition will appear (see below). Change the partition kind to
*Delete partition* to remove the partition. Of course, if you want to use the
partition for NetBSD you can set the partition kind to *NetBSD*.
You can create a partition for NetBSD by selecting the partition you want to
install NetBSD to. The partition names `a` to `d` correspond to the four primary
partitions on other operating systems. After selecting a partition, a menu with
options for that partition will appear, as shown here:
![Partition options](/guide/images/exinst_fdisk-type.png)
**Partition options**
To create a new partition, the following information must be supplied:
* the type (kind) of the new partition
* the first (start) sector of the new partition
* the size of the new partition
Choose the partition type *NetBSD* for the new partition (using the `type`
option). The installation program will try to guess the *start* position based
on the end of the preceding partition. Change this value if necessary. The same
thing applies to the `size` option; the installation program will try to fill in
the space that is available until the next partition or the end of the disk
(depending on which comes first). You can change this value if it is incorrect,
or if you do not want NetBSD to use the suggested amount of space.
After you have chosen the partition type, start position, and size, it is a good
idea to set the name that should be used in the boot menu. You can do this by
selecting the *bootmenu* option and providing a label, e.g., `NetBSD`. It is a
good idea to repeat this step for other bootable partitions so you can boot both
NetBSD and a Windows system (or other operating systems) using the NetBSD
bootselector. If you are satisfied with the partition options, confirm your
choice by selecting *Partition OK*. Choose *Partition table OK* to leave the MBR
partition table editor.
If you have made an error in partitioning (for example you have created
overlapping partitions) sysinst will display a message and suggest that you go
back to the MBR partition editor (but you are also allowed to continue). If the
data is correct but the NetBSD partition lies outside the range of sectors which
is bootable by the BIOS, sysinst will warn you and ask if you want to proceed
anyway. Doing so may lead to problems on older PCs.
*Note*: This is not a limitation of NetBSD. Some old BIOSes cannot boot a
partition which lies outside the first 1024 cylinders. To fully understand the
problem you should study the different type of BIOSes and the many addressing
schemes that they use (*physical CHS*, *logical CHS*, *LBA*, ...). These topics
are not described in this guide.
On modern computers (those with support for *int13 extensions*), it is possible
to install NetBSD in partitions that live outside the first 8 GB of the hard
disk, provided that the NetBSD boot selector is installed.
Next, sysinst will offer to install a boot selector on the hard disk. This
screen is shown here:
![Installing the boot selector](/guide/images/exinst_bootselect.png)
**Installing the boot selector**
At this point, the *BIOS partitions* (called *slices* on BSD systems) have been
created. They are also called *PC BIOS partitions*, *MBR partitions* or *fdisk
partitions*.
*Note*: Do not confuse the *slices* or *BIOS partitions* with the *BSD
partitions*, which are different things.
## Disklabel partitions
Some platforms, like PC systems (amd64 and i386), use DOS-style MBR partitions
to separate file systems. The MBR partition you created earlier in the
installation process is necessary to make sure that other operating systems do
not overwrite the diskspace that you allocated to NetBSD.
NetBSD uses its own partition scheme, called a *disklabel*, which is stored at
the start of the MBR partition. In the next few steps you will create a
[disklabel(5)](http://netbsd.gw.com/cgi-bin/man-cgi?disklabel+5+NetBSD-5.0.1+i386)
and set the sizes of the NetBSD partitions, or use existing partition sizes, as
shown here:
![Edit partitions?](/guide/images/exinst_disklabel.png)
**Edit partitions?**
When you choose to set the sizes of the NetBSD partitions you can define the
partitions you would like to create. The installation program will generate a
disklabel based on these settings. This installation screen is shown here:
![Setting partition sizes](/guide/images/exinst_disklabel-change.png)
**Setting partition sizes**
The default partition scheme of just using a big `/` (root) file system (plus
swap) works fine with NetBSD, and there is little need to change this. The
previous figure shows how to change the size of the swap partition to 600 MB.
Changing `/tmp` to reside on a *RAM disk*
([mfs(8)](http://netbsd.gw.com/cgi-bin/man-cgi?mfs+8+NetBSD-5.0.1+i386)) for
extra speed may be a good idea. Other partition schemes may use separate
partitions for `/var`, `/usr` and/or `/home`, but you should use your own
experience to decide if you need this.
The next step is to create the disklabel and edit its partitions, if necessary,
using the disklabel editor (see below). If you predefined the partition sizes in
the previous step, the resulting disklabel will probably fit your wishes. In
that case you can complete the process immediately by selecting *Partition sizes
ok*.
![The disklabel editor](/guide/images/exinst_disklabel-partitions.png)
**The disklabel editor**
There are two reserved partitions, `c`, representing the NetBSD partition, and
`d`, representing the whole disk. You can edit all other partitions by using the
cursor keys and pressing the return key. You can add a partition by selecting an
unused slot and setting parameters for that partition. The partition editing
screen is shown below:
![Disklabel partition editing](/guide/images/exinst_disklabel-partition-editor.png)
**Disklabel partition editing**
## Setting the disk name
After defining the partitions in the new disklabel, the last item is to enter a
name for the NetBSD disk as shown bwlow. This can be used later to distinguish
between disklabels of otherwise identical disks.
![Naming the NetBSD disk](/guide/images/exinst_diskname.png)
**Naming the NetBSD disk**
## Last chance!
The installer now has all the data it needs to prepare the disk. Nothing has
been written to the disk at this point, and now is your last chance to abort the
installation process before actually writing data to the disk. Choose *no* to
abort the installation process and return to the main menu, or continue by
selecting *yes*.
![Last chance to abort](/guide/images/exinst_last-chance.png)
**Last chance to abort**
## The disk preparation process
After confirming that sysinst should prepare the disk, it will run
[disklabel(8)](http://netbsd.gw.com/cgi-bin/man-cgi?disklabel+8+NetBSD-5.0.1+i386)
to create the NetBSD partition layout and
[newfs(8)](http://netbsd.gw.com/cgi-bin/man-cgi?newfs+8+NetBSD-5.0.1+i386) to
create the file systems on the disk.
After preparing the NetBSD partitions and their filesystems, the next question
(shown in the next figure) is which *bootblocks* to install. Usually you will
choose the default of *BIOS console*, i.e., show boot messages on your
computer's display.
If you run a farm of machines without monitor, it may be more convenient to use
a serial console running on one of the serial ports. The menu also allows
changing the serial port's baud rate from the default of 9600 baud, 8 data bits,
no parity and one stopbit.
![Selecting bootblocks](/guide/images/exinst_bootblocks.png)
**Selecting bootblocks**
## Choosing the installation media
At this point, you have finished the first and most difficult part of the
installation!
The second half of the installation process consists of populating the file
systems by extracting the distribution sets that you selected earlier (base,
compiler tools, games, etc). Before unpacking the sets, sysinst asks what
information you would like to see during that process, as shown below. You can
choose between a progress bar, a display of the name of each extracted file, or
nothing.
![Choosing the verbosity of the extraction process](/guide/images/exinst_verbosity.png)
**Choosing the verbosity of the extraction process**
Now sysinst needs to find the NetBSD sets and you must tell it where to find
them. The menu offers several choices, as shown below. The options are explained
in detail in the `INSTALL` documents.
![Installation media](/guide/images/exinst_medium.png)
**Installation media**
### Installing from CD-ROM or DVD
When selecting *CD-ROM / DVD*, sysinst asks the name of the CD-ROM or DVD device
and the directory in which the set files are stored, see below. The device is
usually `cd0` for the first CD-ROM or DVD drive, regardless of whether it is IDE
or SCSI (or even USB or FireWire).
![CD-ROM/DVD installation](/guide/images/exinst_cdrom.png)
**CD-ROM/DVD installation**
### The CD-ROM/DVD device name
If you don't know the name of the CD-ROM/DVD device, you can find by doing the
following:
1. Press Ctrl-Z to pause sysinst and go to the shell prompt.
2. Type the command:
# dmesg
This will show the kernel startup messages, including the name of the CD-ROM device, for example *cd0*.
3. If the display scrolls too quickly, you can also use **more**:
# dmesg | more
4. Go back to the installation program with the command:
# fg
### Installing from an unmounted file system
The next figure shows the menu to install NetBSD from an unmounted file system.
It is necessary to specify the device (*Device*), the file system of the device
(*File system*) and the path to the install sets (*Set directory*). The setting
for the *Base directory* is optional and can be kept blank.
In the following example the install sets are stored on a *MSDOS* file system,
on partition `e` on the device `sd0`.
![Mounting a file system](/guide/images/exinst_mount.png)
**Mounting a file system**
It is usually necessary to specify the device name and the partition. The
following figure shows how to specify device `sd0` with partition `e`.
![Mounting a partition](/guide/images/exinst_mount-partition.png)
**Mounting a partition**
In the next figure, the file system type is specified. It is `msdos` but it
could also be the NetBSD file system `ffs` or `ext2fs`, a Linux file system. The
*Base directory item is left blank and the binary sets are stored under `/sets`.
Choosing *Continue* will start the extraction of the sets.
*
![Accessing a MSDOS file system](/guide/images/exinst_mount-msdos.png)
**Accessing a MSDOS file system**
### Installing via FTP
If you choose to install from a local network or the Internet via FTP, sysinst
will configure the system's network connection, download the selected set files
to a temporary directory, and then extract them.
NetBSD currently supports installation via ethernet, USB ethernet or wireless,
and wireless LAN. Installation via DSL (PPP over Ethernet) is not supported
during installation.
The first step shown in the next figure further below consists of selecting
which network card to configure. sysinst will determine a list of available
network interfaces, present them and ask which one to use.
*Note*: The exact names of your network interfaces depend on the hardware you
use. Example interfaces are `wm` for Intel Gigabit interfaces, `ne` for NE2000
and compatible ethernet cards, and `ath` for Atheros based wireless cards. This
list is by no means complete, and NetBSD supports many more network devices.
To get a list of network interfaces available on your system, interrupt the
installation process by pressing `Ctrl+Z`, then enter
# ifconfig -a
ne2: flags=8822<UP,BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500
address: 00:06:0d:c6:73:d5
media: Ethernet autoselect 10baseT full-duplex
status: active
inet 0.0.0.0 netmask 0xffffff00 broadcast 0.0.0.0
inet6 fe80::206:dff:fec6:73d5%ne2 prefixlen 64 scopeid 0x1
lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 33196
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
ppp1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 296
sl1: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 296
strip0: flags=0 mtu 1100
strip1: flags=0 mtu 1100
To get more information about all the devices found during system startup,
including network devices, type
# dmesg | more
You can return to the NetBSD installation by typing
# fg
![Which network interface to configure](/guide/images/exinst_ftp-if.png)
**Which network interface to configure**
Next, you have a chance to set your network medium.
*Note*: It is unlikely that you will need to enter anything other than the
default here. If you experience problems like very slow transfers or timeouts,
you may, for example, force different duplex settings for ethernet cards. To get
a list of supported media and media options for a given network device (ne2, for
example), escape from sysinst by pressing `Ctrl+Z`, then enter:
# ifconfig -m ne2
ne2: flags=8822<UP,BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500
address: 00:03:0d:c6:73:d5
media: Ethernet 10baseT full-duplex
status: active
supported Ethernet media:
media 10baseT
media 10baseT mediaopt full-duplex
media 10base2
media autoselect
The various values printed after `media` may be of interest here, including
keywords like `autoselect` but also including any `mediaopt` settings.
Return to the installation by typing:
# fg
The next question will be whether you want to perform DHCP autoconfiguration as
shown in the figure below. Answer *Yes* if you have a DHCP *Dynamic Host
Configuration Protocol* (DHCP) running somewhere on your network, and sysinst
will fetch a number of defaults from it. Answer *No* to enter all the values
manually.
We will assume you answered *No* and go into all the questions asked in detail.
![Using DHCP for network configuration](/guide/images/exinst_ftp-dhcp.png)
**Using DHCP for network configuration**
The image below shows the questions asked for the network configuration. The
values to be entered are:
* *Your DNS Domain:* -- This is the name of the domain you are in.
* *Your hostname:* -- The name by which other machines can usually address your
computer. Not used during installation.
* *Your IPv4 number:* -- Enter your numerical Internet Protocol address in
*dotted quad* notation here, for example, 192.168.1.3
* *IPv4 Netmask:* -- The netmask for your network, either given as a hex value
(`0xffffff00`) or in dotted-quad notation (`255.255.255.0`).
* *IPv4 gateway:* -- Your router's (or default gateway's) IP address. Do not
use a hostname here!
* *IPv4 name server:* -- Your (first) DNS server's IP address. Again, don't use
a hostname.
![Entering and configuring network data](/guide/images/exinst_ftp-cfg.png)
**Entering and configuring network data**
After answering all of your network configuration info, it will be displayed,
and you will have a chance to go back and make changes.
![Confirming network parameters](/guide/images/exinst_ftp-cfgok.png)
**Confirming network parameters**
sysinst will now run a few commands (not displayed in detail here) to configure
the network: flushing the routing table, setting the default route, and testing
if the network connection is operational.
Now that you have a functional network connection, you must tell the installer
how to get the distribution sets, as shown in the next figure.
When you are satisfied with your settings (the defaults work most of the time),
choose *Get Distribution* to continue.
![Defining the FTP settings](/guide/images/exinst_ftp-src.png)
**Defining the FTP settings**
### Installing via NFS
If you want to install NetBSD from a server in your local network, NFS is an
alternative to FTP.
*Note*: Using this installation method requires the ability to set up an NFS
server, a topic which is not discussed here.
As shown below, you must specify the IP address of the NFS server with "Host",
the "Base directory" that is *exported* by the NFS server, and the "Set
directory", which contains the install sets.
![NFS install screen](/guide/images/exinst_nfs.png)
**NFS install screen**
The following image shows an example: Host `192.168.1.50` is the NFS server that
provides the directory `/home/username/Downloads` The NetBSD install sets are
stored in the directory `/home/username/Downloads/sets` on the NFS server.
Choose *Continue* to start the installation of the distribution sets.
![NFS example](/guide/images/exinst_nfs-example.png)
**NFS example**
## Extracting sets
After the method for obtaining distribution sets has been chosen, and (if
applicable) after those sets have been transferred, they will be extracted into
the new NetBSD file system.
After extracting all selected sets, sysinst will create device nodes in the
`/dev` directory and then display a message saying that everything went well.
Another message will let you know that the set extraction is now completed, and
that you will have an opportunity to configure some essential things before
finishing the NetBSD installation:
![Extraction of sets completed](/guide/images/exinst_extraction-complete.png)
**Extraction of sets completed**
## System configuration
Having reached this point of the installation you will see the configuration
menu:
![Configuration menu](/guide/images/exinst_configuration_menu.png)
**Configuration menu**
Here, you can do the following:
* *Configure network* -- make changes to the network settings on the installed
system, i.e. either configure it or if you already did, write that
configuration to disk.
* *Timezone* -- set your time zone.
* *Root shell* -- this potion allows you to choose which command line
interpreter, also known as *shell*, will be used for the root account.
* *Change root password* -- set the password you will use to login in as root.
* *Enable installation of binary packages* -- this option enables the
installation of binary packages (3rd party software).
* *Fetch and unpack pkgsrc for building from source* -- install the pkgsrc
tree for installing third-party software from source.
* *Enable sshd* -- enable the secure shell daemon sshd(8) to allow users to
login over an insecure network.
* *Enable ntpd* -- ntpd(8) is the daemon to keep the system time accurate.
* *Run ntpdate at boot* -- sets the local date and time.
* *Enable mdnsd* -- a daemon invoked at boot time to implement Multicast DNS
and DNS Service Discovery.
#### Configure network
The process was already described previously, you can just call it again and
have the results directly written to disk.
#### Timezone
The timezone is Universal Time Coordinated (UTC) by default, and you can use the
two-level menu of continents/countries and cities shown in the figure below to
select your timezone with the Return Key.
![Timezone selection](/guide/images/exinst_timezone.png)
**Selecting the system's time zone**
#### Root Shell
The default is the classic Bourne shell, sh(1). Other choices are the Korn shell
(ksh(1)) and the C shell(csh(1)). If, upon reading this, you don't have some
idea of which shell you prefer, simply use the default, as this is a highly
subjective decision. Should you later change your mind, root's shell can always
be changed with the chsh(1) command or by directly editing master.passwd(5).
![Root Shell](/guide/images/exinst_rootshell.png)
**Root Shell**
#### Change root password
Perhaps one of the things that you would want to configurate is your root
password. If you don't, it is unset, i.e. you can login as root just by entering
the login name without a password.
![Change root password](/guide/images/exinst_change_root_password.png)
**Change root password**
When you agree to set a root password, sysinst will run the passwd(1) utility
for you. Please note that the password is not echoed:
![Entering root password](/guide/images/exinst_entering_root_password.png)
**Entering the root password**
#### Enable installation of binary packages
This option installs pkgin(1) and initialises its database. This will feel
familiar to users of other package tools, such as apt-get, pkg or yum.
Note that installing pkgin will need a network connection. If you didn't set it
up yet, this option will call the configuration for you.
![Enable installation of binary packages](/guide/images/exinst_pkgin.png)
**Enable installation of binary packages**
When the installation is finished, a short help is provided, and you can return
to the main menu:
![After enabling installation of binary packages](/guide/images/exinst_pkgin_after.png)
**After enabling installation of binary packages**
#### Fetch and unpack pkgsrc for building from source.
Use this option to download the [pkgsrc](http://pkgsrc.org) tree to install
additional packages by source. Note that this method in many cases conflicts
with binary packages, so you should decide for either one of them or use
different directories for installing packages.
This will require a network connection set up, otherwise, it will ask for it
itself.
![Fetch and unpack pkgsrc](/guide/images/exinst_fetch_and_unpack_pkgsrc.png)
**Fetch and unpack pkgsrc for building from source**
This step will take a while, as pkgsrc consists of many small files which have
to be unpacked on your hard disk, and several 10MB have to be downloaded.
#### Enabling daemons
Finally, you can enable some daemons such as sshd(8), ntpd(8) or mdnsd(8) and
choose whether you want to run ntpdate(8) at boot, which will set the time no
matter how large the gap between "real" time and you computer's time is. ntpd
will not set the time when the time skew is too large.
*Note*: You can change these settings any time you want after the installation.
You can either do this by directly editing the configuration files, or by
running sysinst(8) again (either from the running system, or from an
installation CD).
*Note*: When you run this menu when you already installed NetBSD, but want to
configure the running system, you have to choose the hard disk NetBSD is
installed on. When sysinst doesn't find an NetBSD installation, it will fail,
and you have to choose another disk.
## Finishing the installation
At this point the installation is finished.
![Installation completed](/guide/images/exinst_completed.png)
**Installation completed**
After passing the dialog that confirms the installation, sysinst will return to
the main menu. Remove any installation media (CD, floppy, etc.) and choose
*Reboot the computer* to boot your new NetBSD installation.
![Reboot to finish installation](/guide/images/exinst_reboot.png)
**Reboot to finish installation**