- 硬盤分區方式及命名
在個人計算機中,每個硬盤可以分為四個磁盤分區,其分區信息存儲在該硬盤前部的分區表中,而每個分區可以由不
同的操作系統進行管理。常見的分區分為基本分區和擴展分區,又根據使用的不同文件組織格式,可以分為DOS的FAT分
區,FreeBSD的UFS分區、NT的NTFS分區,Linux的EXT2FS分區等。
一個硬盤上可以划分一個擴展分區,擴展分區與基本分區不同,它實際上不直接在上面存儲實際數據,而是在上面再
划分邏輯分區,這樣又可以划分四個邏輯分區。使用DOS/Windows操作系統的計算機必須擁有一個使用DOS的F
AT文件系統的基本分區,這個將對應于DOS下的C盤,然后將其他空間划分到擴展分區中,在擴展分區中再划分DOS邏
輯分區,相應的FAT分區依次對應于D盤、E盤等。當其他的操作系統使用硬盤時,這個操作系統應該單獨占用一個分區,
在這個分區上使用自己的文件組織格式。
DOS只能使用C、D等盤符來標志FAT格式的磁盤分區,它不能標識其他文件組織格式的磁盤分區,如果一個硬
盤上沒有FAT格式的磁盤分區,那么就不會存在C盤、D盤等。然而其他更強大的操作系統通常能識別多種文件組織格式,
通常按照分區在分區表中的順序來標識他們。例如FreeBSD將記錄在分區表上的分區,分別稱作wd0s1,wd0s
2,wd0s3,wd0s4,wd0為第一個IDE硬盤,使用s1標識第一個分區等。如果某個分區(例如第二個分區w
d0s2)為擴展分區,那么其上面的邏輯分區,其順序就從5算起,為wd0s5,wd0s6,wd0s7,wd0s8
。因此一個磁盤上最多只能有8個不同的分區同時存在。
然而畢竟擴展分區上的邏輯分區和基本分區還有所差別,因此不是所有類型的文件組織方式都可以適合在邏輯分區中
使用。FAT、NTFS和EXT2FS類型可以被在邏輯分區上使用,但是FreeBSD使用的UFS不能被邏輯分區使
用,只能是在基本分區中使用UFS文件組織格式。這是由于FreeBSD是一個完全獨立的操作系統,使用的分區方式繼
承自BSD Unix,早在個人計算機出現之前,BSD就已經形成了自己的管理硬盤和分區的方式了。
BSD Unix傳統的使用硬盤方式是獨占整個硬盤,只有文件系統或交換空間而沒有分區的概念,也不使用硬盤
的分區表來保存分區信息,因此也不存在基本或擴展分區。BSD使用Slice來表示硬盤上的一個部分,一個Slice
是硬盤的一個部分,它可以是一個文件系統也可以是一個交換空間。Slice的概念與個人計算機傳統使用的Partit
ion(分區)概念類似,因此也可以使用分區來稱呼它。BSD方式的管理方法能管理多達8個Slice,BSD按字母
順序依次命名他們為wd0a,wd0b等。按習慣用法,wd0a用于根文件系統 “/” ,wd0b用于交換空間,w
d0c用于表示整個硬盤空間,wd0e用于/usr文件系統等。
然而FreeBSD畢竟是運行在個人計算機平台上的操作系統,其他操作系統使用Partition,而Fre
eBSD使用Slice,就必須采用一種折中的方式,使得FreeBSD能和其他操作系統相互協作,處理磁盤分區。F
reeBSD的磁盤管理方式就是一種兼容的硬盤使用方式。每個FreeBSD系統將占用一個獨立的UFS基本分區,這
個分區與其他操作系統使用分區的方式相同。在基本分區內再使用BSD的Slice方式進行管理,這種方式就類似于DO
S在擴展分區內分割邏輯分區的方式。
假設FreeBSD使用了第三個分區wd0s3,則在這個分區內划分的相應Slice就被稱為wd0s3a,
wd0s3b等,其中wd0s3a缺省被用做根文件系統等。這時仍然可以使用傳統的名字wd0a來稱呼wd0s3a,
使用wd0b稱呼wd0s3b,以與BSD傳統方式兼容的方式稱呼這些Slice,但條件是wd0s3應該是wd0硬
盤上第一個UFS類型的基本分區(或唯一的UFS基本分區),wd0盤上的其他UFS分區中的Slice就只能使用全
稱了。由于Slice和Partition都是用于分隔磁盤(或分區),以更方便的利用磁盤空間,為了簡捷,可以將在
UFS基本分區中划分的Slice,如wd0s3a,稱作wd0s3分區的子分區。
下面為DOS和FreeBSD(多操作系統并存)下常用硬盤分割的方式。

