For the complete documentation index, see llms.txt. This page is also available as Markdown.

安装 OpenBSD

概述

本章详细介绍 OpenBSD 操作系统的安装。内容涵盖获取与准备安装介质、安装前任务、运行安装程序、安装后配置,以及无人值守与无状态部署等高级安装选项。

获取安装介质

OpenBSD 官方安装镜像通过镜像站网络分发。镜像主列表维护于:

选择地理位置相近的镜像以获得最佳速度。当前版本的安装文件集位于:

/pub/OpenBSD/7.8/ARCH/

ARCH 替换为硬件架构(例如 amd64arm64i386)。

例如,OpenBSD 7.8 的 amd64 目录为:

https://cdn.openbsd.org/pub/OpenBSD/7.8/amd64/

安装镜像

常见安装镜像包括:

  • install78.img - USB 安装镜像(推荐多数用户使用)。

  • install78.iso - 用于 CD/DVD 介质的 ISO 镜像。

  • miniroot78.img - 适用于自定义或网络安装的小型 USB/PXE 镜像。

通过命令行下载

在 OpenBSD 系统上,使用 ftp(1)

在 Linux 或 macOS 上,可使用 curl(1) 或 wget(1):

务必同时获取对应的 SHA256.sig 文件,其中包含所有发布文件的签名。

校验签名

校验可确保镜像未被篡改。使用 signify(1) 配合发布公钥(OpenBSD 系统已安装在 /etc/signify/):

在非 OpenBSD 系统上,从 https://ftp.openbsd.org/pub/OpenBSD/ 对应版本目录下下载正确的公钥(例如 openbsd-78-base.pub)再行校验。

校验成功会输出 OK。若失败,请勿使用该镜像。

将安装镜像写入 USB

下载得到的 .img 文件必须以原始方式写入 USB 闪存盘。写错磁盘会毁掉现有数据,操作前请仔细确认目标设备。

识别目标磁盘

在 OpenBSD 上,插入 USB 闪存盘后立即运行 dmesg(8)

此处显示设备为 sd6。使用 dd(1) 写入时务必使用原始设备rsd6c)。

在 Linux 上,用 lsblk(8) 查看:

此处 USB 闪存盘为 /dev/sdb。写入前先卸载所有分区。

在 macOS 上,使用 diskutil(8):

目标设备为 /dev/disk2。原始写入用 /dev/rdisk2


在 OpenBSD 上写入

在 Linux 上写入

/dev/sdX 替换为目标 USB 磁盘(例如 /dev/sdb)。

在 macOS 上写入

图形化工具

若偏好图形工具,下列应用可直接写入 .img 文件:

安装前任务

最低要求

绝对最低配置为 512 MB 内存与 1 GB 磁盘空间,但实际可用的系统至少需要 2 GB 内存与 8 GB 磁盘。强烈建议使用更大容量的磁盘。

备份与准备

若目标系统存有重要数据,或要用于多系统引导,请先做完整备份。备份应存放于外部介质。

待收集信息

  • 主机名

  • 时区

  • root 密码

  • 用户账户信息

  • 静态 IP 配置(若不使用 DHCP)

  • 磁盘布局与加密选择

固件设置

  • 在 UEFI 中禁用 Secure Boot

  • 视硬件启用 UEFI 或 BIOS 引导

  • 将 USB 或 CD/DVD 驱动器设为第一启动设备

运行安装程序

从准备好的 USB 闪存盘启动系统。安装程序提示如下:

选择 I 开始全新安装。

安装程序提示(带注释)

终端与系统设置

  • Terminal type? 默认 vt220 适用于大多数系统。

网络

  • System hostname? 示例:myrouter

  • Which network interface to configure? 选择接口或输入 done

  • IPv4 address? dhcpnone 或静态地址。

  • IPv6 address? autoconfnone 或静态地址。

  • Default IPv4 route? 仅静态 IP 时填写。示例:192.168.1.1

  • DNS domain name? / DNS nameservers? 通常由 DHCP 提供。

用户与访问

  • Password for root? 输入时不显示。

  • Start sshd(8) ? 需要远程登录时选 yes

  • Setup a user? 推荐。输入小写用户名。

  • Allow root ssh login? 出于安全考虑,选 noprohibit-password

