假設我們想新增 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 搞混了。
[16]
不論是完全由 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)。
操作 Sysinstall
透過 sysinstall
的選單介面,
可以輕易為磁碟分割 BIOS partition(slice) 和 BSD patition。
必須以 root 身份使用 sysinstall
,
要嘛用 root 登入,要嘛用 su
切換到 root。
執行 sysinstall
後,選
Configure
,在
FreeBSD Configuration Menu
裡移到
Fdisk
選項。
fdisk Partition 編輯器
在 fdisk 裡,按下
A
表示整個磁碟都給 FreeBSD 使用。
接著會提示您『是否要相容其它的作業系統』,回答
YES
。 按 W
會將這些改變立即寫入磁碟,再按 q
可以離開
FDISK 編輯器。 接下來會問您要將 “Master Boot Record”
安裝於何處,由於現在是新增磁碟,表示作業系統已經裝在別的磁碟上了,
所以可以選 None
就行了。
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 的分割區
[17] 在 Label editor 裡,按 C
可以新增一個檔案系統(BSD label),它會問您這是一個 FS(file system
,檔案系統) 或是 swap(交換分割區),選擇 FS
接著輸入要掛載的位置(例如 /mnt
)。
如果系統安裝完後才新增磁碟,sysinstall
不會幫您把這筆掛載資料加入 /etc/fstab
,
所以掛載的位置不太重要。
當您準備好將新的 label 寫入磁碟、建立檔案系統,按
W
即可。如果出現在什麼錯誤,
sysinstall 可能無法幫您掛載這個新分割區。
結束 Label Editor、結束 sysinstall
就行了。
完成
最後要做的是編輯 /etc/fstab
,
加入您新增的分割區資訊。
這種模式能讓您的磁碟分割區與其它作業系統的
fdisk
工具和平共處,因此我們建議您使用 slice 模式。
如果您一定要使用 dedicated
模式,
您得有個好理由!
[18]
#
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
即可
[19]。
如果您不打算將新磁碟用於其它的作業系統,
您可以使用 dedicated
模式。注意:
Microsoft 的作業系統認不得這個模式,不過也不會去破壞它;
然而 IBM 的 OS/2® 就沒那麼好心了,它會去調整所有它不認得的分割區
[20]。
#
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
[16] 譯註:基於相同的理由, 現在 BSD partition 常稱為 BSD label,或簡稱 label。
[17] 譯註:老實說我看不懂這句指的是什麼?原文是
sysinstall Label editor
favors the e
partition for non-root,
non-swap partitions.
[18] 譯註:如果您自始至終都不打算將這個磁碟用於 FreeBSD 之外的作業系統,那可以算是個好理由。不過就算如此, 用 slice 模式也沒什麼壞處就是了:-)。
[19] 譯註:da 是 direct access (disk) 的縮寫; ad 是 ata disk 的縮寫。
[20] 譯註:我對這句的意思沒什麼信心,原文是 IBM's OS/2® however, will “appropriate” any partition it finds which it does not understand.
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。