FreeBSD 操作系统在无远程控制台下的远程安装
上一页 |  | 下一页

# 4 FreeBSD 操作系统的安装

mfsBSD 成功被引导后它就应该能够通过 ssh(1) 登入了。这一节会描述如何创建 slices 并标记 slices 的 label， 为 RAID-1 配置 gmirror， 还有如何使用 sysinstall 来安装一个最小的FreeBSD操作系统版本。

## 4.1 准备磁盘

首要的任务是为 FreeBSD 分配磁盘空间，也就是， 创建 slices 和 partitions。很显然， 当前运行的系统是全部被载入到系统内存中的因此操作磁盘将没有任何问题。 要完成这个任务，可以是使用 sysinstall 或者 fdisk(8) 中的二者任一并结合工具 bsdlabel(8)。

在开始时，将所有磁盘都标记成空的， 在每个磁盘上重复如下命令：

    # dd if=/dev/zero of=/dev/ad0 count=2

下面，使用你喜欢的工具创建 slices 并标记磁盘 label。 比较简单的方法是使用 sysinstall， 强大也可能几乎没有漏洞方法是使用标准的基于文本的 UNIX® 工具， 类似于 fdisk(8) 和 bsdlabel(8) 这些工具的使用也会在这一节中包括。前者已经被包括在 FreeBSD 手册的 安装FreeBSD 一章中了。如本节中刚提到的，这篇文章会展示如何设置一个带有 RAID-1 和 ZFS 性能的系统。我们的设置由一个小工具 gmirror(8) 镜像为 `/` (root)， `/usr` 和 `/var` 文件系统， 并把剩余的磁盘空间被分配为 zpool(8) 镜像出的 ZFS 文件系统。请注意， ZFS 文件系统将在 FreeBSD 操作系统成功安装并启动后才会被配置。

下面的例子会描述如何去创建 slices 和 labels， 在每个 partition 上初始化 gmirror(8) 并如何在每个被镜像过的 partition 上创建 UFS2 文件系统：

    # fdisk -BI /dev/ad0
    # fdisk -BI /dev/ad1
    # bsdlabel -wB /dev/ad0s1
    # bsdlabel -wB /dev/ad1s1
    # bsdlabel -e /dev/ad0s1
    # bsdlabel /dev/ad0s1 > /tmp/bsdlabel.txt && bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt
    # gmirror label root /dev/ad[01]s1a
    # gmirror label var /dev/ad[01]s1d
    # gmirror label usr /dev/ad[01]s1e
    # gmirror label -F swap /dev/ad[01]s1b
    # newfs /dev/mirror/root
    # newfs /dev/mirror/var
    # newfs /dev/mirror/usr

  在整个磁盘上创建一个 slice 并初始化包含在磁盘第一个扇区启动代码。 重复在系统上全部的磁盘上执行此命令。
  为每块磁盘写入一个包括启动代码的内容的标准 label。
  现在，手动去编辑磁盘的 label。可以查阅 bsdlabel(8) 的联机手册来找到如何建立 partitions 的方法。创建如下 partions，`a` 为 `/` (root) 文件系统， `b` 为 swap 交换空间， `d` 为 `/usr` 还有最后 `f` 被用于 ZFS。
  引入你刚才创建的 label 到第二块磁盘， 所以两块磁盘会使用同样的 label。
  在每个 partition 上初始化 gmirror(8)。
  注意 `-F` 选项被用在 swap 交换分区的 partition。 gmirror(8) 这个指令认为设备处于可靠的状态除非电源系统故障。
  在每个被镜像的分区上创建一个 UFS2 的文件系统。

## 4.2 系统安装

这是最重要的一部分。 此节将描述如何在我们上一小节已经准备好的磁盘上安装一个最小的 FreeBSD 版本。要达成这个目的，所有的文件安系统需要被挂载乃至于 sysinstall 可以把 FreeBSD 系统的内容写到磁盘上：

    # mount /dev/mirror/root /mnt
    # mkdir /mnt/var /mnt/usr
    # mount /dev/mirror/var /mnt/var
    # mount /dev/mirror/usr /mnt/usr

当你做完这些时，打开 sysinstall(8)。 从主菜单选择自定义 Custom 安装。 选中 Options 选项然后按回车确认。 使用方向键获取帮助，移动鼠标指针到 `Install Root` 选项，按 空格 更改为 `/mnt`。 按 回车 提交你的更改并使用 q 退出 Options （选项）菜单。

> 警告: 注意这一步骤非常重要，如果被跳过了， sysinstall 将不能安装 FreeBSD。

到 Distributions（发行版）菜单选项， 使用方向键移动鼠标指针到 `Minimal`（最小化）选项， 并使用 空格键 选中该选项。 本文使用了最小版本来保存网络联通信息，因为系统本身会通过 ftp 来安装。使用 `Exit`（退出）选项退出这个菜单。

> 注意: Partition 和 Label 菜单将被跳过， 这些没有多少价值了。

Media（媒介）菜单， 选择 `FTP` 选项。 选择一个距离你最近的镜像站点并交给 sysinstall 假定网络已经配置完好。你将再回到 Custom （自定义）菜单。

最后，选择最后的选项来执行系统的安装过程， Commit， 当安装完成后退出 sysinstall 即可。

## 4.3 后期安装步骤

FreeBSD 操作系统现在应该安装完毕了；通常情况下， 安装过程还没有结束。还需要进行一些安装后期的步骤使得容许 FreeBSD 在将来启动并能够登入系统。

你现在必须 chroot(8) 到刚安装的全新的系统中来完成安装。 使用如下命令：

    # chroot /mnt

要达到我们的目的，进行如下步骤：

- 拷贝 `GENERIC`（通用）内核到 `/boot/kernel` 目录：

      # cp -Rp /boot/GENERIC/* /boot/kernel

- 创建 `/etc/rc.conf`， `/etc/resolv.conf` 还有 `/etc/fstab` 文件。 不要忘记正确地设置网络信息并在 `/etc/rc.conf` 文件中启用 sshd。 `/etc/fstab` 文件内容类似于下面的内容：

      # Device                Mountpoint      FStype  Options         Dump    Pass#
      /dev/mirror/swap        none            swap    sw              0       0
      /dev/mirror/root        /               ufs     rw              1       1
      /dev/mirror/usr         /usr            ufs     rw              2       2
      /dev/mirror/var         /var            ufs     rw              2       2
      /dev/cd0                /cdrom          cd9660  ro,noauto       0       0

- 创建 `/boot/loader.conf` 文件，并写入如下内容：

      geom_mirror_load="YES"
      zfs_load="YES"

- 执行下面的命令，使得 ZFS 在下次启动后可用：

      # echo 'zfs_enable="YES"' >> /etc/rc.conf

- 可以用 adduser(8) 工具来添加额外的用户。 不要忘记添加一个用户到 `wheel` 组，这样你可以在重新启动后获得 root 权限。

- 反复检验你的设置是否正确。

现在你的系统在下次启动后应该可用了。使用 reboot(8) 命令重新启动你的系统。

上一页 | 起始页 | 下一页
准备工作 - mfsBSD |  | ZFS

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.