时区

  • What timezone are you in? 输入 ? 列出选项。

磁盘设置

  • Which disk is the root disk? 示例:sd0

  • Partitioning scheme? UEFI 系统推荐 GPT。

  • Layout? (A)uto / (E)dit / (C)ustom Auto 会创建标准分区(//var/tmp/home)。

加密

若选择加密,bioctl(8) 会设置全盘加密并提示输入口令。

文件集

  • Location of sets? 通常为 http

  • Mirror and path? 示例:

  • Select/deselect sets 默认即可。用 -game* 跳过游戏。

结束时显示:

安装后配置

系统重启后,执行以下步骤:

登录

以 root 或创建的用户登录。需要提权时使用 doas(1)

应用二进制补丁

运行 syspatch(8)

软件包更新

更新已安装的软件包:

确保 /etc/installurl 指向某个镜像:

合并配置文件

更新后运行 sysmerge(8)

配置时区

运行 tzsetup(8):

启用服务

使用 rcctl(8)

配置 doas(1)

编辑 /etc/doas.conf

收紧权限:

查阅系统日志

配置远程访问

确保已启用 sshd(8),并复制密钥:

验证磁盘加密

若启用加密,系统启动时会提示输入口令。交换分区加密是自动的。

UEFI 引导说明

OpenBSD 将引导程序安装于:

多数固件会自动识别。Secure Boot 必须禁用。

siteXX.tgz 自定义安装

OpenBSD 支持额外的文件集 site78.tgz,会在所有基本系统文件集之后解包。管理员借此可以干净、受支持的方式,向新安装的系统注入自定义配置、脚本与文件。

何时应用

  • 交互式安装时:在文件集安装完成后自动应用。

  • 无人值守安装时:始终应用,不提示。

  • 无状态引导时:若存在,则解包到内存。

安装程序会自动查找通用归档:

  • site78.tgz

以及主机专属变体:

  • site78-HOSTNAME.tgz

典型内容

示例:

创建示例

确保保留文件模式与属主。所含的 install.site 脚本(若有)会在安装结束时执行。

install.site 示例

借此可实现安装后自动化。

示例用例

网络配置

防火墙规则

启用服务

添加用户 SSH 密钥

预配置软件包镜像

无人值守安装

OpenBSD 可借助配置文件与可选的自定义文件集自动完成安装。

工作原理

  1. auto_install 启动安装程序(在引导提示符处按 a)。

  2. 安装程序获取名为 install.conf 的配置文件。

    • 从 USB 闪存盘(FAT32)获取。

    • 从 DHCP 选项指定的 HTTP 服务器获取。

  3. 可选地应用 siteXX.tgz 归档并运行 install.site

install.conf 示例

部署方式

  • PXE 引导 + DHCP:自动分发 bsd.rdinstall.conf

  • USB 闪存盘:将 install.confsiteXX.tgz 放在闪存盘根目录。

借此可对大量机器做全自动配置,配置可统一或按主机区分。

无状态部署

无状态部署中,OpenBSD 不安装到持久存储,而是用 bsd.rd 与可选的 siteXX.tgz 引导进内存。所有改动在重启时消失,除非显式写到别处。

特点

  • 所有文件系统(//var/tmp)都驻留在内存。

  • 从 PXE、USB 或 CD-ROM 引导。

  • 适合信息亭、设备、临时节点。

构建无状态环境

  1. 准备 bsd.rd 从发布目录获取,通过 TFTP 分发或放到 USB。

  2. 创建 siteXX.tgz 加入 /etc 配置、脚本与 install.site

  3. install.site 自动化 示例:

  4. 启动系统 OpenBSD 解包 siteXX.tgz 并执行 install.site

注意事项

  • 每增加一个可写文件系统,内存占用随之上升。

  • 日志与已安装的软件包若不导出,重启即丢失。

  • 数据应在关机时上传到远程系统。

故障排查

  • 检查 dmesg(8) 与安装程序输出。

  • 确认 UEFI/BIOS 设置。

  • 务必查阅发布目录中的 INSTALL.arch 文件

最后更新于