- 准備硬盤
如果不是在新系統中安裝FreeBSD,安裝系統之前需要備份相應硬盤上的重要數據。因為安裝過程將直接操作
硬盤,對硬盤進行分區和格式化(在Unix下稱為建立文件系統),雖然在一定條件下安裝者能夠不破壞原有的數據,但是
有可能由于某次誤操作,導致重要數據的無法恢復。因此建議對該計算機上的所有硬盤數據做一次完整備份。這些數據的備份
任務要使用計算機已經安裝好的操作系統來完成。
然后需要確定將系統安裝在何處,FreeBSD必須獨占一個基本分區,要保留出自由空間就行了。硬盤上的自由
空間包括兩個含義,一是分區表中的位置上的空間,四個分區表沒有占滿,另一個是硬盤空間,現有的分區沒有占滿所有的硬
盤。然而,安裝程序也能刪除現有分區,并重新分割硬盤。
如果是在一個新硬盤上安裝FreeBSD系統,但又打算以后還安裝DOS等其他操作系統,最好使用DOS程序
fdisk.exe先划分出一個基本分區。這個分區的大小都沒有什么意義,它只是用來給FreeBSD安裝程序提示B
IOS的硬盤數據映射方式的,否則FreeBSD安裝程序就不考慮BIOS的映射方式。由于這個分區只起到提示作用,
可以在安裝過程中刪除,重新按照原有的考慮分割硬盤。如果沒有這樣的分區,FreeBSD安裝程序中的硬盤映射數據可
能和BIOS中的設置不一致,當然安裝者可以進入BIOS,記錄下硬盤的柱面、磁道和扇區映射數據,在安裝過程中手工
更改映射數據設置。
硬盤映射數據不一致的問題,來源于個人計算機BIOS與Unix對硬盤的理解不同。個人計算機使用柱面、磁道
和扇區的概念來理解硬盤上數據的位置,而Unix只將硬盤等存儲設備理解為分為一個個塊的簡單線形設備。這就導致Fr
eeBSD中的Slice和BIOS中的Partition划分時的不同。如果計算機上只有FreeBSD一種系統獨
占硬盤,FreeBSD只需要知道每個Slice的大小就行了,按塊讀取數據,不會出現任何問題。但如果與另一種操作
系統共享硬盤,那么就必須首先確定相應的Partition位置,這就受到BIOS的限制。一旦FreeBSD對柱面
、磁道和扇區理解與BIOS設置的不同,必然就發生不能找到分區的正確位置問題。
一般情況下,找不到分區位置的情況不會發生,因為FreeBSD系統能夠偵測到硬盤的數據。但是個人計算機上
的BIOS會對柱面、磁道和扇區數據重新進行映射,導致BIOS以與硬盤本身并不一致的方式來分割硬盤上的Parti
tion。因此對于在一個新硬盤上安裝FreeBSD,BIOS又對磁盤數據進行了重新映射的情況下,就需要記錄下B
IOS映射的數據用于糾正可能出現的映射數據問題。BIOS對硬盤數據進行映射發生于兩種情況下,一種情況為使用SC
SI硬盤時,SCSI硬盤本身使用線性地址,而BIOS必須要求柱面、磁道和扇區的概念,因而BIOS就對SCSI硬
盤進行映射。另一種情況是對EIDE硬盤,由于個人計算機BIOS的設計問題(系統調用僅支持1024柱面的限制),
支持大硬盤的BIOS也要將EIDE硬盤重新映射為合法的硬盤數據(使用LBA或其他映射方式)。因此即使在安裝系統
之后,如果隨意更改BIOS中的硬盤映射方式,就會使得分區的位置被映射到一個錯誤的位置上,發生啟動錯誤。
FreeBSD本身并不使用任何BIOS調用來處理硬盤存取,而是使用自己內部的硬盤驅動程序。因此,只要啟
動程序將控制權交給FreeBSD系統之后,BIOS中的硬盤映射方式就沒有意義了。但是,啟動系統的任務是由BIO
S或使用BIOS調用的啟動管理程序來完成的,BIOS必須能找到操作系統的啟動部分才能載入相應的操作系統。這樣就
有兩種有趣的情況發生,第一種情況下,雖然BIOS的映射數據可能被改動了,但是改動之后的數據中操作系統分區的初始
位置沒有變化,這樣BIOS仍然能載入操作系統的啟動部分,來啟動FreeBSD。這種情況最常發生在讓FreeBS
D系統獨占整個硬盤的情況時,這樣操作系統的啟動就基本不受BIOS的映射數據的影響了,這種情況就是傳統的BSD的
硬盤管理模式,硬盤中不存在Partition。
另一個情況發生在FreeBSD分區的位置在1024柱面之后,由于BIOS的1024柱面限制,它不能引導
1024柱面之后的分區。因此給FreeBSD留的空間要位于1024柱面之內,才能使安裝后的FreeBSD系統能
夠正常啟動。在系統啟動之后,FreeBSD就不再使用BIOS進行任何操作,則此時就可以處理1024柱面之后的硬
盤了。在這種情況下,BIOS的硬盤映射能起到幫助作用,因為如果BIOS使用了LBA或其他方式重新映射了硬盤數據
,每個硬盤分區就將保留在1024柱面之內,就不存在這個問題了。因此,如果大硬盤使用的是LBA等模式,就不存在啟
動問題,如果BIOS沒有映射硬盤數據,就要注意分區的位置,以便系統能正確啟動。但是,在硬盤上已有分區的情況下,
不應該調整硬盤的映射數據,因為這將丟失已有的分區數據。
因此如何處理分割分區就需要安裝者仔細考慮。對于一個新系統,可以選擇讓FreeBSD獨占整個硬盤或者保留
一個小的DOS分區。讓FreeBSD獨占整個硬盤的好處是硬盤不受BIOS的影響,因此這個硬盤可以立即安裝到其他
FreeBSD系統下,而不需要考慮不同BIOS的不同映射方式。但是保留一個小DOS基本分區也存在相當多的好處,
因為Intel平台下的多數硬件配置和診斷程序為DOS程序,將這些配置程序保留在DOS分區內,便于更改硬件配置和
診斷故障。具體如何選擇依賴于安裝者的考慮,一般建議保留一個DOS分區。
對于在已安裝有操作系統的硬盤上安裝FreeBSD系統,處理分區就更需要小心。大多數預裝DOS/Wind
ows的個人計算機通常使用DOS基本分區和擴展分區占滿了整個硬盤空間,沒有空余的自由硬盤空間留給FreeBSD
。因此就需要將一個分區留給FreeBSD,就需要在安裝之前把這個分區中的數據都進行備份。此外還需注意如果是要將
擴展分區留給FreeBSD,就必須將整個擴展分區留給FreeBSD,FreeBSD不能在擴展分區中的某個邏輯分
區上安裝。如果使用者想保留已有分區和數據,情況就比較復雜了,有一些軟件能夠在不損失數據的條件下,更改已有分區大
小,這樣就能從現存分區中擠出空余空間來安裝FreeBSD,這些軟件有自由軟件FIPS(在安裝光盤中提供),商業
軟件PartitionMagic等。
FIPS能夠將FAT類型的DOS基本分區分割為兩個分區,第一個分區保留原有數據,而可以使用FIPS分出
的第二個分區安裝FreeBSD。然而這種操作直接操作硬盤,具有非常大的危險性,如果操作失誤,很可能導致分區錯誤
及數據丟失。建議在FIPS操作之前,備份硬盤上的重要數據。此外,還應該首先使用磁盤整理工具來整理磁盤上的文件。
長期使用計算機,使硬盤上的文件被零零碎碎的放在硬盤的不同位置上,因此必須將所有的文件都移動到硬盤的前面,以減少
錯誤發生的可能性。微軟的Defrag工具以及其他第三方廠商的工具,如Norton SpeedDisk,都提供了
這個能力。
Defrag程序不移動系統和隱藏文件,因此對于可能位于磁盤后部的系統和隱藏文件,必須在運行Defrag
之前使用微軟的attrib命令去除這些屬性(包括Windows的交換文件),由于有這些屬性的DOS系統文件IO
.sys和MSDOS.sys總是位于磁盤的前部,因此不需要對它們進行處理。運行Defrag不能使用 “Defr
ag File Only” (只整理文件碎片)選項,因為該選項并不把所有的文件都移動到硬盤前部。
運行了Defrag之后,最好使用Scandisk來檢查一下是否存在磁盤錯誤,如果一切正常,并且分區表還
沒有占滿(總計不到四個分區),就可以運行FIPS來分割DOS基本分區了。FIPS執行程序位于安裝介質下tool
s目錄中,由于FIPS是一個DOS程序,直接訪問硬盤,因此應該在DOS模式運行它。它在運行時能將原有分區表保存
到軟盤上,命名為RESTORRB.000(如果多次運行FIPS,文件名將依次增加為RESTORRB.00x),
可以使用隨FIPS一起提供的RESTORRB來恢復原有分區數據。
- 准備軟盤
常用的啟動FreeBSD安裝程序方式主要有三種,光盤啟動、DOS啟動和軟盤啟動。如果計算機的不支持光盤
啟動,并且沒有安裝有DOS系統或沒有DOS啟動程序fbsdbot.exe和kernel文件,那么就需要使用啟動
軟盤啟動。
在安裝介質的floppies目錄中保存有啟動軟盤的鏡象文件boot.flp,使用者可以在其他計算機中的
DOS或者Unix下制作出這張軟盤。然而,在新版本下這個鏡象文件是2.88MB的高密度軟盤鏡象,必須要求計算機
支持2.88MB的軟盤驅動器才可以,因此一般不使用這個鏡像文件,它更常用來作為啟動光盤的啟動盤鏡像。系統也提供
了兩個1.44MB的普通磁盤鏡象文件kern.flp和mfs.flp,其中kerm.flp為系統內核,mfs.
flp為將被讀到內存中MFS文件系統中的root文件系統,一般需要制作這兩個軟盤,用來啟動安裝系統。由于磁盤鏡
像要占滿整個磁盤,因此對軟盤要求很高,軟盤中不能有壞塊。如果制作的軟盤不能正常啟動,最大的原因就是使用了非10
0%完好的軟盤,
制作啟動軟盤必須使用一個現存Unix或DOS系統。
在DOS下,使用程序rawrite.exe或fdimage.exe(tools目錄下)來將一個軟盤鏡象
文件復制到軟盤中。可以使用它來制作啟動軟盤、fixit軟盤等。
E:\TOOLS:> FDIMAGE E:\FLOPPIES\KERN.FLP
在FreeBSD或其他Unix中要使用dd命令制作啟動軟盤,然而要注意在不同的Unix下,軟驅對應的設
備文件名字是不同的,FreeBSD下為rfd0。
# dd if=/cdrom/floppies/kern.flp of=/dev/rfd0