19.3. 添加磁盘
上一页 | 第 19 章 存储 | 下一页

## 19.3. 添加磁盘

Originally contributed by David O'Brien.

下面这节将会介绍如何在一台只有一块磁盘的机器上新增一块 SCSI 磁盘。 首先 需要关掉计算机，然后按操作规程来安装驱动器，控制器和驱动程序。由于 各厂家生产的产品各不相同，具体的安装细节不在此文档介绍之内。

以 `root` 用户登录。安装完驱动后，检查一下 `/var/run/dmesg.boot` 有没有找到新的磁盘。在我们 的例子中新增加的磁盘就是 `da1`，我们从 `/1` 挂上它。 (如果您正添加 IDE 驱动器， 则设备名应该是 `ad1`)。

因为 FreeBSD 运行在 IBM-PC 兼容机上，它必须遵循 PC BIOS 分区规范。 这与传统的 BSD 分区是不同的。一个 PC 的磁盘最高只能有四个 BIOS 主分区。如果磁盘只安装 FreeBSD 您可以使用 dedicated 模式。另外， FreeBSD 必须安装在 PC BIOS 支持的分区内。FreeBSD 把分区叫作 slices 这可能会把人搞糊涂。您也可以在只安装 FreeBSD 的磁盘上使用 slices，也可以在安装有其它操作系统的磁盘上使用 slices。这不会影响其它操作系统的 `fdisk` 分区工具。

在 slice 方式表示下，驱动器被添加到 `/dev/da1s1e`。 可以读作：SCSI 磁盘，编号为 1 (第二个SCSI 磁盘)， slice 1 (PC BIOS 分区 1)， 的 BSD 分区 `e` 。在有些例子中，也可以简化为 `/dev/da1e`。

由于 bsdlabel(8) 使用 32-位 的整数来表示扇区号， 因此在多数情况下它的表现力限于每个磁盘 2^32-1 个扇区， 或 2TB。 fdisk(8) 格式允许的起始扇区号不能高于 2^32-1， 而分区尺寸也不能超过 2^32-1， 这样一来通常情况下分区尺寸不能超过 2TB， 而磁盘尺寸则不能超过 4TB。 sunlabel(8) 格式的限制是每个分区 2^32-1 个扇区， 但可以有 8 个分区， 因而可以支持最大 16TB 的磁盘。 对于更大的磁盘， 可以使用 gpart(8) 来创建 GPT 分区。 GPT 除了支持大磁盘之外， 还不受 4 个 slice 的限制。

### 19.3.1. 使用 sysinstall(8)

1. 使用 Sysinstall

   您可以使用 `sysinstall` 命令的菜单来分区和标记一个新的磁盘。 这一操作需要有 root 权限， 您可以直接使用 `root` 账户登录或者使用 `su` 命令来切换到 root 用户。运行 `sysinstall` ，然后选择 `Configure` 菜单。在 `FreeBSD Configuration Menu` 下，上下滚动， 选择 `Fdisk` 条目。

2. fdisk 分区编辑器

   进入 fdisk 分区编辑器后，选择 `A` ，FreeBSD 将使用全部的磁盘。当被告知 “remain cooperative with any future possible operating systems”时，回答 `YES`。使用 W 保存刚才的修改。现在使用 Q 退出 FDISK 编辑器。下面会看到有关 “主引导区” 的信息。 现在您已经在运行的系统上添加了一个磁盘， 因此应该选择 `None`。

3. Disk Label 编辑器

   接下来，您应该退出 sysinstall 并且再次启动它，并按照上面的步骤直接进入 `Label` 选项。进入 `磁盘标签编辑器`。 这就是您要创建的 BSD 分区。一个磁盘最多可以有 8 个分区，标记为 `a-h`。有几个分区标签有特殊的用途。 `a` 分区被用来作为根分区(`/`)。 系统磁盘（例如：从那儿启动的分区）必须有一个 `a` 分区。`b` 分区被用作交换分区，可以用很多磁盘用作交 换分区。 `c` 分区代表整个硬盘，或在 FreeBSD slice 模式下代表整个 slice。其它分区作为一般分区来使用。

   sysinstall 的标签编辑器用 `e` 表示非 root 和非 swap 分区。在标签编辑器中，可以使用键入 C 创建一个文件系统。当提示这是否是一个 FS（文件系统）或 swap 时，选择 `FS`，然后给出一个加载点（如： `/mnt`）。 当在 post-install 模式时添加一个磁盘， sysinstall 不会在 `/etc/fstab` 中创建记录，所以是否指定加载点并不重要。

   现在已经准备把新标签写到磁盘上，然后创建一个文件系统，可以按下 W。出现任何错误都会不能创建新的分区。可以退出标签编辑 器然后重新执行 sysinstall 。

4. 完成

   下面一步就是编辑 `/etc/fstab`，为您的磁盘添加一个新 记录。

### 19.3.2. 使用命令行工具

#### 19.3.2.1. 使用 Slices

这步安装将允许磁盘与可能安装在您计算机上的其它操作系统一起 正确工作，而不会搞乱其它操作系统的分区。推荐使用这种方法来安装 新磁盘，除非您有更好的理由再使用 `dedicated` 模式！

`#` `dd if=/dev/zero of=/dev/da1 bs=1k count=1` `#` `fdisk -BI da1` #初始化新磁盘 `#` `bsdlabel -B -w da1s1 auto` #加上标签 `#` `bsdlabel -e da1s1` # 现在编辑您刚才创建的磁盘分区 `#` `mkdir -p /1` `#` `newfs /dev/da1s1e` # 为您创建的每个分区重复这个操作 `#` `mount /dev/da1s1e /1` # 挂上分区 `#` `vi /etc/fstab` # 完成之后，添加合适的记录到您的 `/etc/fstab`文件。

如果有一个 IDE 磁盘，记得要用 `ad` 替换前面的 `da`。

#### 19.3.2.2. 专用模式

如果您并没有安装其它的操作系统，可以使用 `dedicated` 模式。记住这种模式可能会弄乱 Microsoft 的操作系统，但不会对它进行破坏。 它不识别找到的 IBM OS/2® 的 “appropriate” 分区。

`#` `dd if=/dev/zero of=/dev/da1 bs=1k count=1` `#` `bsdlabel -Bw da1 auto` `#` `bsdlabel -e da1` # 创建 `e' 分区 `#` `newfs /dev/da1e` `#` `mkdir -p /1` `#` `vi /etc/fstab` # 为 /dev/da1e添加一个记录 `#` `mount /1`

另一种方法：

`#` `dd if=/dev/zero of=/dev/da1 count=2` `#` `bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin` `#` `newfs /dev/da1e` `#` `mkdir -p /1` `#` `vi /etc/fstab` # 为 /dev/da1e添加一个记录 `#` `mount /1`

上一页 | 上一级 | 下一页
19.2. 设备命名 | 起始页 | 19.4. RAID

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

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