FreeBSD 使用手冊
前一頁 | 章 18. 儲存設備篇 | 下一頁

# 18.3. 新增磁碟

Originally contributed by David O'Brien.

假設我們想新增 SCSI 磁碟到一臺原先只有一顆磁碟的機器上， 首先將電腦關機，依製造商的指示將磁碟裝上去， 詳細的操作方式請參考製造商的說明文件。

安裝好磁碟後，用 `root` 登入系統， 看一下 `/var/run/dmesg.boot` 以確認系統是否抓到新磁碟。 繼續剛才的範例，新增的磁碟會是 `da1`， 假設我們想將它掛載到 `/1` 這個位置 (如果您新增的是 IDE 磁碟的話，請用 `ad1`)。

FreeBSD 為了在 IBM-PC 相容電腦上執行， 必須配合 PC BIOS partition，因此和傳統的 BSD partition 有很大的不同。 在 PC 裡磁碟最多可以有四筆 BIOS partition 資訊(亦即最多可分割成四個 partition)。如果這個磁碟打算全部讓 FreeBSD 使用，可選擇 dedicated 模式， 不然的話 FreeBSD 必須置身於其中一個 PC BIOS partition 中。 在 FreeBSD 裡，PC BIOS partition 稱為 slice， 這是為了不要和傳統的 BSD partition 搞混了。 [1] 不論是完全由 FreeBSD 使用的磁碟，還是安裝了其它作業系統的磁碟， 您都可以使用 slice。這樣的好處是，其它非 FreeBSD 作業系統的 `fdisk` 工具可以順利操作。

如果使用 slice，這個新增的磁碟會是 `/dev/da1s1e`。可以這樣來解讀它：SCSI 磁碟、 unit number 1(第二個 SCSI 磁碟)、slice 1(第一個 PC BIOS partition)、 及 `e` BSD partition。在 dedicated 模式的話， 新磁碟則是 `/dev/da1e`。

因為 bsdlabel(8) 是用 32-bit 整數來儲存 sector(磁區) 數， 因此限制一個磁碟最大只能有 2^32-1 個 sector，亦即 2TB 的空間。 而 fdisk(8) 的格式容許起始 sector 編號不超過 2^32-1， 長度也不超過 2^32-1，因此 partition 最大空間是 2TB，而磁碟最大是 4TB。 sunlabel(8) 則限制 partition 最大是 2TB，磁碟最多可有 8 個 partition，因此最大是 16TB。 如果要使用更大的磁碟，請使用 gpt(8)。

## 18.3.1. 使用 sysinstall(8)

1. 操作 Sysinstall

   透過 `sysinstall` 的選單介面， 可以輕易為磁碟分割 BIOS partition(slice) 和 BSD patition。 必須以 root 身份使用 `sysinstall`， 要嘛用 root 登入，要嘛用 `su` 切換到 root。 執行 `sysinstall` 後，選 `Configure`，在 `FreeBSD Configuration Menu` 裡移到 `Fdisk` 選項。

2. fdisk Partition 編輯器

   在 fdisk 裡，按下 `A` 表示整個磁碟都給 FreeBSD 使用。 接著會提示您『是否要相容其它的作業系統』，回答 `YES`。 按 `W` 會將這些改變立即寫入磁碟，再按 `q` 可以離開 FDISK 編輯器。 接下來會問您要將 “Master Boot Record” 安裝於何處，由於現在是新增磁碟，表示作業系統已經裝在別的磁碟上了， 所以可以選 `None` 就行了。

