[BACK]Return to faq4.html CVS log [TXT][DIR] Up to [local] / www / faq

File: [local] / www / faq / faq4.html (download) (as text)

Revision 1.558, Wed Apr 3 19:59:04 2024 UTC (2 months ago) by tj
Branch: MAIN
CVS Tags: HEAD
Changes since 1.557: +81 -80 lines

7.5 updates

<!doctype html>
<html lang=en id=faq>

<!-- If you make edits to any FAQ documents, please start each sentence
     on a new line, and try to keep the general formatting consistent
     with the rest of the pages -->

<title>OpenBSD FAQ: Installation Guide</title>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="../openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/faq/faq4.html">

<h2 id=OpenBSD>
<a href="../index.html">
<i>Open</i><b>BSD</b></a>
FAQ - Installation Guide
<small>
<a href="index.html">[FAQ Index]</a>
</small>
</h2>
<hr>

<ul>
  <li><a href="#bsd.rd"      >Overview of the Installation Procedure</a>
  <li><a href="#Checklist"   >Pre-Installation Checklist</a>
  <li><a href="#Download"    >Downloading OpenBSD</a>
  <li><a href="#MkInsMedia"  >Creating Install Media</a>
  <li><a href="#Install"     >Performing a Simple Install</a>
  <li><a href="#FilesNeeded" >File Sets</a>
  <li><a href="#Partitioning">Disk Partitioning</a>
  <li><a href="#WifiOnly"    >Bootstrapping Wireless Firmware</a>
  <li><a href="#SendDmesg"   >Sending Your dmesg After the Install</a>
  <li><a href="#site"        >Customizing the Install Process</a>
  <li><a href="#Multibooting">Multibooting</a>
</ul>
<hr>

<h2 id="bsd.rd">Overview of the Installation Procedure</h2>

The OpenBSD installer uses a special ramdisk kernel (<code>bsd.rd</code>)
that spawns a live environment running entirely in memory.
It contains the install script and a small number of utilities needed
to perform a complete installation.
These utilities can also be useful for disaster recovery.

<p>
The ramdisk kernel can be booted from a number of different sources:

<ul>
  <li>CD/DVD
  <li>USB drive
  <li>An existing partition
  <li>Over the network
      (<a href="faq6.html#PXE">PXE</a> or other
       <a href="https://man.openbsd.org/diskless">network boot options</a>)
  <li>Floppy disk
</ul>

Not every <a href="../plat.html">platform</a> supports all of these options.

<p>
If you have a running OpenBSD system, <code>bsd.rd</code> is all you need to
reinstall or upgrade to a newer version.
To do so,
<a href="#Download">download and verify</a> the new <code>bsd.rd</code>,
place it on an existing filesystem, and boot from it.
The general method of booting <code>bsd.rd</code> is to change your boot kernel
from <code>/bsd</code> to <code>/bsd.rd</code> through whatever means used on
your platform.

<p>
Booting from <code>bsd.rd</code> on an amd64 system can be done like so:

<pre class="cmdbox">
Using drive 0, partition 3.
Loading......
probing: pc0 com0 com1 mem[638K 1918M a20=on]
disk: hd0+ hd1+
>> OpenBSD/amd64 BOOT 3.33
boot> <b>bsd.rd</b>
</pre>

This will boot the kernel named <code>bsd.rd</code> from the first partition
of the first recognized hard disk.

<p>
If you need to specify a different drive or partition, just prefix the
kernel name with its location.
The following example would boot from the fourth partition of the second
hard drive:

<pre class="cmdbox">
Using drive 0, partition 3.
Loading......
probing: pc0 com0 com1 mem[638K 1918M a20=on]
disk: hd0+ hd1+
>> OpenBSD/amd64 BOOT 3.33
boot> <b>boot hd1d:/bsd.rd</b>
</pre>

OpenBSD boot loaders are documented in the architecture-specific
<a href="https://man.openbsd.org/boot.8">boot(8)</a> man pages.

<h2 id="Checklist">Pre-Installation Checklist</h2>

Before you start, you should have some idea what you want to end up with.
A few things worth considering beforehand:

