编程 从零手动安装 NetBSD 11:绕开 sysinst 的 MBR 分区实战

2026-09-07 06:13:34

从零手动安装 NetBSD 11:绕开 sysinst 的 MBR 分区实战

一篇技术博文记录了在 2012 年左右的 HP Pavilion 老机器上(使用 MBR 而非 UEFI 的 GPT 分区)从零手动安装 NetBSD 11.0 的完整过程。与使用官方 sysinst 安装器不同,作者退出安装器后用命令行手动完成磁盘分区、文件系统创建和系统安装,目的是理解操作系统内部机制,并提供最高灵活性来定制和解决常规安装可能遇到的问题。本文基于该博文,梳理手动安装的核心步骤。

准备安装镜像

$ wget https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.0/images/NetBSD-11.0-amd64-install.img.gz
$ gunzip NetBSD-11.0-amd64-install.img.gz
$ sudo dd if=NetBSD-11.0-amd64-install.img of=/dev/<usb_device> bs=2m

要点:

  • <usb_device> 是 U 盘设备名,使用整个磁盘(如 sdb)而非分区
  • 该操作会清空整个 U 盘,务必确认设备正确
  • BIOS 中把 U 盘设为第一启动设备

退出 sysinst 获得手动环境

  • 从 U 盘启动后进入 sysinst 安装程序
  • 按 CTRL+C 退出 sysinst 得到 shell 提示符
  • 之后可随时输入 exit 或 ^D 返回安装器

键盘布局

非英语键盘可用 wsconsctl -w encoding=es 设置布局(示例为西班牙语)。注意 NetBSD 控制台只接受 ASCII 字符,"Ñ" 等字母不会显示,但布局正确。

启用网络与 SSH

为方便远程继续安装:

# /sbin/dhcpcd -d -n re0   # 从 DHCP 获取 IP 和网关
# service sshd onestart
  • NetBSD 用驱动名而非 GNU/Linux 的 "eth" 命名:re0 表示 Realtek 以太网驱动
  • ifconfig 查看接口和状态
  • 创建本地用户(如 malatesta)加入 wheel 组,用于非特权操作和远程登录(该用户只存在于安装 U 盘系统中)

NetBSD 磁盘与分区模型

  • 物理磁盘用驱动接口 + 整数表示,逻辑和原始设备在 /dev 下:
    • wd:IDE 驱动器(atabus),常规硬盘
    • sd:SCSI 驱动器(scsibus),含 USB 盘
    • cd:CDROM
  • sysctl hw.disknames 列出当前磁盘
  • 示例:wd0 是 IDE 盘(安装目标)、cd0 CDROM、sd0 USB 盘、dk0 dk1 是 sd0 的 "wedges"(GPT 分区)

MBR 与 disklabel

  • 传统 BIOS 用 MBR 分区 schema,将分区属性写在物理盘第一个扇区
  • MBR 限制物理分区数量
  • NetBSD 在 MBR 之上使用 BSD disklabel 管理内部布局

安装流程概览(后续步骤)

手动安装剩余步骤包括:

  • 在目标磁盘(wd0)上创建 MBR 分区
  • 编写 BSD disklabel 定义内部布局
  • 创建文件系统(newfs)
  • 挂载并复制发行文件(base、comp、etc、games、man、misc、modules、tests、text 等集合)
  • 安装引导代码、配置启动(boot.cfg)
  • 设置 root 密码、时区、网络配置等系统配置
  • 最终重启进入新系统

意义与启示

  • 理解操作系统内部:手动安装揭示磁盘命名、MBR/disklabel 分层、文件系统创建和引导安装等通常被 sysinst 掩盖的机制
  • 老硬件再利用:NetBSD 以可移植性和在旧机器上运行著称——2012 年的 MBR 电脑依然性能良好,翻新电脑获得第二生命,省钱且环保
  • 灵活性:手动流程可定制并解决常规安装遇到的问题

总结

这篇 NetBSD 11 从零安装教程展示了绕开 sysinst 的手动安装路径:准备镜像(wget + gunzip + dd 写入 U 盘)→ 退出 sysinst 获得 shell → 设置键盘布局(wsconsctl)→ 启用网络和 SSH(dhcpcd、sshd onestart,注意 NetBSD 用 re0 这类驱动名)→ 理解磁盘模型(wd/sd/cd 驱动名、sysctl hw.disknames、MBR + BSD disklabel 分层)→ 分区、创建文件系统、复制发行集、安装引导、系统配置 → 重启。对想理解 NetBSD 内部机制、或在老 MBR 机器上做定制化安装的开发者,这份教程是完整参考。

来源:https://meanmicio.org/2026/09/06/netbsd-11-from-scratch/

复制全文 生成海报 NetBSD 操作系统 MBR 系统安装 Unix

推荐文章

程序员茄子在线接单