3. Disk Label Editor(磁碟 Label 編輯器)

   接著請關閉 sysinstall，再重開一次。 照著上一節的指示，不過這次改選 `Label` 進入 `Disk Label Editor`，在此您可以編輯傳統的 BSD partition。 一個磁碟(或著一個 slice) 最多可切分成 8 個 BSD partition，依序用 `a-h` 來表示。 有些字母有特別的意義，`a` partition 表示這是 root partition(根分割區，`/`)， 因此只有安裝系統的磁碟(例如用來開機的磁碟) 有 `a` partition。 `b` partition 表示這是 swap partitions(交換分割區)，每個磁碟上都可以有 swap。 `c` partition 用來表示整個磁碟(如果使用 dedicated mode 的話)或整個 slice。 其它的字母則用來表示普通的 BSD partition 。

   sysinstall 的 Label editor(磁碟 Label 編輯器) 偏好用 `e` 來表示非 root、也非 swap 的分割區 [2] 在 Label editor 裡，按 `C` 可以新增一個檔案系統(BSD label)，它會問您這是一個 FS(file system ，檔案系統) 或是 swap(交換分割區)，選擇 `FS` 接著輸入要掛載的位置(例如 `/mnt`)。 如果系統安裝完後才新增磁碟，sysinstall 不會幫您把這筆掛載資料加入 `/etc/fstab`， 所以掛載的位置不太重要。

   當您準備好將新的 label 寫入磁碟、建立檔案系統，按 `W` 即可。如果出現在什麼錯誤， sysinstall 可能無法幫您掛載這個新分割區。 結束 Label Editor、結束 sysinstall 就行了。

4. 完成

   最後要做的是編輯 `/etc/fstab`， 加入您新增的分割區資訊。

## 18.3.2. 使用命令列工具

### 18.3.2.1. 使用 Slices(BIOS partitions)

這種模式能讓您的磁碟分割區與其它作業系統的 `fdisk` 工具和平共處，因此我們建議您使用 slice 模式。 如果您一定要使用 `dedicated` 模式， 您得有個好理由！ [3]

    # dd if=/dev/zero of=/dev/da1 bs=1k count=1
    # fdisk -BI da1 # 初始您的磁碟。
    # bsdlabel -B -w -r da1s1 auto # 建立 bsdlabel。
    # bsdlabel -e da1s1 # 編輯 bsdlabel 以新增 label。
    # mkdir -p /1
    # newfs /dev/da1s1e # 如果您新增了多個 label，對每個 label 重覆這個步驟。
    # mount /dev/da1s1e /1 # 掛載這些新 label。
    # vi /etc/fstab # 在 /etc/fstab 加入適當的資訊。

如果您新增的是 IDE 磁碟，將 `da` 改成 `ad` 即可 [4]。

### 18.3.2.2. Dedicated

如果您不打算將新磁碟用於其它的作業系統， 您可以使用 `dedicated` 模式。注意： Microsoft 的作業系統認不得這個模式，不過也不會去破壞它； 然而 IBM 的 OS/2® 就沒那麼好心了，它會去調整所有它不認得的分割區 [5]。

    # dd if=/dev/zero of=/dev/da1 bs=1k count=1
    # bsdlabel -Brw da1 auto
    # bsdlabel -e da1				# 建立 `e' partition。
    # newfs -d0 /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 -BrR da1 /dev/stdin
    # newfs /dev/da1e
    # mkdir -p /1
    # vi /etc/fstab					# 新增一筆 /dev/da1e 的資訊。
    # mount /1

### 注

[1] | 譯註：基於相同的理由， 現在 BSD partition 常稱為 BSD label，或簡稱 label。
[2] | 譯註：老實說我看不懂這句指的是什麼？原文是 sysinstall Label editor favors the `e` partition for non-root, non-swap partitions.
[3] | 譯註：如果您自始至終都不打算將這個磁碟用於 FreeBSD 之外的作業系統，那可以算是個好理由。不過就算如此， 用 slice 模式也沒什麼壞處就是了:-)。
[4] | 譯註：da 是 direct access (disk) 的縮寫； ad 是 ata disk 的縮寫。
[5] | 譯註：我對這句的意思沒什麼信心，原文是 IBM's OS/2 however, will “appropriate” any partition it finds which it does not understand.

前一頁 | 內容 | 下一頁
裝置名稱 | 上一層 | RAID

本文及其他文件，可由此下載：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。