《OpenBSD 4.6 FAQ 中文版 第四章.OpenBSD 4.6 安装指南》

OpenBSD FAQ中文版、PF指南中文版、OpenBSD用户手册...
主题已锁定
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

《OpenBSD 4.6 FAQ 中文版 第四章.OpenBSD 4.6 安装指南》

帖子 leo » 2010-01-21 11:15

[索引] [第三章 - 开始OpenBSD之旅] [第五章 - 从源代码构建系统]
4 - OpenBSD 4.6 安装指南
--------------------------------------------------------------------------------

目录
•4.1 - OpenBSD 安装程序概述
•4.2 - 安装前的检查清单
•4.3 - 制作可启动的OpenBSD安装介质
◦4.3.1 - 创建可启动CD
◦4.3.2 - 在Unix中创建软盘
◦4.3.3 - 在Windows中创建软盘
•4.4 - 启动OpenBSD安装介质
•4.5 - 执行一个简单的安装
◦4.5.1 - 开始安装
◦4.5.2 - 安装提问
◦4.5.3 - 划分磁盘
◦4.5.4 - 选择安装方式和系统组件
◦4.5.5 - 初次启动!
◦4.5.6 - 最后一件事...
•4.6 - 复杂安装中的一些细节
◦4.6.1 - 设置网络
◦4.6.2 - 设置时区
◦4.6.3 - 定制fdisk(8) 布局
◦4.6.4 - 定制disklabel 布局
•4.7 - 需要安装哪些文件?
•4.8 - 我怎样分区?
•4.9 - OpenBSD的多启动/i386
•4.10 - 完成安装后发送dmesg 到dmesg@openbsd.org
•4.11 - 安装后添加系统组件
•4.12 - 什么是'bsd.rd'?
•4.13 - 常见的安装问题
◦4.13.1 - 我的Compaq机仅识别出16M内存
◦4.13.2 - 我的i386安装后不能启动
◦4.13.3 - 我的老爷机已经启动了, 但是卡在了ssh-keygen这个步骤
◦4.13.4 - 我在安装时得到信息"Failed to change directory"
◦4.13.5 - 我的fdisk分区乱七八糟或是空的!!
◦4.13.6 - 我的机器上没有软驱和光驱
•4.14 - 定制化安装过程
•4.15 - 我如何批量安装?
•4.16 - 我怎样获得dmesg(8)信息并报告安装问题?
--------------------------------------------------------------------------------

4.1 - OpenBSD 安装程序概述
OpenBSD长期主张用在各个平台下全一个类似的简单直接的安装程序,OpenBSD 4.6版本的安装程序对大多数用户来说比以往更加简单快捷,并因其灵活性和小巧(可以存在一张软盘里)而闻名。
多数平台都使用一个类似的安装程序;但不管怎么说它们在细节方面存在差异。在任何情况下您绝对应该阅读相关平台的INSTALL文档, 它在CD-ROM或FTP站点上的相关平台目录内(例如:i386/INSTALL.I386,mac68k/INSTALL.Mac68k或者sparc/INSTALL.Sparc)
OpenBSD安装过程使用了一个带有多种工具的特殊内核, 并且把嵌入的脚本预加载到内存中建立的一块虚拟磁盘上, 这个内核启动后, 操作系统将把安装介质内的tar(1)压缩的(.tgz)格式文件中释放到硬盘上。启动安装内核有多种方法:
•软盘: OpenBSD提供的软盘镜像文件可以被用来制作一张安装软盘, 它可用其它Unix-like系统, 或者在Windows系统制作安装软盘。这些软盘镜像的文件名是floppy45.fs, OpenBSD提供几种各种平台的各种软盘镜像。
•CD-ROM: 在一些平台上提供了提供了两种CD启动镜像文件, 其中cd45.iso镜像文件是仅用来启动, 而镜像文件install45.iso则可以用来启动并完成安装 。
•已存在分区: 您也可以在已经安装了系统OpenBSD电脑上从硬盘启动, 将安装内核加载到内存上的虚拟磁盘 RAM disk中, 用来执行升级或者重新安装系统。
•通过网络启动: 一些平台支持从网络上启动(如用PXE 或其它的网络启动模式)。
•将一个文件系统镜像写入磁盘(miniroot): 您也可以把现有的文件系统镜像写入一个的磁盘分区内, 并用这个新分区启动。
•通过磁带启动: 一些平台支持从磁带启动, 关于启动磁带的制作方法参看 INSTALL.platform 文件的具体说明。
并非每种平台都支持全部的启动方式:
•alpha: 软盘, 光盘, 网络, 将软盘镜像写入硬盘。
•amd64: 软盘, 光盘, 网络。
•armish: 每种机型不同。
•hp300: 光盘, 网络。
•hppa: 网络。
•i386: 软盘, 光盘, 网络。
•landisk: miniroot(参看前面), 从另一台计算机安装系统。
•mac68k: 用Mac OS上的启动工具, 具体请参看 INSTALL.mac68k。
•macppc: 光盘, 网络。
•mvme68k: 网络, 磁带。
•mvme88k: 网络, 磁带。
•sparc: 软盘, 光盘, 网络, 磁带, 文件系统镜像写入一个交换分区。
•sparc64: 软盘 (仅U1/U2), 光盘, 网络, 磁带, 文件系统镜像写入一个交换分区。
•vax: 软盘, 网络。
•zaurus: 从linux分区启动bsd.rd文件, 具体请参看INSTALL.zaurus。
所有的平台也可以使用bsd.rd重新安装系统或升级。
一旦安装内核被加载后, 您可以选择从哪里复制 系统组件, 再次声明一下, 不是每种平台都支持全部的方式。
•CD-ROM: 当然了, 我们推荐您使用OpenBSD的官方CD套装, 但您也可以使用install46.iso或者您自己制作一个您自己的。
•FTP: 您可以挑选任何一个OpenBSD的FTP镜像站点, 或者您本地的拥有OpenBSD组件包的FTP站点。
•HTTP: 您可以挑选任何一个OpenBSD的HTTP镜像站点, 或者您本地的拥有OpenBSD组件包的HTTP站点。
•Local disk partition: 很多时候, 您可以通过将安装组件包存放在在本地的另一个磁盘分区上, 并从那个磁盘分区进行本地安装。例如:在i386系统您可以从一个FAT分区上进行安装, 或者您从一个符合ISO9660, Rock Ridge或 Joliet 格式的光盘上安装系统。在某些情况下您可能先需要手工挂载这些文件系统以便使用。
•NFS: 一些平台支持使用NFS 挂载安装组件。
•Tape: 一些平台支持从磁带上读取OpenBSD的安装组件包。 关于如何制作支持安装启动的磁带请参看INSTALL.platform文档。
4.2 - 安装前的检查项目
在您开始进行安装之前, 您起码应该考虑到安装过程中可能被问到的问题, 别不提前准备到时候措手不及。这里提醒您至少应该知道一些信息:
•机器名称
•已有或可能添加的硬件
◦到您的生产商主页上查询并效验您机器的兼容性列表
◦如果是老式的的ISA接口的计算机, 请检查您的设置并确认符合OpenBSD的要求。
•您将使用哪种方式安装系统(CD-ROM, FTP等)
•该平台的OpenBSD是否存在bug? 您怎样给系统的打补丁?
◦如果需要在本地完成更新, 您需要有充分的空间用来存放更新了的系统源码树, 并对系统源码树进行编译。
◦否则, 您需要在另一台计算机上编译一套经过您修正的发行版。
•规划磁盘空间
◦现存数据是否需要备份到其它地方?
◦是否OpenBSD可以与其它操作系统共享一台计算机?如果是, 怎样分别让两个系统启动? 是否需要安装 "boot manager"?
◦是否提供全部硬盘空间给OpenBSD使用, 或者您需要保留一个现有的磁盘分区/操作系统(或者留一块空间为今后备用)?
◦您希望如何细分OpenBSD的分区?
•如果您不用DHCP方式获取您的IP地址, 您如何设定网络:
◦您的域名
◦您的域名服务器(DNS)的IP地址
◦每块网卡的IP地址及子网掩码
◦网关的IP地址
•您准备运行"X Window"系统吗?
4.3 - 制作可启动的OpenBSD安装介质
我们以 i386 和 sparc平台为例。
i386 平台有六个不同的安装镜像供您选择:
•cd46.iso 这是一个符合ISO9660标准的ISO光盘镜像文件, 您可以用它在绝大多数的CD-ROM或是DVD-ROM刻录机上制作出可以启动的光盘, 并可以应该在任何平台上, 这张镜像包含了所有的驱动程序, 如果您的机器可以从光驱启动, 通常推荐这个镜像文件。
•cdemu46.iso 这也是一个符合ISO9660标准的ISO镜像文件, 但它采用了模拟软驱的方法模拟了一张2.88M软驱镜像文件。这是按照少量特殊用户的需要打造的, 通常大多数人使用cd46.iso这个镜像文件就可以了, 只有在cd46.iso这个文件不起作用时我们才推荐您使用cdemu46.iso这个镜像文件。
•install46.iso 符合ISO9660标准的镜像文件, 包含了所有的安装文件。这个镜像制作出来的光盘可以独立的完成OpenBSD的安装任务。
•floppy46.fs (适用于台式机)支持数量众多的PCI及ISA网卡, 支持IDE和简单的SCSI适配器以及部分PCMCIA接口设备。多数用户可以选择这个软盘镜像文件用来启动和安装系统OpenBSD系统。
•floppyB46.fs (适用于服务器)支持数量众多的RAID控制器, 和一些常规的SCSI适配器.但是镜像里删除了许多的标准的SCSI适配器的和众多的EISA, ISA网卡的驱动。
•floppyC46.fs (笔记本电脑) 支持许多笔记本电脑的CardBus和PCMCIA装置。
(译者注:别被这里搞晕了,如果你首次装OpenBSD,别犹豫,就用install46.iso就可以了。)
对了, 可能有这样一种情形就是您既需要一张支持您的SCSI适配器的镜像文件又需要另一个支持您网卡的镜像文件那该用哪个好呢?幸运的是这种事情不常发生, 别担心。
sparc平台有四个不同的安装镜像供您选择:
•floppy46.fs: 支持从软盘启动安装系统 。
•cd46.iso 一个光盘镜像文件 , 可以用来制作您自己的光盘。
•miniroot46.fs 可以被写入交换分区并启动。
•install46.iso 符合ISO9660标准的镜像文件, 可用来制作安装启动光盘。

4.3.1 - 制作一张 CD-ROM
你可以用cd46.iso或者install46.iso制作一张CD-ROM。具体的制作细节留给读者,你可以用自己习惯的工具来制作。
在OpenBSD里面, 你可以用 cdio(1) 将ISO镜像文件制作成一张CD:

代码: 全选

# cdio tao cd46.iso
多数随Windows和Macintosh系统出售的刻录机搭配了可将ISO镜像写入光碟的软件,如果你的情况并非如此,大量的免费刻录软件可以帮你完成这项工作。
其它的类Unix系统使用的软件可能是 cdrkit.
4.3.2 - Unix里制作启动软盘
在Unix里格式化一张软盘软盘使用命令fdformat(1), 它可以格式化软盘并检查损坏的扇区。

代码: 全选

