3.6. 磁碟組織

FreeBSD 用來尋找檔案的最小單位就是檔案的名稱了。 檔案的名稱有大小寫之分,所以說 readme.txtREADME.TXT 是兩個不同的檔案。 FreeBSD 並不使用副檔名 (.txt) 來判別這是一個程式檔、文件檔或是其他類型的檔案。

檔案存在目錄裡面。 一個目錄中可能沒有任何檔案,也可能有好幾百個檔案。 目錄之中也可以包含其他的目錄; 您可以建立階層式的目錄以便資料的管理。

檔案或目錄的對應是藉由給定的檔案或目錄名稱,然後加上正斜線符號 (/);之後再視需要加上其他的目錄名稱。 如果您有一個目錄 foo ,裡面有一個目錄叫作 bar,這個目錄中又包含了一個叫 readme.txt 的檔案,那麼這個檔案的全名,或者說檔案的路徑 (Path)就是 foo/bar/readme.txt。注意這與 Windows® 用來分隔檔案與目錄名稱所使用的 \ 不同,且 FreeBSD 在路徑上並不使用磁碟機代號或其他磁碟機名稱,意思是,在 FreeBSD 上不會有人輸入 c:\foo\bar\readme.txt 這種路徑。

目錄及檔案儲存在檔案系統 (File system) 之中。 每個檔案系統都有唯一一個最上層的目錄,叫做根目錄 (Root directory)。 然後在這個根目錄下面才能有其他的目錄。其中一個檔案系統會被指定成為根檔案系統 (Root file system)/,其他的檔案系統均會掛載 (mounted) 在該根檔案系統之下,不論在 FreeBSD 有多少個磁碟,所有目錄都會成為該磁碟的一部份。

假設您有三個檔案系統,分別叫作 A, BC。 每個檔案系統都包含兩個目錄,叫做 A1, A2 (以此類推得 B1, B2C1, C2)。

A 為主要的檔案系統;如果您用 ls(1) 指令查看此目錄的內容,您會看到兩個子目錄: A1A2,如下所示:

一個檔案系統必須以目錄形式掛載於另一個檔案系統上。 因此,假設您將 B 掛載於 A1 之上,則 B 的根目錄就變成了 A1,而在 B 之下的任何目錄的路徑也隨之改變:

B1B2 目錄中的任何檔案必須經由路徑 /A1/B1/A1/B2 才能達到。 所有原來在 /A1 中的檔案會暫時被隱藏起來,直到 B解除掛載 (Unmounted) 後才會再顯現出來。

如果 B 掛載在 A2 之上,則會變成:

上面的路徑分別為 /A2/B1/A2/B2

檔案系統可以掛在其他檔案系統的目錄之上。 延續之前的例子,C 檔案系統可以掛在檔案系統 BB1 目錄之上,如圖所示:

或者 C 直接掛載於 AA1 目錄之上:

您可以使用單一的一個大的根檔案系統而不建立其他的檔案系統。 這樣有好處也有有壞處。

使用多個檔案系統的好處
使用單一檔案系統的好處

檔案系統放在分區 (Partition) 中。 因為 FreeBSD 承襲 UNIX® 架構,這邊講的分區和一般提到的分割區 (例如 MS-DOS® 分割區) 不同。每一個分區由一個代號 (字母) 表示,從 ah。 每個分區只能含有一個檔案系統,因此在表示檔案系統時,除了用該檔案系統的常用的掛載點表示外,也可以使用該檔案系統所在的分區來表示。

FreeBSD 也會使用磁碟空間作為交換空間 (Swap space) 來提供虛擬記憶體 (Virtual memory)。 這讓您的電腦好像擁有比實際更多的記憶體。 當 FreeBSD 的記憶體用完的時候,它會把一些目前沒用到的資料移到交換空間,然後在用到的時候移回去 (同時移出部份沒用到的)。

部份分區有使用的慣例如下:

分區慣例
a通常內含根檔案系統
b通常內含交換空間
c通常用來代表整個切割區 (Slice),因此大小會與其所在的切割區一樣。這可讓需要對整個切割區處理的工具 (例如硬碟壞軌檢查工具) 可在 c 分區上執行。一般來說不會把檔案系統建立在這個分區。
d分區 d 曾經有代表特殊意義,但是已經不再使用。所以現在 d 和一般的分區相同。

