[ 2000-3v 版 ]
-修正-
- 啟動管理程式-安裝在大容量硬碟時,多重開機可能遇上運算溢位而當機,在此版本已修正。
- 啟動管理程式-密碼輸入畫面右下角框格不正常的問題。
- 硬碟分割工具-當硬碟總磁柱數過大時,工作碟編號的顯示位置可能被擠出畫面。
-新增-
- 命令列參數-新增靜音模式參數。
啟動管理程式工具─在主選單裡重複放置一個『預覽』功能的選項。
◎ SPFDisk 是一支綜合了『硬碟分割工具(FDisk)』及
『啟動管理程式(Boot Manager) 』的軟體,它是完全
免費的,只要使用者不具任何商業交易行為(對於
合理的酌收媒
體或載體之費用,例如:磁片、光碟
、網路通訊...等等,則不含在此條件內
),歡
迎您隨意拷貝使用,但是,只要違反上述條件,
作者將有權隨時停止您對於本程式的使用及複製權!
◎
本軟體內建系統所顯示的中文字,
是採用國喬電腦股份有限公司所授權之中文字型,
在進入本軟體時您會看到一句授權的字串,在該授權
的條約限制之下,使用者絕不可對此軟體進行任何買賣
行為,包括作者本人在內,除非作者不再使用該公司的字型
,控制權才會完全屬於作者!
◎ 內容介紹:
一. 啟動管理程式簡介
二. MS-DOS 下安裝的啟動管理程式
三. MS-DOS 硬碟分割工具(FDISK)之威力加強版
四. 對分割表的認識
五. 本啟動管理安裝程式及硬碟分割工具的特點
六. 硬體需求
七. 安裝前的建議
八. 挽救損毀的分割表 ?!
九. 後記
一. 啟動管理程式簡介:
啟動管理程式(Boot Manager)是促進各作業系統間彼此合平共存的產物。若一部電腦灌了兩套以上的作業系統,啟動管理程式就派上用場了,它能讓使用者於開機時選擇想要進入的作業系統。既然是作業系統前的程式,藏身的地點就有別於一般程式,通常可安裝的地方有 MBR (Master Boot Record)及軟、硬碟的啟動磁區,前者安裝最方便,但相容性較差,而後者相容性雖高,但必須再以分割程式(FDISK)建立一個新的 Partition 才可以安裝。
-
本程式除可安裝在上述兩位置之外,也可安裝到軟碟上。
二. MS-DOS 下安裝的啟動管理程式:
LILO (LInux's LOader)是筆者見過最強的啟動管理程式,而 OS/2 則是使用者介面最佳的,但它們均無法在 MS-DOS 環境下安裝,實在是相當可惜,畢竟使用微軟作業系統的佔了絕大多數,因此,筆者試著綜合兩套的優點,寫了一支全新的啟動管理程式,雖然離目標相去甚遠,不過應該足以應付目前 PC 常用的作業系統。再一 次的強調,它是完全免費的呦!
三. MS-DOS 硬碟分割工具(FDISK)之威力加強版:
本程式的另一個工具是硬碟分割程式(FDISK),筆者會想撰寫的原因,實在是因為 MS-DOS 提供的硬碟分割程式(FDISK)功能不足,舉例如下:
- 一部硬碟只能建立一個主分割(Primary)。
- 無法更動系統 ID (分割種類)。此功能在 Linux's FDISK 具備,且在多作業系統共存的環境下,筆者認為它是需要的。
- 無法隨心所欲設定分割在硬碟上的位置。
- 使用 Linux's FDISK 所建出來的分割表,在某些情況下會發生 MS-DOS FDISK 無法順利讀出,或者是讀出的資訊不正確。
- 建立分割一定會破壞啟動磁區內容,故無法用來救援分割表。
- 最後一點是筆者覺得最嚴重的,在每一次的更改動作之後就立即儲存,絲毫沒有反悔的餘地(粗心人最怕)。
由於上述的種種使得筆者興起撰寫一套 FDISK 的念頭,其中包含幾個MS-DOS FDISK 所沒有提供的功能,且可以在不傷資料的情況下輕易完成分割大小的調整,也可以像 MS-DOS's FDISK 般 放棄分割內的資料產生新的分割,最主要的是在本程式中,不論使用者做了何種可能危害硬碟資料的動作,例如:砍掉分割...等等,只要沒有選擇儲存,則絕對 不會更動硬碟上的任何資料,所以除了儲存的選項之外,使用者可以儘情的去試驗每一項功能,同時本程式在儲存分割表方面也提供了建立 UNDO 檔的功能,讓試用者可以比較安心的試用。
四. 對硬碟分割表的認識:
分割表是硬碟分區塊使用時的資訊儲存處,位於第 0 面、第 0 軌、第 1 磁區,若將一部 1.2GB 的硬碟分成 500MB 及 700MB,則某些資訊會以特定的格式存放在硬碟分割表中,每個分出來的區域稱為一個分割(Partition),像上例就有兩個分割。每個分割在硬碟上的開始與結束位置均不同,是故分割表內必須記錄各自的邊界資料,有的分割程式(包括本程式)於建立分割時會要使用者輸入『啟始磁柱』和『結束磁柱』,如此就是直接在設定邊界了。
分割可分為幾個種類,分別是主分割(Primary)、擴充分割(Extended)和邏輯分割(Logic),其中,主分割的數量固定為 4 個,而擴充分割也是主分割的成員之一, 唯一不同的是,擴充分割內還可建立一個新的邏輯分割表,該分割表上又可產生一 個邏輯分割,如果要建一個以上的邏輯分割,則分割程式會自動在方才建立的邏輯分割表上產生一個擴充分割,這樣就可再建立新的邏輯分割表,如此不斷的延續下去,猶如一條鏈子,直到主要的擴充分割所涵蓋之區域用盡,故可將一部硬碟切成 N 塊區域使用。不過,只要其中的一個邏輯分割表壞了,則其後方所延續下去的邏輯分割表將無法順利找到,因為鏈子斷了!
不同種類的分割在佔據硬碟的區域上就有不同的限制,主分割及擴充分割可配置的範圍是整部硬碟的空間,而邏輯分割則是存在擴充分割內部,故受限於該擴充分割的啟始及結束邊界。
五. 本啟動管理安裝程式及硬碟分割工具的特點:
▲ 啟動管理安裝程式:
- 在 MS-DOS 環境下執行。
- 使用者介面全面中文化,對於初學者來說或許能降低其陌生的感覺。
- 可針對某個開機選項或整體選項加駐『通行密碼』。
- 可選擇安裝在 MBR 或某部硬碟上的某個主分割之啟動磁區,也可安裝在軟碟上。
- SPFDisk 安裝入的啟動管理程式(SPF Boot Manager),於開機時所呈現之開機選單是採用光棒式操作介面。
- 本程式使用者介面幾乎都採用是光棒式操作選單,可讓使用者用的較輕鬆。
- 可啟動第二部硬碟上的主分割 DOS ,且將該部硬碟化為第一部硬碟!
- 開機時可隱藏同種類之主分割,使其不會相互干擾開機。
- 可將軟碟啟動加入本啟動管理程式,不需再更改 CMOS 設定!
- 安裝時可選擇是否建立 UNDO 檔,如果由於程式本身的 Bug 導致安裝時 破壞了使用者的磁碟系統,則可利用此檔立即復原安裝前的分割狀態!
- 可設定虛擬按鍵,開機時自動模擬按下使用者設定的數個按鍵,倘若有第二道選單時,將能減化選單的層數!例如 Win95 開機時若按下 F4 可進入舊版的 MS-DOS,而本程式可達成將 Win95 及 DOS 均加入開機選單內,且選用 MS-DOS 開機時由本程式代替按下 F4 鍵進入。
▲ 硬碟分割工具:
- 支援超過 8.4GB 之硬碟。
- 不論在此工具中作了何事,只要沒有在出現『將立即動作』的對話框時回答 Y,且離開時沒有選擇儲存,則絕不會侵犯硬碟。
- 可建立四個主分割。
- 提供『破壞性』及『非破壞性』兩種儲存方式,如此便可讓使用者決定是否要清除啟動磁區,這對『分割大小的調整』或『救援』來說有相當的幫助,使用者可以在調整 DOS 分割大小之後仍不會傷害到原來的資料。
- 可以更動 System ID 。
- 建立主分割時可由使用者自定啟始磁柱,故可跳過損壞的磁柱區域。
- 可隱藏硬碟上的某個分割,使其重新開機後如隱形一般。
- 可調換同一部硬碟上同種類(指主分割或邏輯分割)之兩分割順序。
- 儲存分割表時可讓使用者選擇建立 UNDO 檔,如果由於程式本身的 bug 導致儲存後破壞了使用者的磁碟系統,則可利用此檔立即復原安裝前的磁碟分割狀態!
- 若更動某個 DOS or OS/2 分割的尾部邊界(該空間會變大或變小),則理論上當選擇『非破壞性』儲存時,該分割的啟動磁區內容也應該要隨著調整,本程式內建的硬碟分割工具可讓使用者選擇是否由程式代為調整。
Linux's FDisk 儲存時,就類似這裡所指的非破壞儲存,重新建立分割時雖不會蓋掉原啟動磁區內容(如果啟始磁柱不變的話),但它也不會校正變動大小後的分割之啟動磁區內容,如果您將某個 DOS 分割調小且在調出的空間建立一個新的分割及檔案系統,重新開機之後,注意觀察方才被調小的 DOS ,奇怪,DIR 時所顯示的剩餘空間並沒有任何改變,然而,一旦使用超出該分割的真正容量時,您就會發現搞怪的大肥蟲出現啦~~~,宛如一顆不定時炸彈,當然,這並不是 Linux's FDisk 的錯,因為它本來就不是專為 DOS 所寫的調整分割 size 工具,所以使用者如果真遇到此狀況可不能怪它哦!
六. 基本需求
- PC 80386 以上 (本程式有使用 386 指令)
- 至少存在一顆硬碟
- 若硬碟超過 540 Mbytes,主機板上 BIOS 必須有支援 LBA 或 LARGE 模式
- 記憶體需求至少 117 Kbytes
- 當硬碟超過 8.4Gbytes 時,主機板 BIOS 必須支援 INT 13h Extension service routine,只要不是太古早的主機版或BIOS 應該都有支援。
七. 安裝前的建議:
如果您是初次使用本程式,那麼筆者建議您,先建立一張開機片,且磁片內至少要有同版本的 sys.com 、format.com、debug.exe、fdisk 或 SPFDisk,並閱讀本程式附上說明檔內的注意事項,若要安裝本啟動管理程式,最好先安裝到軟碟上試驗,等確定可以開機後,再進行硬碟的安裝;如果不能順利開機,很可能是該啟動選項的硬碟、分割資訊設定錯誤,或是本程式發現了新的 Bug ,請等到問題解決後,再安裝到硬碟上,以免發生無法開機的糗境,同時也建議您,當程式詢問是否建立 Undo 檔時,最好選擇建立在軟碟上!。
八. 挽救損毀的分割表 ?!
使用特殊工具事先備份分割表,當損壞時再使用特殊工具蓋回即可,一般的防毒程式都有這個功能,所以這個問題應該如此解決,但如果沒有備份要怎麼辦呢? Norton 的 DiskEdit 是一套絕對不會錯的選擇,它可讓使用者以最簡單的方式隨意填入分割表的內容,但缺點是分割表的內容都必須由使用者自行負責,這點倒是蠻累的,所以筆者建議讀者可試著將 SPFDisk 與 Norton's DiskEdit 配合使用,以彌補那一點點的美中不足,畢竟 Norton Utilities 在筆者及多數人心目中是最強的修復程式!
SPFdisk 的非破壞性存檔在重建分割表時不會破壞啟動磁區,且只要輸入啟始磁柱及結束磁柱,有必要時更改系統 ID ,或者利用本程式提供的『顯示磁區』功能查看資料,其餘的部份皆由程式自動計算產生,如此對於分割表的救援就更容易了。本程式也具備搜尋啟動物件的功能,同時也提供由 DOS 啟動磁區參考『復原』分割表的功能,這些都可以善加利用!
※ 救援範例:
- 硬碟原本只有一個佔滿空間的主分割:
- 使用 SPFdisk 的硬碟分割工具建立一個涵蓋整部硬碟的主分割,然後選擇 非破壞性儲存,如此便救回來了(檔案系統 ID 要記得設為原來的)!
- 若啟動磁區也損壞,則除可用 DiskEdit 來復原之外,也可以使用 SPFDisk 分割選單裡〔DOS 工具〕子選單下的『挽救啟動磁區』功能輔助回復工作。
- 硬碟上原本有數個主分割,但無擴充分割:
- 進入 SPFDisk 硬碟分割工具並選擇等待救援的硬碟,按 [TAB] 出現主功能選單,選擇搜尋開機物件的功能,此時會開始找尋啟動啟動物件,請將找到的啟動磁區位置記錄下來(可按 Pause 鍵暫停搜尋)。
- 由 於主分割最多只可能建立四個,且使用者不見得有建這麼多個分割,若搜尋結果疑似啟動磁區的分割數量正好為使用者原先分割的數量,那麼不必考慮,以這些搜尋 到的磁柱資料作為各分割的啟始磁柱,且結束磁柱為下一個分割的啟始磁柱減1,兩個分割不應該出現重疊的區域。建立完成後儲存時選用非破壞性儲存,且詢問是 否調整 DOS 啟動磁區時選擇 N (假設啟動磁區並未損毀),如此便將分割表救回來了。
- 倘若搜尋結果超過四個,則還必須進行過濾的作業。
- 復原過程裡如果有 DOS 的分割,則可用〔參考復原〕的功能進行回復(假設啟動磁區並未損毀),此功能從 99-002 版開始支援!
DOS 啟動磁區的 12h ~ 13h(FAT12) 及 20h ~ 23h(FAT16 或 FAT32) 等位元組,記載了該分割的總磁區數,可以根據此值來判斷是否重建的分割正確!
只有可設定啟始磁柱的分割工具才有可能造成分割彼此間的不連續,像 MS-DOS 的 FDISK 就造不出來了,SPFDisk 與 Linux's Fdisk 就可以造的出來,除非是使用者故意建立成如此,否則應該都是連續的。
- 同(II),但有擴充分割:
方法與 (II) 雷同,但必須注意的是那些啟動磁區是是主分割的,而那些是邏輯分割的,也必須找出擴充分割的啟始及結束磁柱,使用法 (II) 所搜尋出來的不僅是啟動磁區,也會摻雜邏輯分割表在裡面,所以要特別分清楚,最好是先還原主分割,如此最後剩下的空間就可以說都是擴充分割的區域了,除非您尚有保留空間,否則請都剩餘空間建立一個擴充分割!
通常搜尋結果若在同一個磁軌上第0面找出的是[分割表],而第1面找出的是[啟動磁區], 那麼這個分割幾乎可以斷定是邏輯分割了,使用者只要知道原本建立了多少個邏輯分割,然後將搜尋到的邏輯分割位置在紙上排列一下,檢查有無重疊的區域,若有 則必須判斷何者才是真正原本的分割,此時進行邏輯分割的建立,以方才紙上所記錄的磁柱資料逐一建立,建立完成後對每個分割執行〔傾印內容〕的功能,看是否 所顯示的都是啟動磁區,可經由啟動磁區的標籤辨視,例如: MS-DOS 是 MS-DOS 5.0、Win95/98 以上版本則是 MSWIN4.1 、Linux 安裝在 Super Block 的 LILO 同樣是LILO、WinNT 則是 NTFS.....等等。
同樣的,復原過程裡如果有 DOS 的分割,則可用〔參考復原〕的功能輔助回復工作(假設啟動磁區並未損毀)!
只要與邏輯分割扯上關係的都不太容易還原,如果沒有還原主分割表內的擴充分割,也就是若沒有找出擴充分割所含括的範圍,則其下所有的邏輯分割就很難重見天日了,所以請使用者特別注意。
九. 後記:
本程式的 System ID Table 資料是由 Linux's FDisk 抄錄,故該表內容可說是一模一樣(實際上也是很少變動的),不過程式絕對是由筆者親自撰寫。
對於英文版來說,由於筆者的英文基礎非常差勁,所以程式中的英文語句幾乎都是中國式的英文,還請使用者多多包涵。
請注意!本程式已歷經多代的改良與測試,目前雖使用情況良好,當然,不可否認的,也曾經出現過大肥蟲,造成使用者的困擾,不過這些臭蟲目前已清除,筆者自己也在使用,如果因為本程式存有任何尚未發現的 Bug,而導致使用者硬碟上的資料損毀,則後果請自行負責,不論何時,筆者均有權停止任何人對本程式的使用權。
這套工具筆者已經用了 n 遍,包括替朋友安裝 SPF Boot Manager 及建立硬碟分割,且筆者的三部硬碟百分之百是以 SPFDisk 建立的 Partition,目前安裝過有 MS-DOS、Windows 95/98、Windows NT、OS/2、Linux、FreeBSD,若您在使用上發現了任何的 Bug ,期盼您能抽出些許時間 Mail一封郵件告知筆者!
倘若是如何設定或如何使用之類...等等的問題,希望能夠先將問題丟上 news 或是 BBS ,看看是不是有人可以給您答覆,如果真的沒有的話仍然歡迎您將問題丟到筆者這兒,由於筆者目前是上班族,有時可能工作繁忙,所以在這種情況下回信遲滯就不一定了,或許會拖延蠻久的,且難得的休假總是希望能夠大玩特玩,看到一堆信件總讓我感到一個頭兩個大,還盼各位賢者能多多見諒與包函,各位的支持是 SPFDisk 改版的原動力,在此祝各位使用愉快,非常感謝您的使用與支持!
若發現 Bug 時, 請於Mail內詳註您的硬體及環境,例如:電腦規格、 硬碟容量、作業系統版本、使用的 SPFDisk 版本及使用那些步驟後會出現何種 Bug 等等,尤其以最後的三項資訊最需要!
資料來源:http://spfdisk.sourceforge.net/