# fdformat /dev/rfd0c
Format 1440K floppy `/dev/rfd0c'? (y/n): y
Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done.
如果您格式化时终端显示像上面的例子这样, 恭喜您, 您的软盘已经格式化完毕了;如果您看见的不全是"V", 那么这张软盘恐怕已经有坏块了, 您应该更换一张新软盘。
说明:有些Unix-like系统的格式化软盘命令不尽相同, 请参阅您的操作系统的说明文档一确认输入正确的命令。
一旦您格式化好了一张软盘, 就可以把镜像文件写在这张软盘上了, 您可以用dd(1)命令。下面是用dd命令的一个例子:
# dd if=floppy46.fs of=/dev/rfd0c bs=32k
一旦镜像文件被写入软盘, 用cmp(1)命令检查软盘和镜像文件是否一致, 如果相同您会终端上看见其余的显示。

代码: 全选

# cmp /dev/rfd0c floppy46.fs
4.3.3 - 在Windows里制作启动软盘
这一小节将教您如果在windows或dos里制作启动软盘, 您可以从下面提到的任何FTP镜像站点的tools目录中找到工具。
在Windows里准备一张软盘, 先用微软自带的格式化工具操作来格式化软盘,并校验确认软盘没有坏块。
将安装镜像文件写入软盘您可以使用ntrw.exe。
ntrw的例子:

代码: 全选

  C:\> ntrw floppy46.fs a:
  3.5", 1.44MB, 512 bytes/sector
  bufsize is 9216
  1474660 bytes written
4.3.3 - 制作一张可启动CD
您可以用cd46.iso或者install46.iso这两个镜像文件中的一个制作可启动的安装CD盘。具体您用何种软件制作光盘, 看您自己了。
OpenBSD 里的一些工具:
•mkhybrid(8)
•cdrecord, part of the cdrtools collection in the OpenBSD的Packages和Ports系统。
•cdio(1)'s "track at once" (tao) recording option.
4.4 - 启动OpenBSD安装介质
启动 i386/amd64
在i386或amd64平台上启动由镜像文件制作的介质(软盘或光盘)对很多人来说并不陌生, 如果您用软盘把它插到软驱里重新启动系统就可以了, 安装镜像将被引导, 另外请注意在您的计算机的BIOS里设置成先从软盘引导;如果您想从光盘启动, 也别忘了在BIOS里设置成先从光盘引导。有些老主板的BIOS不能选择从光盘引导, 别担心, 即使您用软盘引导一样可以从光盘进行安装。
您也可以从一个已经存在的OpenBSD分区中用bsd.rd 来引导, 或者通过网络用PXE boot process.
启动 sparc/sparc64(译者注:此处略去,相关平台的用户请参阅原文或参阅4.5版的FAQ)
4.5 - 执行安装
OpenBSD的新安装程序被设计为在默认配置时高可用性、最小的用户干预,实际上多数情况下你仅需敲击<Enter>就可以完成OpenBSD的安装了,当然了输入root密码时你不能你也只用<Enter>。
安装程序会根据你的磁盘容量自动帮你设置各常用分区的大小,但是这个推荐的分区方案并不适合所有的人,这个方案对你来说可能只不过时一个不错的开端或便于你整体的规划你的磁盘。
(译者注:自动的方案实际上并非很完善,就打补丁一项来说,可能系统需要重新获取源码及编译,所以/usr分区的大小,最好设置的大一些,但是方案内已经单独划分出了/usr/obj分区,对我来说还是蛮方便的,随着对系统的熟悉你最终会知道自己需要的分区大小。刚开始接触的读者可以让安装程序帮你自动分区。)
开始时我们会发现安装很简单,提供了简短的讨论选项,并使用了极棒的超文本链接,允许你阅读更多你感兴趣的事情,并了解你的选项。
各平台的安装注意事项可以在安装CD或FTP服务器上找到,在文件INSTALL.<plat>, 这里的 <plat> 是指你的 平台, 例如, i386

4.5.1 - 开始安装
无论怎样您已经了解了启动的含义, 让我们先启动系统吧, 在启动的过程中安装内核和用于安装OpenBSD系统的文件被加载到内存中。在启动中遇到的最常见问题是一个损坏的软盘或驱动器队列错误(drive alignment problem), 软盘里几乎装满了文件--无论哪里有一个坏块就会导致出现问题。
OpenBSD安装过程中, 您可以随时键入"Ctrl+C"中断正在进行的安装, 需要重新安装系统时只需在shell中键入"install"就可以了, 而不必重新启动系统。
如果您启动成功, 您会看到很多的滚屏信息, 很多是蓝底白字格式的文字, 这些信息就是dmesg, 内核告诉您它在哪里发现了哪些设备。您不用着急把这些信息记下来, 因为有一份拷贝存放在/var/run/dmesg.boot。

然后, 您会看到下面的信息:

代码: 全选

root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell?i 
到这里, 我们的第一个问题来了, 多数情况下会您会看见有这三个选项显示:
•Install(安装): 将OpenBSD安装在您的电脑上, 会删除掉电脑上的一切文件。注意可能安装程序不会对某些分区进行格式化, 如/home, 而其它的都将被重写。
•Upgrade(升级): 在这台计算机上安装新的install files , 但是不会修改原有的配置文件, 用户数据或其它程序。没有磁盘被格式化, /etc或/var目录不会被重写, 一些重要说明:
◦这里没有etc46.tgz这个组件包的选项, 升级完成后您只能采用 手动合并将etc46.tgz组件中的改动加入到您的系统中, 然后它们才可以完全起作用。这一步非常关键, 您一定要做, 否则您的某些关键服务(比如 pf(4))将无法启动。
◦升级仅在相邻版本间才有效, 跨越版本的升级是不支持的,尽管通常可以运行起来,但我们不对这个升级方式提供支持。对OpenBSD.FAQ版本而言, 只支持从4.4升级到4.5, 如果您打算升级一个老版本, 需要先升级到比它高一级的版本,还有一种情况就是您的版本太老了已经不提供支持了, 请您考虑重新安装一个新系统。
更多的关于升级的信息请参阅 OpenBSD 升级指南 4.6。
•Shell(进入控制台):有些时候, 您需要修补或维护您的系统, 这时不想或不能启动系统正常的内核, 这个选项可以使您维护系统, 安装光盘或软盘里有一系列这样的重要工具。
这里我们假设你选择了(I)nstall。
4.5.2 - 安装提问
现在开始我们要回答安装提问了,将会关系到我们怎样建立系统。你会注意到多数情况下安装程序是先提问然后进行安装,如果你在一台很慢的计算机上或网速很慢的机器上安装OpenBSD,你可以先回答这些问题,然后离开一会儿,当你回来时你需要做的只是重新启动机器完成全部安装过程。
(译者注:下面的内容是告诉你除了在提示你输入password时,在安装过程中任何时候你全可以通过键入'!'返回到shell,默认的选项在[ ]内,如果你要选择默认的选项只需按回车键<Enter>, 而且你可以在任何时候通过<Control-C>退出安装程序,但是这会导致你的系统处于残缺的状态。)

代码: 全选

  At any prompt except password prompts you can escape to a shell by
  typing '!'. Default answers are shown in []'s and are selected by
  pressing RETURN.  You can exit this program at any time by pressing
  Control-C, but this can leave your system in an inconsistent state.
 
  Terminal type: [vt220] Enter
多数情况下选择默认的终端就可以,但是如果你使用 serial console 安装, 请勿在这里选择默认的终端,使用你自己合适的选项。

代码: 全选

System hostname? (short form, e.g. 'foo') 9971
这个选项是关于DNS域名的 (详参下面), 你的输入会保留在文件 /etc/myname中, 他会被用来正常启动时设置系统的hostname。如果你在这里没有为系统设置domain name, 系统将会使用默认的 'my.domain'。

代码: 全选

  Available network interfaces are: fxp0 vlan0.
  Which one do you wish to configure? (or 'done') [fxp0] Enter
vlan0 是 VLAN 虚拟接口。你不用考虑这个接口而应该设置实际的物理网络接口。如果你有多个物理网络接口, 它们会都列在这里。这里请注意网络接口以驱动名称标识,而不是用通常的以太网设备名称来标识。In this case, "fxp0" 是指使用 fxp(4) 驱动的第一的网络接口, fxp1 则是第二个设备, 以此类推。更详尽的设备标识方法参FAQ 6。
当你选择了想设置的接口后, 接下来就是设置了。多数情况下您可能想通过DHCP来进行设置:

代码: 全选

  IPv4 address for fxp0? (or 'dhcp' or 'none') [dhcp] Enter
  Issuing hostname-associated DHCP request for fxp0.
  DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 1
  DHCPOFFER from 192.168.1.250 (08:00:20:94:0b:c8)
  DHCPREQUEST on fxp0 to 255.255.255.255 port 67
  DHCPACK from 192.168.1.250 (08:00:20:94:0b:c8)
  bound to 192.168.1.199 -- renewal in 43200 seconds.
DHCP 会设置 IP address, subnet mask, default gateway, DNS domain name 和 DNS servers. 如果你不使用 DHCP, 你需要手动逐项设置; 请参看 下面 的详细讨论。
如果你还需要设置 IPv6 或者还有其它的接口需要设置(或者你想重新修改你刚才的设置), 你可以现在进行,本例中我们已经设置好了:

代码: 全选

  IPv6 address for fxp0? (or 'rtsol' or 'none') [none] Enter
  Available network interfaces are: fxp0 vlan0.
  Which one do you wish to configure? (or 'done') [done] Enter
  Using DNS domainname in.nickh.org
  Using DNS nameservers at 192.168.1.252
  Do you want to do any manual network configuration? [no] Enter
如果系统提问 "Do you want to do any manual network configuration?"时你选择了"yes", 你会被系统带到一个shell 提示符下, 在这里你可以根据自己的需要完成其余的设置,然后键入 "exit" 返回安装程序。

代码: 全选

  Password for root account? (will not echo) PaSsWoRd
  Password for root account? (again) PaSsWoRd
这里提示您使用一个强壮的密码,记住: 在Internet上, 有人会绞尽脑汁地使用大量常见的密码来尝试进入你的电脑。
尽管后面您还有机会建立一个管理员级别的帐号,并可以禁止root用户远程(通过SSH)登录你的计算机,但这里我们仍建议您给root设置一个足够强壮的密码。

代码: 全选

  Start sshd(8) by default? [yes] Enter
一般你希望运行sshd(8), 但有时你也许不想这样。如果你的应用不依赖sshd(8), 至少在理论上不运行它会带来一点点的安全优势。

代码: 全选

  Start ntpd(8) by default? [no] y
  NTP server? (hostname or 'default') [default] Enter
这里你可以选择是否运行 OpenNTPD, OpenBSD开发的NTP 。 OpenNTPD通过一种几乎不影响系统的方式精确地同步计算机时钟。默认的设置是使用 pool.ntp.org , 它使用了遍布世界的大量可自由访问的时间服务器。
一种情况下你也许不想运行ntpd(8),也就是你安装了多个操作系统,而你主要使用的操作系统不使用 GMT 来设置硬件时钟, 因此你不希望 OpenBSD 修改其它操作系统的时间设置。

代码: 全选

  Do you expect to run the X Window System? [yes] Enter
  Do you want the X Window System to be started by xdm(1)? [no] y
并非所有的平台全询问你是否想运行 X, 只有那些必须设置sysctl才能运行X的平台才会问你这个问题。如果你回答 "y" ,文件 /etc/sysctl.conf中会包含一行machdep.allowaperture=1或machdep.allowaperture=2, 看你的具体平台。
如果你不想运行X或者不确定,这里请选择 'N', 因为今后如果你需要运行X,你可以轻松地通过修改 /etc/sysctl.conf 并重新启动就可以了。如果不启动这个 aperture driver xf86(4) 多少在安全方面有一些潜在的优势, 因为现在的图形引擎可以脱离处理器的控制而修改内存。注意:非图形的应用程序如果需要X的库文件或工具来运行时不必设置sysctl 。

代码: 全选

  Change the default console to com0? [no] Enter
如果你需要设置一个串口控制台而不是系统默认设定 (通常是键盘和监视器), 你现在可以设置它。如果你在这里选择了默认"y", 你会被提示设定bit-rate,注意:对控制台来说, 更快并非总是更好的, 我们强烈建议您采用自己平台的默认值。

代码: 全选

Setup a user? (enter a lower-case loginname, or 'no') [no] Enter
你现在可以建立另一个用户帐号来进行日常的系统维护,不用老用root。这个用户将隶属于 "wheel" 组,所以他们能运行 su(1) 命令,如果你在这里创建了一个这样的用户,你会被要求输入密码。
注意:如果想创建这样一个用户这里直接输入他的用户名, 而不是用 "y" 或 "yes"来回答。(译者注:这里的解释有点多余,括号里写的很清楚了。)

代码: 全选

What timezone are you in? ('?' for list) [Canada/Mountain] US/Naperville
OpenBSD 假设你的real-time clock (RTC) 设置为GMT, 但是你还需要制定你的所在时区(译者注:多少有点自我矛盾)。这里有很多有效的物理位置答案(译者注:这里是选择题,如果你在中国就只能选亚洲/上海了,:(). 键入"?" 可以帮你找到有效的时区。
一般安装程序会准确地估计出你的位置,你只需在这里键"Enter".
更多关于如何设置时区的方法看 这里.
4.5.3 - 建立磁盘分区
重要说明: 那些拥有大硬盘的用户 (这里指在您原来计算机的配置基础上安装了更大硬盘的用户) 进行下一步之前请先阅读这一小节。
合理的设置你的分区是OpenBSD安装中最复杂的一个步骤。
在OpenBSD中设置磁盘分区会因计算机平台的不同而略有差异, 对i386, amd64, macppc, zaurus和armish, , 建立磁盘分区分两个阶段, 首先用fdisk命令分出OpenBSD 在硬盘上使用的片(slice), 然后用disklabel 将这个"片"再分成OpenBSD的不同分区。
有些用户可能对这里用的术语很迷惑, 因为我们两次用的分区 "partition" 这个词, 但是含义不同, 这没错, 这是OpenBSD分区中两个不同的层次, 首先第一层分区指的是不同操作系统之间的磁盘使用划分, 划出一块磁盘空间由OpenBSD单独使用(译者注:比如OpenBSD, windows, Linux.......在一块硬盘上), 第二层分区是将第一层分区再用disklabel划分成OpenBSD不同的文件系统。dos或Wndows的用户可以在分区表内看见第一个分区, 第二层分区仅有OpenBSD或那些可以直接读取OpenBSD分区的操作系统才可以看得到。
OpenBSD的新的安装程序试图为“常规”用户设置一个更为简单的分区方案。注意很多用户还是喜欢定制自己的分区方案,或者说用根据自己的习惯进行分区,但是对新用户来说我们建议你采用安装程序自动为你设置的分区方案,除非你发现默认的分区方案不适合你的需求,说明一下,默认的分区方案是根据你的磁盘空间进行分配的。
现在我们在我们的40G磁盘上采用安装程序默认的方案进行分区。

代码: 全选

  Available disks are: wd0.
  Which one is the root disk? (or 'done') [wd0]
  Disk: wd0       geometry: 4998/255/63 [80293248 Sectors]
  Offset: 0       Signature: 0xAA55
              Starting         Ending         LBA Info:
   #: id      C   H   S -      C   H   S [       start:        size ]
  -------------------------------------------------------------------------------
   0: 06      0   1   1 -    521 254  63 [          63:     8385867 ] DOS > 32MB
   1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
  Use (W)hole disk or (E)dit the MBR? [whole] Enter
  Setting OpenBSD MBR partition to whole wd0...done.
这里注意一下,磁盘上已经存在了一个分区——如果你选择了"whole" 这个已经存在的分区会被删除!
如果你选择整块磁盘被OpenBSD使用,安装程序会做几件重要的事情:
•删除原先磁盘上的所有分区
•产生一个MBR以及设置磁盘标志,这样才可以从这块磁盘启动。
•用整块磁盘建立一个 OpenBSD 分区
•将这个分区设置为"active"。
很多情况下你不想这样做,包括:
•你想保留其它的OS分区
•你想保留 "setup", "suspend to disk", 或其它的系统分区
•你想建立一个 多启动 系统
注意,这里是一个关键步骤,一块新(或者说用来启动的)硬盘原来可能有一个有效的MBR, 磁盘标记, 一个OpenBSD分区,以及一个被标记为"active"的分区。如果你没有在这里选择"Use whole disk", 你需要手动设置以确保其可以正常工作。
更多关于使用 fdisk 来分区的说明请参下面。
现在我们在磁盘上的OpenBSD分区上用disklabel(8)细分OpenBSD的分区(读者这里可以理解为OpenBSD的具体目录):

代码: 全选

  Setting OpenBSD MBR partition to whole wd0...done.
  The auto-allocated layout for wd0 is:
  #                size           offset  fstype [fsize bsize  cpg]
    a:          1024.0M               63  4.2BSD   2048 16384    1 # /
    b:           127.2M          2097215    swap
    c:         39205.7M                0  unused
    d:          2729.1M          2357679  4.2BSD   2048 16384    1 # /tmp
    e:          4223.2M          7946823  4.2BSD   2048 16384    1 # /var
    f:          1252.3M         16595895  4.2BSD   2048 16384    1 # /usr
    g:          1024.0M         19160541  4.2BSD   2048 16384    1 # /usr/X11R6
    h:          3678.7M         21257693  4.2BSD   2048 16384    1 # /usr/local
    i:          2002.4M         28791612  4.2BSD   2048 16384    1 # /usr/src
    j:          2002.4M         32892533  4.2BSD   2048 16384    1 # /usr/obj
    k:         21142.3M         36993454  4.2BSD   2048 16384    1 # /home
  Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] Enter
安装程序在这里已经向我们提供了"Auto layout"选项,也就是推荐的OpenBSD分区, 本例中我们接受推荐方案。
如果推荐的分区不合新的心意,你当然可以自行修改推荐值或完全自行分区,关于用disklabel来分区的更详尽的信息在 下面。
对重新安装系统的用户: 如果你选择了"(C)ustom Layout",新的安装程序不会删除你原有的disklabel, 你需要用disklabel(8)的‘m’选项来逐一设置每个挂载点。
安装程序现在建立这些分区和并在它们上用newfs(8)建立文件系统,并挂载这些分区来安装:

代码: 全选

  /dev/rwd0a: 1024.0MB in 2097152 sectors of 512 bytes
  6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0k: 21142.3MB in 43299416 sectors of 512 bytes
  105 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0d: 2729.1MB in 5589144 sectors of 512 bytes
  14 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0f: 1252.3MB in 2564644 sectors of 512 bytes
  7 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0g: 1024.0MB in 2097152 sectors of 512 bytes
  6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0h: 3678.7MB in 7533916 sectors of 512 bytes
  19 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0j: 2002.4MB in 4100920 sectors of 512 bytes
  10 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0i: 2002.4MB in 4100920 sectors of 512 bytes
  10 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0e: 4223.2MB in 8649072 sectors of 512 bytes
  21 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/wd0a on /mnt type ffs (rw, asynchronous, local)
  /dev/wd0k on /mnt/home type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0d on /mnt/tmp type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0f on /mnt/usr type ffs (rw, asynchronous, local, nodev)
  /dev/wd0g on /mnt/usr/X11R6 type ffs (rw, asynchronous, local, nodev)
  /dev/wd0h on /mnt/usr/local type ffs (rw, asynchronous, local, nodev)
  /dev/wd0j on /mnt/usr/obj type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0i on /mnt/usr/src type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0e on /mnt/var type ffs (rw, asynchronous, local, nodev, nosuid)
你会发现看起来我们忽略了一个 c 分区, 这个分区是你的整个磁盘,不要企图修改它。

4.5.4 - 选择安装方式和系统组件
下面, 你有一个机会来选项安装方式。本例中, 我们选择通过一台FTP server来安装。

代码: 全选

  Location of sets? (cd disk ftp http or 'done') [ftp] Enter
  HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] Enter
  Server? (hostname, list#, 'done' or '?') [mirror.example.org] obsd.cec.mtu.edu
如果你不能记住你喜爱(或者任何一个!)的镜像地址, 安装程序通常会帮助你自动选择一台适合你的服务器,或者你也可以键入"?" ,这样会显示出一系列镜像地址,然后自己选择合适的。

代码: 全选

  Server directory? [pub/OpenBSD/4.6/i386] Enter
  Login? [anonymous] Enter
公用的 FTP 镜像都支持匿名下载。
你现在可以调整系统组件清单。

代码: 全选

  Select sets by entering a set name, a file name pattern or 'all'. De-select
  sets by prepending a '-' to the set name, file name pattern or 'all'. Selected
  sets are labelled '[X]'.
      [X] bsd           [X] etc46.tgz     [X] game46.tgz    [X] xfont46.tgz
      [X] bsd.rd        [X] misc46.tgz    [X] xbase46.tgz   [X] xserv46.tgz
      [ ] bsd.mp        [X] comp46.tgz    [X] xetc46.tgz
      [X] base46.tgz    [X] man46.tgz     [X] xshare46.tgz
  Set name(s)? (or 'abort' or 'done') [done] Enter
至少你需要安装一个内核(bsd), 和base46.tgz 以及etc46.tgz这两个系统组件。除非你自己清楚,否则选择默认的。你可以使用"+"和"-" 以及通配符来添加和删除要安装的系统组件。
•-comp46.tgz 删除 comp46.tgz
•+bsd.mp 添加 bsd.mp
•-x* 删除所有 X 组件
我们这里还是默认,这台计算机为单处理器系统,所以不需要安装bsd.mp, 注意,如果这台计算机今后会升级为多处理器系统你应该安装bsd.mp。
现在我们开始安装! 如果你用一台很慢的电脑或你的网速太慢,到这里你可能一会儿就想回去选择其它的安装方式,但是如果你用很快的电脑并且使用本地的ftp来安装仅需要几分钟或更少的时间!
(译者注:如果你想安装的是发行版,还是事先刻录一张CD盘快,除非你安装的快照版,因为在i386/amd64平台上快照版几乎一两天就有新的,你可能没必要或不愿意刻盘才会选择通过ftp的方式来安装。)

代码: 全选

  bsd          100% |*************************************|  7063 KB    00:04
  bsd.rd       100% |*************************************|  5913 KB    00:03
  base46.tgz   100% |*************************************| 47315 KB    01:46
  etc46.tgz    100% |*************************************|   503 KB    00:01
  misc46.tgz   100% |*************************************|  2867 KB    00:06
  comp46.tgz   100% |*************************************| 88555 KB    03:08
  man46.tgz    100% |*************************************|  8047 KB    00:21
  game46.tgz   100% |*************************************|  2558 KB    00:04
  xbase46.tgz  100% |*************************************| 10160 KB    00:21
  xetc46.tgz   100% |*************************************| 69166       00:00
  xshare46.tgz 100% |*************************************|  2861 KB    00:12
  xfont46.tgz  100% |*************************************| 34745 KB    00:57
  xserv46.tgz  100% |*************************************| 19789 KB    00:39
  Location of sets? (cd disk ftp http or 'done') [done] Enter
到这里你也许有想问如果漏安装了一些组件怎么办, 你可以通过 custom file sets 来安装。
好了,本例中我们选择了安装默认的组件, 现在系统组件的安装完成了。

代码: 全选

  Saving configuration files...done.
  Generating initial host.random file...done.
  Making all device nodes...done.
 
  CONGRATULATIONS! Your OpenBSD install has been successfully completed!
  To boot the new system, enter 'reboot' at the command prompt.
  When you login to your new system the first time, please read your mail
  using the 'mail' command.
 
  #
4.5.5 - 初次启动!
OpenBSD已经安装完毕,但是初次启动系统前你应该...
启动前
到这一步, 你的系统已经安装完毕并准备重新启动和配置服务了。然后做这些之前,如果你聪明的话应该去检查一下勘误表页面 以确认是否有bugs会影响你。
一个在"初次启动前"配置的小技巧是运行:

代码: 全选

 # /mnt/usr/sbin/chroot /mnt
在shell提示符下,这可以设置你的挂载点,而这通常是在你的新系统重新启动后才能实现的,这是你可以进行一些基本的系统配置,比如添加用户,更改你的挂载点等。
重启后
等你完成初次启动后,系统将生成 SSH keys。在比较新的计算机上这个过程会花费几秒钟, 你可能根本就没有留意到这个过程。在老得计算机上这个过陈光可能会持续几分钟,在老爷机上可能会持续一个小时或更长的时间。
完成安装并重新启动后你应该做的第一件事是阅读afterboot(8).
你可能会发现下面的链接也很有用处:
•在 OpenBSD中添加用户
•初始化网络
•有关用户手册的常见/有用的命令
•互联网上的OpenBSD用户手册
•使用Packages和Ports安装软件
4.5.6 - 最后一件事...
OpenBSD开发者要求您发送一份dmesg. 所有的最终用户和开发者将会非常感谢您。

4.6 - 复杂安装中的一些细节
有时候您不能选择默认安装。这里有一些复杂安装的部分细节可以帮助您

4.6.1 - 设置网络
如果你没有一台DHCP server可用, 你只能手动设置你的网络适配器,下面是一个例子:

代码: 全选

  Which one do you wish to configure? (or 'done') [xl0] Enter
  IPv4 address for xl0? (or 'dhcp' or 'none') [dhcp] 192.168.1.37
  Netmask? [255.255.255.0] 255.255.254.0
  IPv6 address for xl0? (or 'rtsol' or 'none') [none] Enter
在选择安装的系统组件后, 在这里你可以配置计算机上的任何网络适配器,如果你有多个网络适配器你可以逐个配置它们。

代码: 全选

  Available network interfaces are: xl0 vlan0.
  Which one do you wish to configure? (or 'done') [done]
现在, 你要配置默认网关和DNS servers, 这里的配置影响所有的网络适配器:

代码: 全选

    Default IPv4 route? (IPv4 address, 'dhcp' or 'none') 192.168.1.1
  add net default: gateway 192.168.1.1
  DNS domain name? (e.g. 'bar.com') [my.domain] gobsd.org
  DNS nameservers? (IP address list or 'none') [none] 192.168.1.250 192.168.1.251
如果你有多个DNS服务器,用空格将它们分开。
有时你还要进行更多的配置, 例如你需要设置无线网络的 access key 或者设置网卡的duplex 或速率(不要这样做,除非你必须, 调整你的 switch configuration 更好!). 你现在可以暂时进入shell进行必要的配置。

代码: 全选

  Do you want to do any manual network configuration? [no] y
  Type 'exit' to return to install.
  # ifconfig xl0 media
  xl0: flags=8843 mtu 1500
          lladdr 00:08:74:2c:df:9c
          groups: egress
          media: Ethernet autoselect (100baseTX full-duplex)
          status: active
          supported media:
                  media 10baseT
                  media 10baseT mediaopt full-duplex
                  media 100baseTX
                  media 100baseTX mediaopt full-duplex
                  media autoselect
          inet 192.168.1.37 netmask 0xfffffe00 broadcast 192.168.1.255
  # ifconfig xl0 media 100baseTX mediaopt full-duplex
  # ifconfig xl0
  xl0: flags=8843 mtu 1500
          lladdr 00:08:74:2c:df:9c
          groups: egress
          media: Ethernet 100baseTX full-duplex
          status: active
          inet6 fe80::208:74ff:fe2c:df9c%xl0 prefixlen 64 scopeid 0x1
          inet 192.168.1.37 netmask 0xfffffe00 broadcast 192.168.1.255
  # exit
...setup resumes...
(回到前面)

4.6.2 - 设置时区
在Unix里的设置时间并不把转换Unix时间(1970年1月1日午夜过几秒 GMT) 转换成人们习惯的时间, 也就是将其描述为时区, 夏时制时间daylight savings time (DST), DST 规则变化等。它们也包含了历史变更。
多个时区的定义文件有时会提供相同的当前时间, 但是它们的历史事件可能不同。例如, EST5EDT 和 US/Michigan 现在有相同的时间,但是回溯到1975年, 时间的定义规则是不一样的, 所以如果你做有关1975年的日期和时间的数学研究,你就会关注这些差异。这里你应该尽量选择一个明确精准的时区,而不是只关心你的当前时间。
如果你自己不能确定OpenBSD的安装程序会为你找一个合适的时区文件。在每个提示符下键入"?" 后安装程序会为你列出相应的选项。如果第一层选项中没有适合你的,请选择一个州或国家,如下所示 :

代码: 全选

  What timezone are you in? ('?' for list) [right/EST5EDT] ?
  Africa/      Chile/       GB-Eire      Israel       NZ-CHAT      UCT
  America/     Cuba         GMT          Jamaica      Navajo       US/
  Antarctica/  EET          GMT+0        Japan        PRC          UTC
  Arctic/      EST          GMT-0        Kwajalein    PST8PDT      Universal
  Asia/        EST5EDT      GMT0         Libya        Pacific/     W-SU
  Atlantic/    Egypt        Greenwich    MET          Poland       WET
  Australia/   Eire         HST          MST          Portugal     Zulu
  Brazil/      Etc/         Hongkong     MST7MDT      ROC          posix/
  CET          Europe/      Iceland      Mexico/      ROK          posixrules
  CST6CDT      Factory      Indian/      Mideast/     Singapore    Naperville/
  Canada/      GB           Iran         NZ           Turkey
  What timezone are you in? ('?' for list) [right/EST5EDT] US
  What sub-timezone of 'US' are you in? ('?' for list) ?
  Alaska          Central         Hawaii          Mountain        Samoa
  Aleutian        East-Indiana    Indiana-Starke  Pacific
  Arizona         Eastern         Michigan        Pacific-New
  What sub-timezone of 'US' are you in? ('?' for list) Naperville
我们在这里将时间设置为"US/Naperville". 这将在/etc 中产生一个符号链接指向/usr/share/zoneinfo下合适的时区文件,有点像这样:

代码: 全选

  /etc/localtime -> /usr/share/zoneinfo/US/Naperville 
注意这个目录 "right/", 它包含了闰秒的调整, 或者重复标准时区的选择,更多信息。
(回到前面)

4.6.3 - 定制 fdisk(8) 布局
说明: 仅部分 OpenBSD 平台的计算机全在使用fdisk, 通常仅有 i386 和 amd64 的用户忌惮fdisk的操作,而其它多数使用fdisk平台的用户无线担心多启动或者建立/诊断分区。因此这一小节我们来关注一下 i386 和 amd64。
fdisk(8) 被用来在磁盘上划分出OpenBSD使用区域,它可以将OpenBSD使用的区域和其它的OS或system functions的区域分开。
如果你想保留硬盘上的原有的一个分区或者你想预留一些空间作为另一个分区, 那么你就不应该选择 "(W)hole disk", 但这样你就必须用 fdisk(8)手动编辑分区表。如何手动编辑分区表的更多的信息在这里。如果你的磁盘上有重要的数据,请确认你已经备份了。 分区中的任何可能的误操都全可以轻易地破坏磁盘数据,所以如果你不想丢失您的信息,先备份好它。
如果你在已有一个OS的机器上安装OpenBSD, 你需要先在磁盘上分割出一些空间以便安装OpenBSD。这往往涉及删除或减小已有分区。我们发现程序gparted 可以用来缩小多个流行的OSs的分区, 以便将为安装OpenBSD挤出空间。
本例我们假设使用一块40G的空白磁盘做多启动系统,并且先在磁盘的前面创建5G给windows系统,剩下的则留给 OpenBSD使用。这里注意空白的磁盘必须有有效的MBR启动代码才可以启动。
这个过程与硬盘上已经存在一个分区很类似, 这里只是多了创建Windows分区以及考虑如何安装MBR启动代码的步骤。

代码: 全选

  Available disks are: wd0.
  Which one is the root disk? (or 'done') [wd0] Enter
  MBR has invalid signature; not showing it.
如果这块磁盘上存在有效的MBR, 它会显示现有分区表, 这样你就可以很方便地址到是否这块磁盘上已有数据。

代码: 全选

  Use (W)hole disk or (E)dit the MBR? [whole] e
 
  You will now create a single MBR partition to contain your OpenBSD data. This
  partition must have an id of 'A6'; must *NOT* overlap other partitions; and
  must be marked as the only active partition.  Inside the fdisk command, the
  'manual' command describes all the fdisk commands in detail.
 
  Disk: wd0       geometry: 4998/255/63 [80293248 Sectors]
  Offset: 0       Signature: 0x0
              Starting         Ending         LBA Info:
   #: id      C   H   S -      C   H   S [       start:        size ]
  -------------------------------------------------------------------------------
   0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
Enter 'help' for information
fdisk: 1
首先注意fdisk的提示符。数字 "1" 表明这是第一级分区表 -- 如果你正在编辑一个扩展分区,这里应该显示为 "2" (或更大的数字)。扩展分区被分配后又自己的子分区表, 因为IBM AT有4个分区的设计限制。我们不在这里讨论扩展分区的问题。
首先, 我们需要将分区"0"设置成一个5G Windows 分区 (格式NTFS), 将其余空间设置成分区"1"作为我们OpenBSD的分区。

代码: 全选

  fdisk: 1> e 0
              Starting         Ending         LBA Info:
   #: id      C   H   S -      C   H   S [       start:        size ]
  -------------------------------------------------------------------------------
   0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
  Partition id ('0' to disable)  [0 - FF]: [0] (? for help)
因为我们不知道NTFS的分区ID, 我们键入 "?" 会出现一个列表。

代码: 全选

  Partition id ('0' to disable)  [0 - FF]: [0] (? for help) ?
  Choose from the following Partition id values:
  00 unused         20 Willowsoft     66 NetWare 386    A9 NetBSD
  01 DOS FAT-12     24 NEC DOS        67 Novell         AB MacOS X boot
  02 XENIX /        27 Win Recovery   68 Novell         AF MacOS X HFS+
  03 XENIX /usr     38 Theos          69 Novell         B7 BSDI filesy*
  04 DOS FAT-16     39 Plan 9         70 DiskSecure     B8 BSDI swap
  05 Extended DOS   40 VENIX 286      75 PCIX           BF Solaris
  06 DOS > 32MB     41 Lin/Minux DR   80 Minix (old)    C0 CTOS
  07 NTFS           42 LinuxSwap DR   81 Minix (new)    C1 DRDOSs FAT12
  08 AIX fs         43 Linux DR       82 Linux swap     C4 DRDOSs < 32M
  09 AIX/Coherent   4D QNX 4.2 Pri    83 Linux files*   C6 DRDOSs >=32M
  0A OS/2 Bootmgr   4E QNX 4.2 Sec    84 OS/2 hidden    C7 HPFS Disbled
  0B Win95 FAT-32   4F QNX 4.2 Ter    85 Linux ext.     DB CPM/C.DOS/C*
  0C Win95 FAT32L   50 DM             86 NT FAT VS      DE Dell Maint
  0E DOS FAT-16     51 DM             87 NTFS VS        E1 SpeedStor
  0F Extended LBA   52 CP/M or SysV   8E Linux LVM      E3 SpeedStor
  10 OPUS           53 DM             93 Amoeba FS      E4 SpeedStor
  11 OS/2 hidden    54 Ontrack        94 Amoeba BBT     EB BeOS/i386
  12 Compaq Diag.   55 EZ-Drive       99 Mylex          EE EFI GPT
  14 OS/2 hidden    56 Golden Bow     9F BSDI           EF EFI Sys
  16 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor
  17 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec
  18 AST swap       63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor
  19 Willowtech     64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT
  1C ThinkPad Rec   65 NetWare 3.xx   A8 MacOS X
  Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 07
现在我们定义它的起点和终点:

代码: 全选

  Do you wish to edit in CHS mode? [n]
CHS 模式允许你用柱面数、头数、扇区数描述磁盘空间。但是你要知道对新的硬盘来说CHS数完全是假的, 只是可以将这三个数转换为磁盘上的一个扇区,从而转换为磁盘的物理几何 (每种磁盘的物理几何可能全不一样)。
如果你这里选择了"y" , 系统会要求你输入起点和终点的柱面数、头数和扇区数r. 如果你这里选择了"no" (我们希望这样), 你会被提示输入起始扇区和大小。如果你的硬盘上已经存在一个分区,那么通过CHS编辑往往更容易一些 , 当你想快速创建分区时提供起始扇区和大小则更加简捷。

代码: 全选

  offset: [0] 63
fdisk需要将第一个扇区放置在0磁道(硬盘的第一条磁道)外。 这里的说的每条磁道上包含了一定数量的扇区数, 也就是最终的磁盘几何 "geometry:" 数。我们在这里(偏移量offset)一般输入"63" , 因为对现代的IDE和SATA磁盘来说这是惯例, 但是注意并非所有磁盘每条磁道包含的扇区数总是63,一般情况是这样的,但是SCSI和Flash磁盘除外。

代码: 全选

  size: [0] 5g
  Rounding to nearest cylinder: 10490382
这里的"Size" 值也可以用扇区数表示 (每个扇区512 字节), 或者你在后面用 "k", "m"或"g"表示它的容量(K、M、G)。当你用偏移量和大小时, fdisk会用将你提供的大小调整为整数的柱面数 (OpenBSD 不关心这些, 而且现在的OS可能全部关心这个调整, 但是某些操作系统有时可能会要求这样)。
现在, 看一下新分区:

代码: 全选

fdisk:*1> p
Disk: wd0       geometry: 4998/255/63 [80293248 Sectors]
Offset: 0       Signature: 0x0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 07      0   1   1 -    652 254  63 [          63:    10490382 ] NTFS
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
 3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
fdisk:*1>
注意提示符包含了一个 "*", 这表示你的更改还没有保存。
我们现在已经建立了Windows分区。注意这里只是在磁盘上为Windows系统保留了空间, 但是这块空间还没有被格式化; 上面也没有文件。你可能会担心以后怎样安装Windows; 实际上在我们预留的空间上以后就可以创建Windows分区。
现在我们建立OpenBSD分区,分区ID是"A6"。

代码: 全选

fdisk:*1> e 1
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
Partition id ('0' to disable)  [0 - FF]: [0] (? for help) a6
Do you wish to edit in CHS mode? [n] Enter
offset: [0]
哦! 我的offset怎样填? 简单 -- 前一个分区的偏移量offset加上那个分区的大小, 本例中, 63+10490382 = 10490445.

代码: 全选

offset: [0] 10490445
size: [0] *
fdisk:*1>
注意这里我们在分区大小处键入了"*" , 这表示用“剩下的磁盘空间”。再说一次,如果我们想预留一些空间给其他分区,我们在这里可以用扇区数、或 "m" 、"g" 表示这个分区的大小。
现在我们看一下我们的分区表:

代码: 全选

  fdisk:*1> p
  Disk: wd0       geometry: 4998/255/63 [80293248 Sectors]
  Offset: 0       Signature: 0x0
              Starting         Ending         LBA Info:
   #: id      C   H   S -      C   H   S [       start:        size ]
  -------------------------------------------------------------------------------
   0: 07      0   1   1 -    652 254  63 [          63:    10490382 ] NTFS
   1: A6    653   0   1 -   4998   5  63 [    10490445:    69802803 ] OpenBSD
   2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
  fdisk:*1>
还没有完成呢!
这块磁盘现在还不能启动! 因为这是一块全新的磁盘, 所以磁盘 MBR 是完全空白的。信息 "Signature: 0x0" 并非有效的 signature (0xAA55), 所以肯定是一个无效的启动代码。当然, 你也许有有效的signature 但没有有效的启动代码, 或虚拟运气不好、抑或现存的驱动代码被破坏了, 但是一个无效signature往往表明你的启动diamante有缺陷, 所以我们在这里用"update"命令安装启动代码:

代码: 全选

  fdisk:*1> update
  Machine code updated.
  fdisk:*1>
我们还要用"flag"命令 将一个分区标记为 "active"(激活) ,这样boot ROM才知道从那个分区启动:

代码: 全选

  fdisk:*1> f 1
  Partition 1 marked active.
我们看一下现在的分区表:

代码: 全选

  fdisk:*1> p
  Disk: wd0       geometry: 4998/255/63 [80293248 Sectors]
  Offset: 0       Signature: 0xAA55
              Starting         Ending         LBA Info:
   #: id      C   H   S -      C   H   S [       start:        size ]
  -------------------------------------------------------------------------------
   0: 07      0   1   1 -    652 254  63 [          63:    10490382 ] NTFS
  *1: A6    653   0   1 -   4998   5  63 [    10490445:    69802803 ] OpenBSD
   2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
   3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
  fdisk:*1>
这里有一个退出fdisk(8)前的检查事项清单:
•是有效的 signature?
•分区间无重叠吗?
•OpenBSD 分区的ID是否为"A6"?
•适当的分区 (一般是OpenBSD) 标记为active了吗?
(回到前面)

4.6.4 - 定制 disklabel 布局
在OpenBSD 的fdisk(8)分区内, 我们使用disklabel(8)来建立的OpenBSD的文件系统分区。 OpenBSD用"a"到"p"16个字母label自己的文件系统分区。位于启动磁盘的分区 "a" 被定义为root分区(根分区),在启动磁盘上的 "b"分区定义为默认的swap(交换)分区。在所有磁盘上的"c" 分区代表"整个磁盘"分区, 它是用来给那些必须真正直接访问物理硬盘的程序使用的, 例如fdisk(8) 和disklabel(8)。"c" 分区是系统自动为您产生的, 并且您不应试图删除或更改它。其余的字母你可以用来定义挂载点。你可以跳过某些字母, 并且你可以不按照字母顺序定义分区,他们可以以乱序的方式ipailiezai磁盘上 (但是一些平台要求"a分区位于固定的区域). 你也可以在磁盘上预留一些空间不分配, 而在以后分配它们, 或用growfs(8)将未分配的空间扩充给某些现有分区。

所有原生的FFS分区全应该包含在OpenBSD的fdisk(8)分区内, 但是 非OpenBSD 分区可以(通常也是)放置在 OpenBSD的fdisk分区外。

关于使用disklabel的更详细的信息参阅这里。

怎样分区最好,何如合理的规划分区请参下面。

新的(指4.6) OpenBSD 安装程序会试图将您的磁盘划分成可用的、"通常目的" 配置的分区,这基于你磁盘的大小。如果你的硬盘足够大, 多余的空间会划分给/home分区,通常这很有用,但并非适合所有用户。

在本例中, 我们假设我们将建立一台静态的web服务器供一些我们的朋友使用。我们有一个适度的Internet连接速度, 使用一块40G的硬盘, 它的大部分空间供OpenBSD使用 (和上例一样这块硬盘上有5G的Windows分区。为什么? 也许这个系统上带有一个RAID控制器,OpenBSD虽然支持这个控制器, 但管理这个控制器只能在Windows操作系统里进行。还有, 也可能因为这个FAQ的编著人员不想维护太多的示例系统)。

OpenBSD的web服务器提供的网页位于/var/www, 还有很少的部分位于 /home里, 很明确这里要对默认设置进行修改。为了便于讨论, 我们也假设不需要在这台计算机上重新构建OS(我们将在其它的计算机上完成这个步骤)。这个系统不运行X, 但是某些应用程序需要系统已经安装了X组件, 我们将安装X组件。这台计算机不需要过于强劲, 这台计算机的内存不能超过1G, 我们的应用程序对内存的需求不会那样大。

所以, 经过略加思索, 我们决定采用如下的分区方案:

•/ - root: 100m. 这是分区 'a'.
•swap: 1G (这样我们永远有足够的空间来进行core dump), 这是分区 'b'
•/usr: 2g, 分区 d
•/tmp: 100m (我们可能用不了这么大), 分区e
•/usr/local: 2g, 分区 f
•/usr/X11R6: 1g, 分区 g
•/home: 1g, 分区 h
•/var: 1g (足以存放大....量的系统log文件了), 分区j
•/var/www: 剩余的空间, 分区 k

代码: 全选

  The auto-allocated layout for wd0 is:
  #                size           offset  fstype [fsize bsize  cpg]
    a:          1024.0M         10490445  4.2BSD   2048 16384    1 # /
    b:           252.1M         12587597    swap
    c:         39205.7M                0  unused
    d:          2319.3M         13103933  4.2BSD   2048 16384    1 # /tmp
    e:          3653.9M         17853877  4.2BSD   2048 16384    1 # /var
    f:          1149.8M         25337016  4.2BSD   2048 16384    1 # /usr
    g:          1024.0M         27691862  4.2BSD   2048 16384    1 # /usr/X11R6
    h:          3422.6M         29789014  4.2BSD   2048 16384    1 # /usr/local
    i:          5122.3M               63    NTFS
    j:          1848.7M         36798433  4.2BSD   2048 16384    1 # /usr/src
    k:          1848.7M         40584654  4.2BSD   2048 16384    1 # /usr/obj
    l:         17540.2M         44370875  4.2BSD   2048 16384    1 # /home
  Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] c
如果你只有一些小地方需要修改, 可以选择 "Edit" 来定制分区布局而不是将原有分区大刀阔斧的砍掉, 但是在本例中我们可以放开手脚。

代码: 全选

  You will now create an OpenBSD disklabel inside the OpenBSD MBR
  partition. The disklabel defines how OpenBSD splits up the MBR partition
  into OpenBSD partitions in which filesystems and swap space are created.
  You must provide each filesystem's mountpoint in this program.
 
  The offsets used in the disklabel are ABSOLUTE, i.e. relative to the
  start of the disk, NOT the start of the OpenBSD MBR partition.
 
  Label editor (enter '?' for help at any prompt)
  > p
  OpenBSD area: 10490445-80293248; size: 69802803; free: 69802803
  #                size           offset  fstype [fsize bsize  cpg]
    c:         80293248                0  unused
    i:         10490382               63    NTFS
  >
注意这里有两个现有分区 -- "c" 分区总在那里、是系统为你自动产生的, 而 disklabel(8) 也检测出了已经存在的NTFS 分区,并且分配给它一个分区标签以便让OpenBSD在需要的时候有可能访问它 (注意, 目前对 NTFS 的支持只是实验性的,要访问NTFS分区需要定制系统内核,但是OpenBSD对 FAT/FAT32 格式的分区支持的很好)。

我们将新建分区。我们从分区 "a" 开始, 也就是root分区:

代码: 全选

  > a a
  offset: [10490445] Enter
  size: [69802803] 100m
  Rounding to cylinder: 208845
  FS type: [4.2BSD]  Enter
  mount point: [none] /
  >
注意:disklabel 默认会从 OpenBSD分区 的第一个扇区进行分区(译者注:建立OpenBSD文件系统), 我们正希望如此。不过它也会默认提供所有的可用空间给正在分配的分区, 这点并非我们希望的。这里我们自行定义分区的大小, 可以用 sector数, "M"或"G"来指定。

通常你会为一个FFS(Fast File System) 或者 FFS2分区选用"4.2BSD"的默认的FS类型, 但是有时你会发现其它有用的类型包括"swap" 和 "RAID"。

最后是挂载点。我们的 "a" 分区被定义为root分区。

现在, 我们创建swap, 也就是 'b' 分区 (再强调一遍, 这是必需的 -- 你启动盘上的 'b' 就是swap):

代码: 全选

  > a b
  offset: [10699290] Enter
  size: [69593958] 1g
  Rounding to cylinder: 2104515
  FS type: [swap] Enter
  >
再次注意, disklabel 准确地减速出起始扇区, 并向我们推荐了一个建议大小——"所有的剩余分区空间", 仍然不是我们希望的大小。因为这是 'b' 分区, disklabel 假设他被用来做swap, 并且一旦我们对系统文件类型进行了确认,它甚至不询问我们挂载点是什么。

我们现在要建立剩下的分区。

代码: 全选

  > a d
  offset: [12803805] Enter
  size: [67489443] 2g
  Rounding to cylinder: 4209030
  FS type: [4.2BSD] Enter
  mount point: [none] /usr
  > a e
  offset: [17012835] Enter
  size: [63280413] 100m
  Rounding to cylinder: 208845
  FS type: [4.2BSD] Enter
  mount point: [none] /tmp
  > a f
  offset: [17221680] Enter
  size: [63071568] 2g
  Rounding to cylinder: 4209030
  FS type: [4.2BSD] Enter
  mount point: [none] /usr/local
  > a g
  offset: [21430710] Enter
  size: [58862538] 1g
  Rounding to cylinder: 2104515
  FS type: [4.2BSD] Enter
  mount point: [none] /usr/X11R6
  > a h
  offset: [23535225] Enter
  size: [56758023] 1g
  Rounding to cylinder: 2104515
  FS type: [4.2BSD] Enter
  mount point: [none] /home
  > a j
  offset: [25639740] Enter
  size: [54653508] 1g
  Rounding to cylinder: 2104515
  FS type: [4.2BSD] Enter
  mount point: [none] /var
  > a k
  offset: [27744255] Enter
  size: [52548993] Enter
  FS type: [4.2BSD] Enter
  mount point: [none] /var/www
  >
注意在 /var/www 分区 ("k"), 我们还是接受了默认值,也就是说使用了所有剩余的磁盘空间。对于目前巨型容量的硬盘来说,这通常是一个坏方案。如果你确认你永远不会使用这样多,不要分配这样多空间, 而应该留着它将来兴许有其它用途..

现在我们用 "p" and "p m" 命令看看我们的战果:

代码: 全选

  > p
  OpenBSD area: 10490445-80293248; size: 69802803; free: 0
  #                size           offset  fstype [fsize bsize  cpg]
    a:           208845         10490445  4.2BSD   2048 16384    1 # /
    b:          2104515         10699290    swap
    c:         80293248                0  unused
    d:          4209030         12803805  4.2BSD   2048 16384    1 # /usr
    e:           208845         17012835  4.2BSD   2048 16384    1 # /tmp
    f:          4209030         17221680  4.2BSD   2048 16384    1 # /usr/local
    g:          2104515         21430710  4.2BSD   2048 16384    1 # /usr/X11R6
    h:          2104515         23535225  4.2BSD   2048 16384    1 # /home
    i:         10490382               63    NTFS
    j:          2104515         25639740  4.2BSD   2048 16384    1 # /var
    k:         52548993         27744255  4.2BSD   2048 16384    1 # /var/www
  > p m
  OpenBSD area: 10490445-80293248; size: 34083.4M; free: 0.0M
    #                size           offset  fstype [fsize bsize  cpg]
    a:           102.0M         10490445  4.2BSD   2048 16384    1 # /
    b:          1027.6M         10699290    swap
    c:         39205.7M                0  unused
    d:          2055.2M         12803805  4.2BSD   2048 16384    1 # /usr
    e:           102.0M         17012835  4.2BSD   2048 16384    1 # /tmp
    f:          2055.2M         17221680  4.2BSD   2048 16384    1 # /usr/local
    g:          1027.6M         21430710  4.2BSD   2048 16384    1 # /usr/X11R6
    h:          1027.6M         23535225  4.2BSD   2048 16384    1 # /home
    i:          5122.3M               63    NTFS
    j:          1027.6M         25639740  4.2BSD   2048 16384    1 # /var
    k:         25658.7M         27744255  4.2BSD   2048 16384    1 # /var/www
  >
同fdisk类似, 你不会希望OpenBSD的disklabel分区重叠 (当然除了 'c' 分区, 它与所有的分区全重叠了)。

将变更保存并退出disklabel:

代码: 全选

  > w
  > q
  No label changes.
  newfs: reduced number of fragments per cylinder group from 13048 to 12992 to
  enlarge last cylinder group
  /dev/rwd0a: 102.0MB in 208844 sectors of 512 bytes
  5 cylinder groups of 25.38MB, 1624 blocks, 3328 inodes each
  /dev/rwd0h: 1027.6MB in 2104512 sectors of 512 bytes
  6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  newfs: reduced number of fragments per cylinder group from 13048 to 12992 to
  enlarge last cylinder group
  /dev/rwd0e: 102.0MB in 208844 sectors of 512 bytes
  5 cylinder groups of 25.38MB, 1624 blocks, 3328 inodes each
  /dev/rwd0d: 2055.2MB in 4209028 sectors of 512 bytes
  11 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0g: 1027.6MB in 2104512 sectors of 512 bytes
  6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0f: 2055.2MB in 4209028 sectors of 512 bytes
  11 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0j: 1027.6MB in 2104512 sectors of 512 bytes
  6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/rwd0k: 25658.7MB in 52548992 sectors of 512 bytes
  127 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
  /dev/wd0a on /mnt type ffs (rw, asynchronous, local)
  /dev/wd0h on /mnt/home type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0e on /mnt/tmp type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0d on /mnt/usr type ffs (rw, asynchronous, local, nodev)
  /dev/wd0g on /mnt/usr/X11R6 type ffs (rw, asynchronous, local, nodev)
  /dev/wd0f on /mnt/usr/local type ffs (rw, asynchronous, local, nodev)
  /dev/wd0j on /mnt/var type ffs (rw, asynchronous, local, nodev, nosuid)
  /dev/wd0k on /mnt/var/www type ffs (rw, asynchronous, local, nodev, nosuid)
 
  Let's install the sets!
...
4.7 - 需要安装哪些文件?
一次完整的OpenBSD安装可以分解成一系列单独组件的安装, 不是每种应用全需要所有的系统组件。我们建议新用户安装所有的系统组件,这里有一个对每个组件的概述:

•bsd - 这个是内核, 必需的
•bsd.mp - 多处理器(SMP)内核(只有一些平台有)
•bsd.rd - RAM disk kernel
•base46.tgz - 包含了基本的OpenBSD 系统, 必需的
•etc46.tgz - 包含了/etc 下的所有文件, 必需的
•comp46.tgz - 包含了编译器和它的工具, 头文件和库文件, 推荐
•man46.tgz - 包含了用户手册, 推荐
•misc46.tgz - 包含了misc info, setup文档
•game46.tgz - OpenBSD下的游戏
•xbase46.tgz - 包含了X11的基本文件
•xetc46.tgz - 包含了/etc/X11和/etc/fonts配置文件
•xfont46.tgz - 包含了X11的字体服务器和字体
•xserv46.tgz - 包含了X11的X服务器
•xshare46.tgz - 包含了X的用户手册, 本地设定, includes等
etc46.tgz 和xetc46.tg组件升级时不被选用, 只有安装时才用得到, 因为只有这样您的个人设定才不会丢失, 升级时您只能通过手动升级您的/etc, /dev/和/var目录。
为什么运行我的应用程序需要安装 xbase45.tgz?
即使您没打算运行X, 一些第三方的package里的软件也需要您的系统中已经安装了xbase45.tgz里的图形库文件, 这些软件仅需要安装X相关组件里xbase45.tgz组件就可以了, 其余的X组件不需要安装。 很多人不愿意在自己的系统上安装xbase45.tgz并无有依据的理由:

•就其本身而言, 安装xbase45.tgz不会给系统运行带来任何问题。
•就其本身而言, 在系统上安装xbase45.tgz不会引起新的外部安全问题。
•如果某些人已经获得了您系统的权限,他们就可以在您的系统上随意地安装软件, 所以这个情况下你的系统是否存在xbase45.tgz这个组件实际上已经无关紧要了。
•xbase45.tgz这个组件包含的程序中仅有你应用程序需要的部件运行在系统上。
•安装xbase45.tgz所需空间并不大, 仅约30M。


有些人有时候会浪费大量的时间尝试从xbase45.tgz里提取安装他们的应用程序所需的部件,这不仅没有任何意义,而且在每次升级还要重复上述步骤,并可能导致升级错误,产生真正的安全隐患。

如果你需要xbase45.tgz, 就安装它。它不比你的应用程序更危险 。


我不想安装编译器
可以不装, 但别自我安慰说这样更安全,如果有人已经足够深入地进入了你的电脑和你是否安装了编译器无关,另外如果他们需要可以自己安装一个编译器。但是, compXX.tgz 文件组比较大、同时里面包含了很多文件, 所以安装和升级它全要花费一定的时间, 在较慢的系统上是个问题。

如果你确实决定不安装编译器, 你也许需要在另外一个系统上维护和构建更新的软件。实际上更多的系统是因不当的维护而存在安全缺陷,而不是因为安装了编译器。


4.8 - 我怎样划分我的磁盘?
很显然, 这个问题的答案会因为你系统不同的用途有很大的差异。OpenBSD 可以被安装在一个只有512M的空间上, 但是安装在如此小的地方是高手才能完成的事情。到你积累了一定的经验前, 一块 4G 到 8G 的硬盘(区域)对新手来说更合适。

不想许多其它的OS, OpenBSD鼓励用户将磁盘分割成不同的分区, 而不是只有1个或2个大分区。这里有几个原因:

•安全: 您可以标记一些文件系统的属性为'nosuid'、'nodev'、'noexec'、'readonly'等,如果你使用推荐的分区,安装程序已经帮你设定好了这些类型。
•稳定 : 一个用户或"大意"的程序如果有写权限, 就能使分区充满垃圾数据, 让重要程序运行在不同的分区, 可以避免运行中断。
•速度 : 一个文件系统被频繁地写入数据会产生磁盘碎片(幸运的是OpenBSD采用的ffs文件系统并不会产生大量的碎片)。
•完整性 :如果一个分区(filesystem)因为某种原因损坏了, 其它的分区仍然完好无损。
•容量 : 许多计算机对内核所在区域有大小的限制。有些限制得很小(老的486机器上只有504M), 有的2G, 8G, 或在i386机器上128G不等。因为内核可能结束在root分区的任何位置上, 所以整个root分区的大小有限制。更多的信息参看Disk Setup, 除非您清楚您的计算机允许"/"分区更大一些, 否则不要超过2G。

•只读: 你可以将不会或很少写入的分区在多数时间内标记为 "Read-only", 这样可以避免在系统崩溃或电源中断后需要对其fsck(8),而且可以防止不经意的数据修改。
•fsck(8): 非常大的分区需要更多的内存进行fsck(8), 在内存容量很低的系统上你只能使用 swap, 这会导致非常长的fsck时间。
磁盘空间足够的话, OpenBSD的安装程序将默认采用如下方式分区:
•/ - root: 除了挂载在其它的文件系统上, root 文件系统只包含了所有的需要启动OpenBSD的文件。包括内核, 在 /sbin 和 /bin 的基本工具, /etc 下的配置文件, 以及设备目录 /dev , 包含了所有用来启动系统的设备。 root 文件系统最小可以仅为60M, 但是 100M 到 200M 可以更好地适应多次的升级周期。启动磁盘的 'a' 分区会自动成为你的 root 分区。一些平台限制了root 分区在磁盘上的物理位置(例如, 必须位于磁盘的开始处) 以便启动。
•Swap: 除了用于交换, 这个分区也被用来系统崩溃时保存core dumps, 所以建议的交换空间 (所有的交换空间) 要比今后你可能安装在这台计算机上的所有内存要大。更详细的信息请参阅 FAQ 14, Swap.
•/tmp: 这是一个全局可写的目录,用来 (就像他的名字暗示的那样!) 临时存储。多数系统很少使用这里, 很多情况下50M就足够了,尽管有少量程序需要比50M大得多的空间。因为这个目录是全局可写, 当他在一个单独的分区上时, OpenBSD 默认将其挂载为 nodev 和 nosuid, 这样可以将对你的系统危害降到最低。注意这个目录重新启动时会被清空, 每天夜间如果目录内的文件超过24小时没有被接触过,就会被删除。
•/var: 这个目录和挂载点被用来做很多事情, 根据您的用途, 你也许希望将它划分为不同的分区。这里罗列了一些(以及潜在的挂载点):
◦/var/log: 系统日志.
◦/var/mail: 收件箱
◦/var/spool: 发件箱 (和其它)
◦/var/www: OpenBSD的 web server 在这里。
◦/var/tmp: 这里是"永久"的临时文件目录, 因为这里的文件在计算机重启后不会被清除。 例如, vi(1) 使用这个目录作为临时存储, 所以如果你正在编辑一个文件时你的电脑意外崩溃或重新启动, 这里的文件可以用来恢复你的编辑进程。如果这里的文件在超过24小时没有被接触会被夜间清除脚本 删除, daily(8)。
◦/var/crash: 如果系统崩溃, 它将试图在启动前保存一个core dump 到swap分区。 这个 core dump 会在重新启动后保存到 /var/crash , 所以 /var 的剩余空间至少要和系统中自动分配来做core dump的内存一样大...
•/usr: 大部分OpenBSD的内容全保存在这里。二进制文件, 库文件, 文档, 用户手册等全在 /usr 目录内。在这个挂载点的文件相对来说不变 -- 这里只多数情况下, 你可以轻松地将 /usr 分区挂载为 read-only,这样可以避免其它系统不经意的修改,直到你下一次升级系统。
•/usr/X11R6: 这里保存着 X Window 系统。 X 二进制文件, 字体文件, 库文件等全在这里。唯一不再这里的X 组件是配置文件。
•/usr/local: 默认的OpenBSD安装中这个挂载点/目录是完全空的。它通常用于在本地安装的二进制文件和本地应用程序所需的库文件。
•/usr/src: 这个目录用来保存系统源码, 但不包含 X 和 ports的源码。此目录默认是空的, 你在编译系统时需要加载它,详细描述参 FAQ 5
•/usr/obj: 这个目录被用来在编译过程中存放 object 和 binary 文件。如果这个目录被设置成一个单独的挂载点,要清空这个目录时就可以直接用newfs命令对其进行格式化,而不是用删除命令一个一个文件地进行删除,直接格式化这个挂载点要快很多。(译者注:好方法、省时省力省磁盘!)
•/home: 用户文件存放在这里。如果单独设置了这个分区,在你完全重新安装系统时会很简单,你只需重新加载时不格式化这个分区。(译者注:重新启动后你可以修改fstab以便重新挂载这个分区,这样分区内的原有文件就完好无损了。)
有关分区的一些额外思路:

•作为第一次尝试如果您仅想安装一个系统进行试验, 只建个大的"/"和swap这两个分区是最简单方法, 直到您知道需要多大, 当然, 这样的做法会牺牲一些OpenBSD默认的安全性, 因为我们建议把 / , /tmp , /var , /usr 和 /home放在不同的分区里. 不过您也不会把第一次用于试验的OpenBSD用于重要的工作环境。
•系统可能遭受来自外界的攻击, 应设立单独的/var分区(甚至把/var/log单独放置)以存放日志。
•最好的办法是单独设置/home分区, 您想试试新发行的OpenBSD吗? 没问题, 您可以安装一个新的系统, 其它的分区会被删除, 但是安装程序不会修改/home分区的内容。不过安装新系统前别忘了保存一份原来的系统配置。
•有时为了系统更快地运行需要删除大量的无用文件, 如果您恰好用一个独立分区存放这些文件, 重新建立或格式化这个分区比您手工删除它们方便的多。例如您从源码构建新内核时在/usr/obj目录下产生的文件。
•当您需要重建系统时, 系统源码全会被放到/usr/src这个目录里, 如果您没有为/usr/src建立一个独立的分区, 那么您要确保/usr分区足够大。
•一个常被大家忽略的事情是:不要在建立磁盘分区时把所有的磁盘空间全用光, 保留一些空间是十分明智的, 如果您的一个分区不太够了, 您可以从未分配的空间上指派一个新的分区, 复制一个已经存在的分区到新分区, 然后修改 /etc/fstab指向这个新分区, remount, 现在您又有新空间了。否则您就满世界找20G以下的硬盘吧, 估计够呛, :)
•如果您想尝试一下以官方要求的最小空间分区, 您会发现以后升级系统的时候您的噩梦真的开始了。
•如果您分配了一个硕大的分区, 别忘了用fsck(8)检查文件系统时每G文件系统需要消耗1M的内存, 并且消耗您大量的时间, 这在一些老旧的或者配置很低的系统上简直是灾难。(请您也参考这一小节)。
•如果用户对/var/www(也就是, 您的个人主页)具有写权限, 您应该把它放到一个独立的分区, 这样您可以使用quotas限制用户对该分区的使用, 而且即使您这个分区空间告急, 其它的分区也不会受影响。
•建议您再安装一个/altroot分区, 如同daily(8).中描述的那样。这样您就有了 / 分区(根分区)的每天的备份, 当根分区发生意外时, 您还额外有一个的内核(kernel)以及/etc下的配置文件的备份。很明显,/altroot分区至少应该和 / 分区一样大。如果您有第二块磁盘, 无论是用软件的raid(4)还是定期使用 dump(8)/restore(8)进行复制, 并把其它需要的内容拷过去, 在第一块磁盘被拿掉之后第二块磁盘仍然可以启动。
•从源代码编译某些 ports 会占用 /usr 和 /tmp 分区的大量空间。这也是我们建议用户直接安装使用 预编译的 packages 而不是自己编译ports源代码的另一个原因。
•至少一些编辑器使用 /var/tmp 作为中间文件存放处, 所以这个目录至少与你编辑的最大的文件一样大甚至要更大一些。如果您计划编辑500M 的文件, 你的 /var 或者 /var/tmp 分区应该比你计划的要大得多。

4.9 - 设置多重启动 OpenBSD/i386
多重启动是指在一台计算机中存在几种操作系统, 而且您可以选择启动哪个。这可不是什么雕虫小技, 如果您误操作会删除磁盘上的大量数据。对OpenBSD新手而言, 我们强烈建议您用一台专用电脑, 并在一块空硬盘上进行操作试验, 等您完全熟悉操作后再应用在您的关键设备上。 FAQ 14 上有更多关于OpenBSD启动过程的信息。

只有四个主MBR分区中的一个可以用来启动OpenBSD(例如, 在扩展分区上不行)。

这里有几个多重启动的选项:

设定活动分区
通常这是最容易被忽视的, 但有时它是多重启动最有效的方法. 不管您正在用什么操作系统, 只要把下次要启动的操作系统所在的分区设为活动分区, 那么下次启动时它就能默认启动了. 每个的操作系统全有一个程序可以设定活动分区; OpenBSD用的是fdisk(8), Windows 9x和DOS和其它一些操作系统下也是用名字相似的程序. 如果您的计算机关机或者重启全需要很长时间, 这个方法还是很诱人的--您设定启动分区, 并重启, 然后到旁边喝杯咖啡, 回来的时候您要的系统已经启动了——不用等什么魔法时刻来选择进入哪个OS。

从软盘启动
如果您的多平台计算机上OpenBSD系统不常用(或者您不想让其他用户发觉机器的变化), 那就用标准的OpenBSD安装软盘, 在软件盘上添加一个文件/etc/boot.conf (别忘了, 您需要在软盘上先建立一个/etc目录才行), 在/etc/boot.conf里添加如下内容:

代码: 全选

boot hd0a:/bsd
这是让系统从驱动器"0"的OpenBSD所在的分区"a"启动, 内核文件是/bsd。说明一下您也可以从系统的其它分区启动, 比如这样:"boot hd2a:/bsd",就可以从第三个驱动器启动了。启动OpenBSD时插入软盘引导就行了;启动其它操作系统时先把软盘退出来, 再重新启动。

本例中, boot(8)程序是从软盘加载的, 并寻找读入/etc/boot.conf, 然后"boot hd0a:/bsd"语句告诉boot程序去哪里加载内核----在这里是BIOS里的第一块硬盘hd0。记住, 只有一个很小的文件/boot是被从软盘里读取出来, 系统还是会从硬盘中加载整个内核的, 所以用软盘启动只比从硬盘上直接启动多花了五秒钟。

Windows NT/2000/XP NTLDR
如果要多重启动OpenBSD和Windows NT/2000/XP, 您需要使用 NTLDR这个工具, NTLDR是NT的启动加载程序(boot loader). 要让OpenBSD和NT在一起多重启动, 您需要一份 OpenBSD Partition Boot Record (PBR)的拷贝. 运行installboot之后, 您用dd(1)将其复制到一个文件:

代码: 全选

# dd if=/dev/rsd0a of=openbsd.pbr bs=512 count=1
说明:现在正好提醒您一下, 在这里照搬照抄地输入您自己不知道的命令那绝对是一个馊主意。如果直接使用, 这一行并不能应用在大多数计算机里。这留给读者自己去更改成适合自己计算机的命令。

(译者注:非scsi硬盘用 dd if=/dev/rwd0a of=openbsd.pbr bs=512 count=1)

现在启动NT并且把OpenBSD.pbr拷贝到c:\, 在c\:boot.ini这个文件的结尾加上这句: c:\openbsd.pbr="OpenBSD" 当您重新启动后, 您应该可以在NT loader菜单里选择从OpenBSD启动。更多关于NTLDR的知识在NTLDR Hacking Guide可以找到。

在Windows XP上您也能用GUI(图形化)编辑器更改启动信息;请查看XP Boot.ini HOWTO。

有很多程序可以替您做这件事, 例如BootPart, 这个程序可以运行在NT/2000/XP, 并且可以获取OpenBSD PBR, 并把它拷贝至NT/2000/XP的分区, 并自动加入c:\boot.ini

说明: Windows NT/2000/XP boot loader只能启动装在主硬盘(master)的操作系统, 您不能用它来启动装在从硬盘(slave)的OpenBSD。

Windows Vista
对Vista操作系统来说,Microsoft不再采用NTLDR而采用一个新的启动配置数据存储用来启动系统,BOOT.INI已经不能定制启动过程了,取而代之的是一个命令行工具,bcdedit。

一旦OpenBSD的PBR复制到Vista的 系统分区后,系统重新启动后,你需要在dos命令行里执行下面的三行命令来选择并启动OpenBSD:

代码: 全选

C:\Windows\system32> bcdedit /create /d "OpenBSD/i386 4.6" /application bootsector
The entry {05a763ce-d81b-11db-b3ec-000000000000} was successfully created.

C:\Windows\System32>
执行完第一条命令后 GUID返回了这个数值, 05a763ce-d81b-11db-b3ec-000000000000, 请注意这个数值,因为这个数值在下面的两个命令中要用到,但是你如果仅是简单的复制上面的GUID显示值并不起作用。

你还需要下列这两行命令:

代码: 全选

C:\Windows\system32> bcdedit /set {05a763ce-d81b-11db-b3ec-000000000000} device boot
The operation completed successfully.

C:\Windows\system32> bcdedit /set {05a763ce-d81b-11db-b3ec-000000000000} path \openbsd.pbr
The operation completed successfully.

C:\Windows\system32>
这里注意一下输入的PBR文件的绝对路径名,请勿再给其添加磁盘驱动器号,因为系统假设它就位于系统分区内。 bcdedit不会对多出来的的磁盘驱动器号报错,但是后面的boot manager将会声明它找不到指定的路径。

启动时,Vista首先列出最后安装的OpenBSD,如果你选择其它的启动管理器将带您进入相应的操作系统。

如果想了解更多bcdedit信息,请输入如下的命令:

代码: 全选

C:\Windows\system32> bcdedit /?
或请搜索Microsoft的文档或网站。一个比较好的介绍在TechNet的 Frequently Asked Questions 文章中。

对于畏惧手动配置的用户来说, 你可以选择一个GUI的工具EasyBCD。

Windows 7
自从推出Vista以后,Microsoft加强了启动管理器的功能已允许通过bcdedit启动多个版本的Windows。因为这个更强劲的控制,在多启动环境内启动OpenBSD需要5个命令。

当你将OpenBSD的PBR复制到Windows7的系统分区后,键入以下命令才初始化所需的注册表项:

代码: 全选

C:\Windows\system32> bcdedit /create /d "OpenBSD/i386 4.6" /application bootsector
The entry {0154a872-3d41-11de-bd67-a7060316bbb1} was successfully created.

C:\Windows\system32>
像我们前面告诫的一样,, 这个 {0154a872-3d41-11de-bd67-a7060316bbb1} GUID是依赖于每个系统的。 请记住你的数值,并将其复制到下列的命令中:

代码: 全选

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device boot
The operation completed successfully.

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} path \openbsd.pbr
The operation completed successfully.

C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device partition=c:
The operation completed successfully.

C:\Windows\system32> bcdedit /displayorder {0154a872-3d41-11de-bd67-7060316bbb1} /addlast
The operation completed successfully.

C:\Windows\system32>
在我们写这篇文章时,Windows 7的官方正式版本还没有发布,读者最好谨慎地阅读Microsoft的官方文档和网站的内容,也许正式版发行后细节上会略有不同。
其它的多重启动软件
OpenBSD用户还成功的运行了其它的多重启动软件包括:GAG, OS-BS, The Ranish Partition Manager及GRUB。

OpenBSD and Linux (i386)
请参阅 INSTALL.linux, 关于怎样让OpenBSD与Linux共存那里写得极其详细了。

时区问题
OpenBSD设定计算机的时间为UCT(世界标准时间, Universal Coordinated Time), 而其它的一些操作系统允许把计算机主板上的实时时钟设定为当地时间。很显然, 如果一台计算机上有两个这样的系统, 就上会有一些小问题。双方间必须有一方去适应对方, 更多的关于这方面的信息, 请参考FAQ 8 - Why is my clock off by several hours?


4.10 - 完成安装后发送dmesg至dmesg@OpenBSD.org
我们在这里提醒您, 对开发者来说知道哪些平台上运行OpenBSD正常, 或者哪些平台运行得不太理想是十分重要的。

在这里引用一段/usr/src/etc/root/root.mail的内容:
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:
# dmesg | mail -s "Sony VAIO 505R laptop, apm works OK" dmesg@openbsd.org
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!
请确认您发送信息的邮箱地址可以接收邮件, 以便让开发人员可以与您联系, 他们有时会指导您进行测试, 修改以帮助您调整系统。您不必非从使用OpenBSD的那台计算机发送email, 如果那台计算机无法收取email, 您只要:

代码: 全选

$ dmesg | mail your-account@yourmail.dom 
然后再从您的邮箱里把这封信转发给
dmesg@openbsd.org
当然, 这里所说的"your-account@yourmail.dom"请使用您自己的邮箱地址。
说明

•请只发送标准内核的dmesgs.定制内核中一些驱动被移除了, 所以对我们没用。
•如果多处理器内核GENERIC.MP在您的多处理器系统上运行正常, 开发者很需要包含GENERIC kernel和GENERIC.MP kernel 的dmesgs信息, 这对我们很有帮助。请把两个信息分别发给我们。
•错误报告服务器启用了spamd(反垃圾邮件技术), 可能您的邮件不会马上到达服务器, 所以可能邮件可能会半小时后或一小时后才可能被服务器接收到, 所以请您保持耐心。
上面的方法很简单, 但是如果您不打算在OpenBSD上配置电子邮件, 您也应该将您的dmesg发送给开发者, 可以简单的将dmesg输出到一个文本文件:

代码: 全选

$ dmesg > ~/dmesg.txt
然后将这个文件用(FTP/scp/floppydisk/carrier-pigeon/...) 等方式发给您可以正常使用电子邮件的计算机. 因为您发来的dmesg是系统自动处理的, 所以无论是用邮件客户端或邮件服务器发送, 请检查下列选项:
•配置您的电子邮件客户端, 用纯文本的方式发送, 不要用HTML格式。
•关掉所有自动换行的功能, 许多邮件客户端默认配置成在72列自动换行(邮件列表规范)。
•确认您的电子邮件客户端不会再次对邮件进行"文本流"处理。
•不要把dmesg输出文件作为附件发送, 把这些信息放入邮件正文。

4.11 - 安装后添加组件
"哦, 不好!我在安装时忘了选择一个系统组件了!"
有时, 直到安装后您才意识到您确实需要comp45.tgz组件 (也许是其它组件), 但当时的确是没想起来, 这里有个好消息告诉您----安装后有两种方法可以添加组件:

用升级的方法
用您的安装介质启动(无论CD或软盘), 然后选择upgrade(可别选Install). 在列表中选择您第一次安装系统时忘了选择的系统组件, 然后选择安装介质, 剩下的就是升级程序帮您干了。
用 tar(1)----解压缩组件
系统组件实际上就是被压缩的tar文件, 您可以把它们在根目录下释放:

代码: 全选

# cd /
# tar xzvphf comp45.tgz  
别忘了在解压缩时使用"p"参数, 以便完整保留原始文件的使用权限!

一个常见的错误是, 想用pkg_add(1)把遗漏的组件安装到系统中, 别那样做, 那可不行。pkg_add(1)是一个第三方软件包管理工具 , 是用来安装第三方软件的, 它只能处理第三方软件包的tar文件, 处理不了安装组件这类的tar文件。

如果您用tar(1)第一次安装完xbsse组件, 在重新启动前, 必须先用ldconfig(8)对共享库缓存文件进行升级, 把所有的X库加到缓存文件中:

代码: 全选

# ldconfig -m /usr/X11R6/lib  
或者, 您可以重新启动系统, 而这项工作会被rc(8))启动脚本自动完成。


4.12 - 'bsd.rd'是什么?
bsd.rd 是一个内存磁盘内核。这个文件非常有用, 很多开发者将它妥善地保存在系统的根目录。称其为"内存磁盘内核"是形容内核挂载的根文件系统在内存磁盘中而不是不在物理磁盘中, 启动bsd.rd后, 必要的系统工具被储存在内核中, 并且在一个基于内存的文件系统中运行。bsd.rd还包含了一系列得心应手的工具以便让您进行系统维护和安装。在有些平台上, bsd.rd是首选的安装方法——您把bsd.rd放到一个已经存在的文件系统内, 启动它, 并且用它进行安装。在大多数平台上, 如果您有一个正在运行的老版本的OpenBSD, 您可以"ftp"一个新版本的bsd.rd, 从bsd.rd启动, 并安装一个新版本的OpenBSD而不需要任何可移动介质(软盘, 光盘)来安装。

这有一个i386上用从bsd.rd启动的例子:

代码: 全选

  Using Drive: 0 Partition: 3
  reading boot.....
  probing: pc0 com0 com1 apm mem[639k 255M a20=on]
  disk: fd0 hd0+
  >> OpenBSD/i386 BOOT 3.02
  boot> boot hd0a:/bsd.rd
. . . normal boot to install . . .  
像上面例子中显示的那样, 您会进入安装程序, 但您也可以中断安装, 进入shell去维护您的系统。
一个从bsd.rd的启动通用法则就是在您的平台上无论用什么方法把启动内核从/bsd, 变成bsd.rd。


4.13 - 常见的安装问题
4.13.1 - 我的Compaq仅识别出16M内存
有些Compaq系统存在一个的问题, 这些机器的内存无法被 OpenBSD second stage boot loader 正确地识别出全部内存, 刚开始OpenBSD可能只识别和使用了16M, 这个问题可通过建立或修改 /etc/boot.conf文件修正, 或在OpenBSD引导前在"boot>"提示符下输入命令, 假设您的计算机是64M内存, 而OpenBSD仅检测出16M, 那命令应该是:

machine mem +0x3000000@0x1000000
意思是48M (0x3000000)加上16M (0x1000000)内存. 与此相同, 如果您的计算机也存在这样的问题, 首先插入软盘/光盘引导, 在出现提示符"boot>"时输入上面的命令, 然后重新启动系统, 并在/etc/boot.conf里添加上这句话, 这样以后启动时您的内存就全部识别了。

也有人反映有些这类计算机升级ROM后就没事了


4.13.2 - 我的i386安装后不能启动
您的安装过程很顺利, 但是第一次启动时发现OpenBSD启动不了。这个现象一般是:
•Fdisk(8)没有设置活动分区分. 修改方法, 用软盘或其它介质重新启动计算机, 并把一个分区设定成活动的(可启动), 看这里和这里。
•磁盘上无有效的引导记录.如果您在安装OpenBSD系统时, "Use entire disk for OpenBSD?"这个问题选择了"yes", 或用了fdisk的 "reinit" 选项, OpenBSD引导记录已经被写到了磁盘的主引导扇区; 否则这个硬盘上原有的引导记录还没有被改写。 如果安装OpenBSD前您的主引导扇区上就没有其它引导记录存在, 这时就有问题了。(译者注:原来系统已经启动不了了, 您又不让OpenBSD把引导记录写上去, 所以硬盘上就没有引导记录, 肯定无法启动了)一个解决的办法, 从安装盘启动, 中断进入shell并调用 fdisk(8) 重新写入主引导记录, 用这个命令:

代码: 全选

# fdisk -u wd0
•说明:"update"选项在fdisk的交换式("-e")模式下将不会写入使磁盘具有启动功能的签名字节(signature bytes)
•在一些极其偶然的场合, 在安装引导记录的第二阶段有些步骤可能会出错, 更详尽的论述看这里。
4.13.3 - 我的老爷机已经启动了, 但是卡在了ssh-keygen 这个步骤
据此情况您的计算机运行正常, 仅仅是在产生ssh key的过程慢一点而已。一台SPARCStation2或Macintosh Quadra可能花费几个小时才能生成这三个ssh-keygen(1)。您只能等待, 只有您初次安装OpenBSD时才需要生成ssh-keygen(1), 安装后正常使用就没有这个问题了。
说明从OpenBSD3.8版本开始key文件尺寸增加了, 所以比以前的版本需要花费更多的时间生成key文件。如果您的机器配置很低, 可以在另外一台高性能的机器上生成key, 然后将它们放到site46.tgz文件里, 在安装时和其它系统组件一并安装。


4.13.4 -安装时系统提示我"Failed to change directory"
当您想通过ftp方式安装一个尚在-beta阶段的OpenBSD快照版时, 您可能会看到像这样的信息:

代码: 全选

  Display the list of known ftp servers? [no] yes
  Getting the list from 192.128.5.191 (ftp.openbsd.org)... FAILED
  Failed to change directory.
  Server IP address or hostname? 
这在安装预发行版时是一个正常的现象, 因为ftp程序会到主ftp服务器上寻找该版本的系统组件, 但实际上这些组件还没有被放到那里, 一般情况时下一个正式版发行时FTP上才会有新版本的安装组件。
您只需查阅一下FTP镜像列表, 然后出现提示时手工输入您选的FTP的域名或IP地址。

说明:如果您是从CD-ROM上安装发行版OpenBSD不会出现这样的提示。


4.13.5 - 我的磁盘分区乱七八糟或是空的!
偶尔一个用户会发现他的系统工作正常, 但是 fdisk(8) wd0时, 发现分区表是空白的(或者有时乱七八糟)。这在i386或amd64平台上通常是用fdisk安装分区时只偏移了0个扇区, 而正确的应是建立第一个分区时应跳过第一条磁道(每种平台的偏移量不尽相同, 有的没有偏移), 这时系统启动用PBR而不是MBR。
嗯, 当然这样配置也可以使用, 但是给维护时带来了麻烦, 我们应该修正它, 只能重新进行文件系统的分区了。(如果您确实知道怎么做, 您应该仅重新写一下您的disklable和MBR, 这样您只损失了第一个分区的数据。)


4.13.6 - 我的机器上没有软驱和光驱
有时用户想在明显没有安装OpenBSD途径的计算机上使用OpenBSD, 这里给您一些在这类系统上的安装OpenBSD的提示和技巧。
•网络启动, 使用 PXE (i386 或 amd64) 或者 diskless(8) (其它平台)。
•如果你的计算机可以从外置的光驱或软驱启动, 使用其中的一种。
•USB闪存盘或硬盘, 前提还是你的计算机可以用它们启动。像 FAQ 14 里描述的那样——在另一台计算机上准备好这个设备。用它们启动, 但是选择bsd.rd内核, 然后正常安装。你最好将系统组件预先拷贝在闪存盘上。
•最坏的情况是, 上述条件你都不具备, 你可以将要安装OpenBSD的目标计算机里面的硬盘取出来, 用一个合适的适配器接到一台"正常的"计算机上, 安装OpenBSD, 然后将这块磁盘再安装回目标电脑, OpenBSD将在目标电脑上很好地启动, 尽管你可能需要重新设置网络。
任何时候都不要忘记, 那台计算机上原来就存在着操作系统, 通常的系统设计会考虑在那台计算机上重新安装操作系统。你知道怎么重新安装原来的操作系统就可能知道怎样装OpenBSD。


4.14 - 定制化安装过程
siteXX.tgz 文件
OpenBSD的安装/升级脚本允许添加一个用户自定义的"siteXX.tgz"组件, 这里的XX表示发行版的版本号(比如:46代表OpenBSD4.6).这个siteXX.tgz组件和其它系统组件一样, 是一个经过gzip压缩的包含释放路径的tar包, 并且和其它系统组件一样可以使用tar的xzphf参数进行释放。这个用户自定义组件是在其它系统组件安装完成后最后一个安装。

(译者注:tar 的作用是将多个文件归档(打包)成一个文件。tar打包后的文件大小没有变化, 打包后可以方便拷贝到其它地方。tar在打包的时候可以维护目录结构和文件属性等信息, 因此当从打包文件(.tar 文件)解开之后会得到和压缩之前完全相同的目录结构;Gzip 的设计目的是"压缩", 它将一个文件压缩成扩展名为".gz"的压缩格式文件。Gzip 是用于压缩单个文件的压缩工具。所以, 当需要压缩传输一个文件夹的文件的时候, 先用 tar 打包, 然后用 gzip 压缩。这也体现了 UNIX 的设计思想:每个工具各尽其职, 用各种小工具的搭配取得大的效果。)

这个用户自定义组件允许用户添加自己的组件或者"矫正"正常的安装组件(译者注:这是为什么要放在最后面安装的原因, 这样才可以覆盖前面安装默认组件时的设置), 这样就可以让用户自定义或升级系统。 您也可以安装一个包含特定主机名的自定义组件, 像这样siteXX-<hostname>.tgz, 例如:"siteXX-9971.tgz", 这是为了每台计算机全可以进行用户自定义的安装, 升级系统及系统灾难恢复。

这里有一些使用siteXX.tgz的例子:

•在您第一次安装系统后, 安装一个包含了您所有修改文件的siteXX.tgz组件, 在重新安装过程中, 您的所有更改会被复制到您的新系统中。
•在每台计算机上安装包含所有改动目录的一个及自己特定机型的siteXX.tgz组件(例如不同的显卡……..), 下次重新安装系统时选择自己那台的定制组件。
•可以简单的把这个定制组件siteXX.tgz与系统组件结合在一起进行进行安装, 这样不必每次安装系统后还要重新设定。—— 例如: 把/etc/skel、/etc/pf.conf、/var/www/conf/httpd.conf、/etc/rc.conf.local 等目录下的文件打包压缩成siteXX.tgz。
install.site/upgrade.site 脚本
做为安装或升级的最后一个步骤, 脚本会在新系统的root目录下寻找install.site或者upgrade.site这两个文件。根据安装或更新的的进程, 脚本在root目录里运行, 并且被系统chroot在这个环境里。记住, 升级是在已经安装的系统上进行的, 所以您的目标系统已经被挂载到 /mnt 下。不管怎样, 因为chroot的原因, 您脚本可以像运行在正常的系统的 "/" 下的那样编写。因为这个脚本是在所有组件被安装后运行的, 所以这时它几乎可以运行系统的全部功能(尽管是在单用户模式下)

说明: upgrade.site在升级前放到root目录里或者直接放在siteXX.tgz这个自定义组件里, install.site必须放在siteXX.tgz这个自定义组件里

这个脚本可以同来干很多事情:

•删除安装或升级时产生的不您需要的文件。
•删除/升级/安装 那些您想在系统中运行的packages
•您准备对系统"大展身手"之前, 最好马上做一个备份或存档 。
•用 rdate(8)设定系统时间。
提供siteXX.tgz结合install.site和upgrade.site就是为了让您可以"随心所欲"的定制自己的系统, 否则您自己将不得不自制系统自己的系统安装组件。

说明:如果您要通过一个http服务器安装系统, 您必须在http服务器下安装目录的index.txt文件里加上您的site*.tgz, 以便安装系统时可以选择它们。ftp或其它安装方式不需要这样做。


4.15 - 我怎样批量安装?
这里提供了一些工具以便您部署一系列相似的OpenBSD系统。
siteXX.tgz 和 install/upgrade.site
看上一小节 的内容。.
使用dump(8)恢复
在多数平台, 您的安装介质(软盘, CD, ……。)上包含了系统恢复程序restore(8), 它可以被用来恢复dump(8)产生的一个备份, 因而, 您可以从一个floppy, CD, 或者bsd.rd文件启动, 然后 fdisk, disklabel 和 restore 恢复保存在其它地方的配置, 并在系统上安装引导块 boot blocks. 更多细节请看这里。



磁盘镜像
遗憾的是, 没有一个磁盘镜像软件真正可以识别OpenBSD所采用的FFS文件系统, 并制作一个仅包含所有文档所在空间的磁盘镜像。大多数磁盘镜像软件只把OpenBSD的分区当作"普通"的文件, 并只能为整个磁盘做一个磁盘镜像, 一般情况下也能满足一些要求, 但这个文件包含了大量的无用空间——一个10G的/home分区需要10G的磁盘镜像文件, 即使目录里一个文件也没有。您可以把这个镜像文件安装到一个更大的磁盘上, 但您无法直接使用这个磁盘的其余部分, 并且您无法将这个镜像安装在小的磁盘上。
如果您可以考虑一下, 您会发现dd命令可以帮您做一些事情, 允许您用扇区到的复制方式把一块硬盘的内容拷贝到另一块上, 这可以完成一些商业软件的功能而您则不必花钱。


4.16 - 我怎样得到dmesg(8)信息并反馈?
报告错误时至关重要的是要包含一个系统完整的dmesg(8)信息。可是, 当您需要报告一个问题时通常是计算机运行不正常, 或者无法安装, 所以您可能无法进入磁盘, 没有网络或其它资源以使您获得dmesg发送到适当的mail list(邮件列表)。但是还有其它的方法:
•软盘:安装软盘和光盘上有足够的工具可以让您拷贝到您的dmesg, 您可以把dmesg拷贝到一张MSDOS格式的软盘上, 用来在另一台计算机上读出来。把一张已经格式化了的MS-DOS格式的软盘放到您的软驱里, 运行下面的命令:

代码: 全选

# mount -t msdos /dev/fd0a /mnt
# dmesg >/mnt/dmesg.txt
# umount /mnt
•如果您有第二台OpenBSD系统, 您也可以把工作不正常那台的dmesg写入一个OpenBSD格式的软盘——通常您手里的OpenBSD安装盘上就有足够的空间可以放入dmesg文件。这种情况下, 上面的命令不用"-t msdos"参数。
•串口控制台:利用一个串口控制台捕捉问题计算机上信息并输出到另一台电脑通常是捕捉诊断信息的最佳途径——特别是当问题计算机启动后立即状态异常的情况, 同样第二台计算机也需要合适的串口电缆(通常是一根直接电缆连接线)及终端模拟器程序以便可以把屏幕内容捕捉到文件。
如何建立串口控制台的详细说明在elsewhere in the FAQ; 为捕捉安装日志, 下面的命令通常足够了。

i386

当出现boot引导提示符出现时输入:

代码: 全选

boot> set tty com0
这是通知OpenBSD用第一个串口(在pc文档里也经常被称为COM1或者COMA)做为串口控制台,默认波特率是9600。

Sparc/Sparc64

这些机器在启动时没有键盘将自动使用一个串口控制台。即使您安装了键盘和监视器也同样可以在出现"OK"提示符时用以下命令强制系统使用串口控制台。

代码: 全选

ok setenv input-device ttya
ok setenv output-device ttya
ok reset
FTP:在一些情况, 假设您第一次设定网络正确, 您可以使用安装盘上的ftp(1)客户端把dmesg发送到一个本地的FTP服务器上, 这样也可以得到dmesg文件。

主题已锁定

在线用户

正浏览此版面之用户: 没有注册用户 和 28 访客