在 FreeBSD 的磁碟會分割成數個切割區 (Slice),如同 Windows® 中由編號 1 到 4 表示的分割區。這些切割區會再分成數個分區,每個分區內含檔案系統,且會使用字母來標示。

切割區的編號在裝置名稱後面,會先以 s 為字首,然後從 1 開始編號。 因此 da0s1 是指第一個 SCSI 硬碟的第一個切割區。 一個磁碟上只能有四個實體切割區,但是在實體切割區中放進適當類型的邏輯切割區。這些延伸的切割區編號會從 5 開始,所以 ada0s5 是第一個 SATA 硬碟上的第一個延伸切割區。因此可以預期這些由檔案系統使用的裝置 (Device) 上均會各別佔據一個切割區。

切割區、危險專用 (Dangerously dedicated) 的實體磁碟機以及其他內含分割區 (Partition) 的磁碟都是以字母 ah 來表示。 字母會接在裝置名稱的後面,因此 da0a 是第一顆 dangerously dedicated 磁碟機 da 上的 a 分割區。 而 ada1s3e 則是第二顆 SATA 硬碟上第三個切割區的第五個分區。

終於,我們可以辨識系統上的每個磁碟了,一個磁碟的名稱會有一個代碼來表示這個磁碟的類型,接著是一個表示這是那一個磁碟的編號。不像切割區,磁碟的編號從 0 開始。常見的代碼可以參考 表格 3.3, “磁碟裝置名稱”

當要參照一個分區的時候,需包含磁碟機名稱、s、切割區編號以及分區字母。範例可以參考 範例 3.12, “磁碟、切割區及分區命名範例”

範例 3.13, “磁碟的概念模型” 示範了一個基本的磁碟配置,相信對您有些幫助。

要安裝 FreeBSD,您必須先建置磁碟的切割區,接著於切割區中建立要給 FreeBSD 用的分區。 最後在這些分區中建立檔案系統 (或交換空間) 並決定要將這些檔案系統掛載於哪裡。

表格 3.3. 磁碟裝置名稱
磁碟機類型磁碟機裝置稱
SATAIDE 硬碟adaad
SCSI 硬碟與 USB 儲存裝置da
SATAIDE CD-ROM 光碟機cdacd
SCSI CD-ROM 光碟機cd
軟碟機fd
各種非標準 CD-ROM 光碟機mcd 代表 Mitsumi CD-ROM 以及 scd 代表 Sony CD-ROM 光碟機
SCSI 磁帶機sa
IDE 磁帶機ast
RAID 磁碟機範例包含 aacd 代表 Adaptec® AdvancedRAID,mlxdmlyd 代表 Mylex®,amrd 代表 AMI MegaRAID®,idad 代表 Compaq Smart RAID,twed 代表 3ware® RAID.

範例 3.12. 磁碟、切割區及分區命名範例
名稱意義
ada0s1a第一個 SATA 硬碟 (ada0) 上第一個切割區 (s1)的第一個分區(a) 。
da1s2e第二個 SCSI 硬碟 (da1) 上第二個切割區 (s2) 的第五個分區 (e) 。

範例 3.13. 磁碟的概念模型

此圖顯示 FreeBSD 中連接到系統的第一個 SATA 磁碟機內部配置圖。 假設這個磁碟的容量是 250 GB,並且包含了一個 80 GB 的切割區及一個 170 GB 的切割區 (MS-DOS® 的分割區)。 第一個切割區是 Windows® NTFS 檔案系統的 C: 磁碟機,第二個則安裝了 FreeBSD。 本範例中安裝的 FreeBSD 有四個資料分區及一個交換分區。

這四個分區中各有一個檔案系統。 分區 a 是根檔案系統、分區 d/var/、分區 e/tmp/,而分區 f/usr/。分區字母 c 用來代表整個切割區,因此並不作為一般分區使用。


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

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

關於本文件的問題,請洽詢 <doc@FreeBSD.org>。