<ul>
  <li>Machine name
  <li>Hardware installed and available:
    <ul>
      <li>Verify compatibility with your hardware.
          You may want to consult the platform-specific installation notes,
          especially if you're using one of the non-x86 CPU architectures.
          They contain detailed instructions and any possible caveats:
          <p>
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/alpha/INSTALL.alpha">alpha</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/amd64/INSTALL.amd64">amd64</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/arm64/INSTALL.arm64">arm64</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/armv7/INSTALL.armv7">armv7</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/hppa/INSTALL.hppa">hppa</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/i386/INSTALL.i386">i386</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/landisk/INSTALL.landisk">landisk</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/loongson/INSTALL.loongson">loongson</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/luna88k/INSTALL.luna88k">luna88k</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/macppc/INSTALL.macppc">macppc</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/octeon/INSTALL.octeon">octeon</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/powerpc64/INSTALL.powerpc64">powerpc64</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/riscv64/INSTALL.riscv64">riscv64</a>]
[<a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/sparc64/INSTALL.sparc64">sparc64</a>]
      <li>If wireless internet is your only networking option, does the card
        require additional firmware?
        If so, read the section on
        <a href="#WifiOnly">bootstrapping wireless firmware</a>.
    </ul>
  <li>Install method to be used
  <li>Desired disk layout:
    <ul>
      <li>Does existing data need to be saved elsewhere?
      <li>Will OpenBSD coexist on this system with another OS?
        If so, how will each system be booted?
        Will you need to install a boot manager?
      <li>Will the entire disk be used for OpenBSD, or do you want to
        keep an existing partition/OS? (or space for a future one)
      <li>How do you wish to sub-partition the OpenBSD part of your disk?
      <li>Do you want disk encryption?
    </ul>
  <li>Network settings, if not using DHCP:
    <ul>
      <li>Domain name and DNS address
      <li>IP address and subnet masks for each NIC
      <li>Gateway address
    </ul>
</ul>

<h2 id="Download">Downloading OpenBSD</h2>

The following installation images are available:

<p>
<table class="zebra">

<tr>
<td>
<b>install75.img</b>
<td>
A disk image that can be written to a USB flash drive or similar device.
Includes the <a href="#FilesNeeded">file sets</a>.
<hr>
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/amd64/install75.img">amd64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/arm64/install75.img">arm64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/i386/install75.img">i386</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/octeon/install75.img">octeon</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/powerpc64/install75.img">powerpc64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/riscv64/install75.img">riscv64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/sparc64/install75.img">sparc64</a>

<tr>
<td>
<b>miniroot75.img</b>
<td>
The same as above, but file sets are not included.
They can be pulled down from the internet or from a local disk.
<hr>
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/alpha/miniroot75.img">alpha</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/amd64/miniroot75.img">amd64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/arm64/miniroot75.img">arm64</a> |
<!-- armv7 has multiple miniroot files for different boards -->
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/armv7/">armv7</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/i386/miniroot75.img">i386</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/landisk/miniroot75.img">landisk</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/loongson/miniroot75.img">loongson</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/luna88k/miniroot75.img">luna88k</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/octeon/miniroot75.img">octeon</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/powerpc64/miniroot75.img">powerpc64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/riscv64/miniroot75.img">riscv64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/sparc64/miniroot75.img">sparc64</a>

<tr>
<td>
<b>install75.iso</b>
<td>
An ISO 9660 image that can be used to create an install CD/DVD.
Includes the file sets.
<hr>
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/alpha/install75.iso">alpha</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/amd64/install75.iso">amd64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/arm64/install75.iso">arm64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/hppa/install75.iso">hppa</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/i386/install75.iso">i386</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/macppc/install75.iso">macppc</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/powerpc64/install75.iso">powerpc64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/sparc64/install75.iso">sparc64</a>

<tr>
<td>
<b>cd75.iso</b>
<td>
The same as above, but file sets are not included.
<hr>
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/alpha/cd75.iso">alpha</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/amd64/cd75.iso">amd64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/hppa/cd75.iso">hppa</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/i386/cd75.iso">i386</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/loongson/cd75.iso">loongson</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/macppc/cd75.iso">macppc</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/sparc64/cd75.iso">sparc64</a>

<tr>
<td>
<b>floppy75.img</b>
<td>
Supports some older machines that lack other booting options.
<hr>
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/amd64/floppy75.img">amd64</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/i386/floppy75.img">i386</a> |
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.5/sparc64/floppy75.img">sparc64</a>

</table>

<p>
Images can also be downloaded from a number of alternate
<a href="../ftp.html">mirror sites</a>.

<p>
An <code>SHA256</code> file containing checksums can be found in the same
directory as the installation files.
You can confirm that none of the downloaded files were mangled in transit
using the <a href="https://man.openbsd.org/sha256">sha256(1)</a> command.

<pre class="cmdbox">
$ <b>sha256 -C SHA256 miniroot*.img</b>
(SHA256) miniroot75.img: OK
</pre>

Or, if you're using the GNU coreutils:

<pre class="cmdbox">
$ <b>sha256sum -c --ignore-missing SHA256</b>
miniroot75.img: OK
</pre>

However, this only checks for <i>accidental</i> corruption.
You can use <a href="https://man.openbsd.org/signify">signify(1)</a> and the
<code>SHA256.sig</code> file to cryptographically verify the downloaded image.

<pre class="cmdbox">
$ <b>signify -Cp /etc/signify/openbsd-75-base.pub -x SHA256.sig miniroot*.img</b>
Signature Verified
miniroot75.img: OK
</pre>

Note that the signify package on other operating systems may not include the
required <a href="https://ftp.openbsd.org/pub/OpenBSD/7.5/openbsd-75-base.pub">
public key</a>, or it may be installed in another location.

<p>
The <code>install75.iso</code> and <code>install75.img</code> images do not
contain an <code>SHA256.sig</code> file, so the installer will complain that
it can't check the signature of the included sets:

<pre class="cmdbox">
Directory does not contain SHA256.sig. Continue without verification? [no]
</pre>

This is because it would make no sense for the installer to verify them.
If someone were to make a rogue installation image, they could certainly
change the installer to say the files were legitimate.
If the image's signature has been verified beforehand, it is safe to answer
"yes" at that prompt.

<h2 id="MkInsMedia">Creating Install Media</h2>

<h3 id="MkFlash">Flash Drives</h3>

A bootable USB flash drive can be created by attaching the target device and
copying over the image with <a href="https://man.openbsd.org/dd">dd(1)</a>.

<p>
Using OpenBSD, assuming the device was recognized as <code>sd6</code>:

<pre class="cmdbox">
# <b>dd if=install*.img of=/dev/rsd6c bs=1M</b>
</pre>

Note that the <b>raw I/O device</b> is used: <code>rsd6c</code> rather than
<code>sd6c</code>.

<p>
Details of this will vary on other platforms.
If you're using a different OS, be sure to select the appropriate device
name: <code>/dev/sdX</code> on Linux or <code>/dev/rdiskX</code> on macOS
for example.

<h3 id="MkCD-ROM">CD-ROMs</h3>

You can create a bootable CD-ROM on OpenBSD by using
<a href="https://man.openbsd.org/cdio">cdio(1)</a>.

<pre class="cmdbox">
# <b>cdio tao cd*.iso</b>
</pre>

<h2 id="Install">Performing a Simple Install</h2>

If you need instructions on booting from your preferred media, check the
relevant <a href="../plat.html">platform page</a> of your machine.

<p>
The installer is designed to install OpenBSD in a very usable default
configuration with a minimum of user intervention.
In fact, you can often just hit <code>&lt;Enter&gt;</code> to get a good OpenBSD
install, moving your hands to the rest of the keyboard only to enter the
root password.

<p>
After the <a href="https://man.openbsd.org/dmesg">dmesg(8)</a> is shown,
you will see the first installer question:

<pre class="cmdbox">
...
root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/amd64 7.5 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?
</pre>

Choose <code>(I)nstall</code> and follow the instructions.

<h2 id="FilesNeeded">File Sets</h2>

The complete OpenBSD installation is broken up into a number of file sets:

<p>
<table style="margin-left: 3em">
<tr>
	<td><code>bsd</code>
	<td>The kernel <strong>(required)</strong>
<tr>
	<td><code>bsd.mp</code>
	<td>The multi-processor kernel (only on some platforms)
<tr>
	<td><code>bsd.rd</code>
	<td>The <a href="#bsd.rd">ramdisk kernel</a>
<tr>
	<td><code>base75.tgz</code>
	<td>The base system <strong>(required)</strong>
<tr>
	<td><code>comp75.tgz</code>
	<td>The compiler collection, headers and libraries
<tr>
	<td><code>man75.tgz</code>
	<td>Manual pages
<tr>
	<td><code>game75.tgz</code>
	<td>Text-based games
<tr>
	<td><code>xbase75.tgz</code>
	<td>Base libraries and utilities for X11
        (requires <code>xshare75.tgz</code>)
<tr>
	<td><code>xfont75.tgz</code>
	<td>Fonts used by X11
<tr>
	<td><code>xserv75.tgz</code>
	<td>X11's X servers
<tr>
	<td><code>xshare75.tgz</code>
	<td>X11's man pages, locale settings and includes
</table>

<p>
New users are recommended to install all of them.

<p>
Some libraries from <code>xbase75.tgz</code>, like freetype or fontconfig, can
be used outside of X by programs that manipulate text or graphics.
Such programs will usually need fonts, either from <code>xfont75.tgz</code> or
font packages.
For the sake of simplicity, the developers decided against maintaining a minimal
<code>xbase75.tgz</code> set that would allow most non-X ports to run.

<h3>Adding a File Set After Install</h3>

If you chose to skip some file sets at install time, you might realize later
that you really do need them after all.
Simply boot <a href="#bsd.rd">bsd.rd</a> from your root file system and choose
<code>(U)pgrade</code>.
When you get to the list of file sets, select the ones you need.

<h2 id="Partitioning">Disk Partitioning</h2>

OpenBSD can be installed in as little as 512MB, but using a device that small
is something for advanced users.
Until you have some experience, 8GB or more disk space is recommended.

<p>
Unlike some other operating systems, OpenBSD encourages users to split their
disk into a number of partitions, rather than just one or two large ones.
Some of the reasons for doing so are:

<ul>
  <li>Security:
      Some of OpenBSD's default security features rely on filesystem
      <a href="https://man.openbsd.org/mount#o">mount options</a> such as
      <code>nosuid</code>, <code>nodev</code>, <code>noexec</code> or
      <code>wxallowed</code>.
  <li>Stability:
      A user or a misbehaved program can fill a filesystem with garbage if they
      have write permissions for it.
      Your critical programs, which hopefully run on a different filesystem,
      do not get interrupted.
  <li><a href="https://man.openbsd.org/fsck">fsck(8)</a>:
      You can mount partitions that you never or rarely need to write to as
      <code>readonly</code> most of the time, which will eliminate the need for
      a filesystem check after a crash or power interruption.
</ul>

The installer will create a partitioning plan based on the size of your
hard disk.
While this will not be a perfect layout for all people, it provides a
good starting point for figuring out what you need.
Read about disklabel's defaults for
<a href="https://man.openbsd.org/disklabel#AUTOMATIC_DISK_ALLOCATION">
automatic disk allocation</a> and the
<a href="https://man.openbsd.org/hier">hier(7)</a> man page before making
decisions about custom partitioning schemes.

<ul>
  <li>Since some <a href="faq15.html">packages</a> need to be started from a
    <code>wxallowed</code> filesystem, it is recommended to have a separate
    <code>/usr/local</code> partition.
  <li>Very small partitions can become troublesome when you need to upgrade.
  <li>A <code>/home</code> partition can be nice.
    New version of the OS?
    Leave your <code>/home</code> partition untouched, wipe and reload
    everything else.
  <li>You may also want to create an
    <a href="faq14.html#altroot">altroot partition</a> for backing up your
    root filesystem.
  <li>A system exposed to the internet should have a separate <code>/var</code>
    and maybe even a separate <code>/var/log</code>.
  <li>
    Compiling some <a href="ports/index.html">ports</a> from source can take
    huge amounts of space on your <code>/usr</code> and <code>/tmp</code>
    partitions.
</ul>

<h2 id="WifiOnly">Bootstrapping Wireless Firmware</h2>

For licensing reasons, some firmware cannot be directly distributed with
OpenBSD.
The <a href="https://man.openbsd.org/fw_update">fw_update(8)</a> tool
will automatically download and install any missing firmware, but this
requires a working internet connection.

<p>
In the case of certain hardware configurations, such as a laptop with
no ethernet port, the user will have to manually download and install
the firmware in order to get online for the first time.
This can be done pre-installation, by adding the firmware files to the
install media, or after the OS has been installed from a CD or disk.

<p>
Adding firmware files to the install media will not enable the hardware
during the installation process.
They will be added to the target disk, so the hardware can be used after
the first boot into the installed system.

<p>
Start by finding the wireless adapter's
<a href="https://man.openbsd.org/?query=wireless&apropos=1">interface name</a>
with <a href="https://man.openbsd.org/dmesg">dmesg(8)</a>.

<p>
From an existing OpenBSD installation, mount the install image as a vnode
disk with <a href="https://man.openbsd.org/vnconfig">vnconfig(8)</a> and
use <a href="https://man.openbsd.org/fw_update">fw_update(8)</a> to download
the required files to it.
This example uses firmware for an
<a href="https://man.openbsd.org/iwm">iwm(4)</a> card:

<pre class="cmdbox">
# <b>vnconfig install75.img</b>
vnd0
# <b>mount /dev/vnd0a /mnt</b>
# <b>fw_update -Fv -p /mnt iwm</b>
# <b>umount /mnt</b>
# <b>vnconfig -u vnd0</b>
</pre>

The resulting file can then be used to <a href="#MkInsMedia">create</a>
a bootable install image with the necessary firmware.

<p>
If you don't have an existing OpenBSD system with internet access, use
another computer to download the appropriate file from
<!-- XXX needs https -->
<a href="http://firmware.openbsd.org/firmware/"
>http://firmware.openbsd.org/firmware/</a> and put
it on a USB drive that's readable by OpenBSD.
Then, on the OpenBSD machine,
<a href="https://man.openbsd.org/mount">mount(8)</a> the drive and use
<a href="https://man.openbsd.org/fw_update">fw_update(8)</a> to install it
from there.

<h2 id= "SendDmesg">Sending Your dmesg After the Install</h2>

After a successful install, look at the output of the
<a href="https://man.openbsd.org/dmesg">dmesg(8)</a> command and see if
anything stands out.
If a device shows up as <code>not configured</code>,
this means that it is not currently supported by the kernel.
This may be improved in the future by sending the dmesg.

A quote from <code>/usr/src/etc/root/root.mail</code>:

<pre class="cmdbox">
If you wish to ensure that OpenBSD runs better on your machines, please do us
a favor (after you have your mail system configured!) and type something like:

# <b>(dmesg; sysctl hw.sensors) | \
   mail -s "Sony VAIO 505R laptop, apm works OK" dmesg@openbsd.org</b>

so that we can see what kinds of configurations people are running.  As shown,
including a bit of information about your machine in the subject or the body
can help us even further.  We will use this information to improve device driver
support in future releases.  (Please do this using the supplied GENERIC kernel,
not for a custom compiled kernel, unless you're unable to boot the GENERIC
kernel.  If you have a multi-processor machine, dmesg results of both GENERIC.MP
and GENERIC kernels are appreciated.)  The device driver information we get from
this helps us fix existing drivers. Thank you!
</pre>

Alternatively, save your dmesg output to a text file and send us its contents:

<pre class="cmdbox">
$ <b>(dmesg; sysctl hw.sensors) > ~/dmesg.txt</b>
</pre>

Please configure your email client to use plain text.
In particular, do not use HTML formatting or forced line breaks.
Put the dmesg into the body of the mail, not as an attachment.

<h2 id="site">Customizing the Install Process</h2>

<h3>The <code>site75.tgz</code> File Set</h3>

The OpenBSD install and upgrade scripts allow the selection of a user-created
set called <code>site75.tgz</code>.
Like the official <a href="#FilesNeeded">file sets</a>, this is a
<a href="https://man.openbsd.org/tar">tar(1)</a> archive rooted in
<code>/</code> and untarred with the <code>-xzphf</code> options.
It is installed last, so it can be used to complement and modify the files from
a default install.
Furthermore, it is possible to use hostname-dependent sets named
<code>site75-$(hostname -s).tgz</code>.

<b>Note:</b>
If you intend to provide the sets over HTTP(s), place <code>site75.tgz</code>
in your source directory and include it in your <code>index.txt</code>.
It will then be an option at install time.

<h3>The <code>install.site</code> and <code>upgrade.site</code> Scripts</h3>

If the <code>site75.tgz</code> file set contains an executable file
<code>/install.site</code>, the installer runs it with
<a href="https://man.openbsd.org/chroot">chroot(8)</a>
based at the freshly installed system's root.
Similarly, the upgrade script runs <code>/upgrade.site</code>.
The latter can be placed in the system's root directory before rebooting
for the upgrade.

<p>
Example usage:

<ul>
  <li>Set the system time.
  <li>Do an immediate backup/archive of the new system before you expose it to
    the rest of the world.
  <li>Have a set of arbitrary commands be run after the first boot.
    This will happen if install.site is used to append any such commands to an
    <a href="https://man.openbsd.org/rc.firsttime">rc.firsttime(8)</a>
    file (appending to this file is necessary since the installer itself may
    write to this file).
    At boot time, <code>rc.firsttime</code> is executed once then deleted.
</ul>

<h2 id="Multibooting">Multibooting</h2>

Multibooting is having several operating systems on one computer, with some
means of selecting which OS is to boot.
You may want to familiarize yourself with the
<a href="faq14.html#BootAmd64">OpenBSD boot process</a> before you start.
A brief introduction to <a href="https://man.openbsd.org/fdisk">fdisk(8)</a>
is in the section on <a href="faq14.html#fdisk">using OpenBSD's fdisk</a>.

<p>
If you are adding OpenBSD to an existing system, you will probably need to
create some free space before installing OpenBSD.
In addition to your existing system's native tools,
<a href="https://gparted.org/">gparted</a>
may be useful for deleting or resizing existing partitions.
Preferably use one of the four primary MBR partitions for booting OpenBSD.
Extended partitions may not work.

<p>
<a href="https://www.rodsbooks.com/refind/">rEFInd</a> is reported to usually
work.
<a href="https://www.gnu.org/software/grub/">GRUB</a> is reported to usually
fail.
In either case, you are completely on your own.

<h3>Windows</h3>

The Boot Configuration Data (BCD) store allows multiple versions of Windows
to be booted through <code>bcdedit</code>.
A good introduction can be found in
<a href="https://technet.microsoft.com/en-us/library/cc721886%28WS.10%29.aspx">
this article</a>.
If you want a GUI alternative, you may want to try
<a href="https://neosmart.net/EasyBCD/">EasyBCD</a>.

<p>
You will need a copy of your OpenBSD install's
<a href="faq14.html#BootAmd64">Partition Boot Record (PBR)</a>.
You can copy it to a file using a process similar to:
<pre class="cmdbox">
# <b>dd if=/dev/rsd0a of=openbsd.pbr bs=512 count=1</b>
</pre>
where <code>sd0a</code> is your boot device, and you will need to get the
file <code>openbsd.pbr</code> to your Windows system partition.

<p>
Once OpenBSD's PBR is copied to the Windows system partition, you need a shell
with administrative privileges to run the following commands:

<pre class="cmdbox">
C:\Windows\system32> <b>bcdedit /create /d "OpenBSD/i386" /application bootsector</b>
The entry {0154a872-3d41-11de-bd67-a7060316bbb1} was successfully created.
C:\Windows\system32> <b>bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device boot</b>
The operation completed successfully.
C:\Windows\system32> <b>bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} path \openbsd.pbr</b>
The operation completed successfully.
C:\Windows\system32> <b>bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device partition=c:</b>
The operation completed successfully.
C:\Windows\system32> <b>bcdedit /displayorder {0154a872-3d41-11de-bd67-7060316bbb1} /addlast</b>
The operation completed successfully.
</pre>

Note that OpenBSD expects the computer's real-time clock to be set to
Coordinated Universal Time (UTC).
See <a href="faq10.html#TimeZone">this section</a> for more info.