spfdisk

spfdisk

SPFDisk 是一支綜合了硬碟分割工具(FDISK)及啟動管理程序(Boot Manager) 的軟體,它是完全免費的。

內容介紹


一. 啟動管理程序簡介
二. MS-DOS 下安裝的啟動管理程序
spfdisk
spfdisk
三. MS-DOS 硬碟分割工具(FDISK)之威力加強版
四. 對分割表的認識
五. 本啟動管理安裝程序及硬碟分割工具的特點
六. 硬體需求
七. 安裝前的建議
八. 挽救損毀的分割表?!
一. 啟動管理程序簡介:
啟動管理程序(Boot Manager)是促進各操作系統間彼此合和平共存的產物。若一部計算機灌了兩套以上的操作系統,啟動管理程序就派上用場了,它能讓使用者於開機時選擇想要進入的操作系統。既然是操作系統前的程序,藏身的地點就有別於一般程序,通常可安裝的地方有 MBR(Master Boot Record)及軟、硬碟的啟動扇區,前者安裝最方便,但兼容性較差,而後者兼容性雖高,但必須再以分割程序(FDISK)建立一個新的 Partition 才可以安裝。
ps. 本程序除可安裝在上述兩位置之外,也可安裝到軟盤上。
二. MS-DOS 下安裝的啟動管理程序:
LILO (LInux's LOader)是筆者見過最強的啟動管理程序,而 OS/2 則是使用者介面最佳的,但它們均無法在 MS-DOS 環境下安裝,實在是相當可惜,畢竟使用微軟操作系統的佔了絕大多數,因此,筆者試著綜合兩套的優點,寫了一支全新的啟動管理程序,雖然離目標相去甚遠,不過應該足以應付目前 PC 常用的操作系統。再一 次的強調,它是完全免費的呦!
三. MS-DOS 硬碟分割工具(FDISK)之威力加強版:
本程序的另一個工具是硬碟分割程序(FDISK),筆者會想撰寫的原因,實在是因為 MS-DOS 提供的硬碟分割程序(FDISK)功能不完善。舉例如下:
1. 一部硬碟只能建立一個主分割(Primary)。
2. 無法更動系統 ID (分割種類)。此功能Linux's FDISK 具備,且在多操作系統共存的環境下,筆者認為它是需要的。
3. 無法隨心所欲設定分割在硬碟上的位置。
4. 使用 Linux's FDISK 所建出來的分割表,在某些情況下會發生 MS-DOS FDISK 無法順利讀出,或者是讀出的信息不正確。
5. 建立分割一定會破壞啟動扇區內容,故無法用來救援分割表。
6. 最後一點是筆者覺得最嚴重的,在每一次的更改動作之後就立即儲存,絲毫沒有反悔的餘地(粗心人最怕)。
由於上述的種種使得筆者興起撰寫一套 FDISK 的念頭,其中包含幾個 MS-DOS FDISK 所沒有提供的弁遄A且可以在不傷資料的情況下輕易完成分割大小的調整,也可以像 MS-DOS's FDISK 般放棄分割內的數據產生新的分割,最主要的是在本程序中,不論使用者做了何種可能危害硬碟數據的動作,例如:砍掉分割...等等,只要沒有選擇儲存,則絕對不會更動硬碟上的任何數據,所以除了儲存的選項之外,使用者可以盡情的去試驗每一項功能。同時本程序在儲存分割表方面也提供了建立 UNDO檔的功能讓試用者可以更安心的使用。
四. 對硬碟分割表的認識:
分割表是硬碟分區塊使用時的信息儲存處,位於第 0 面、第 0 軌、第 1 扇區,若將一部 1.2 GB 的硬碟分成500 MB 及 700 MB,則某些信息會以特定的格式存放在硬碟分割表中,每個分出來的區域稱為一個分割(Partition),像上例就有兩個分割。每個分割在硬碟上的開始與結束位置均不同,是故分割表內必須記錄各自的邊界數據,有的分割程序(包括本程序)於建立分割時會要使用者輸入『啟始磁柱』和『結束磁柱』,如此就是直接在設定邊界了。
分割可分為幾個種類,分別是主分割(Primary)、擴充分割(Extended)和邏輯分割(Logic),其中,主分割的數量固定為 4 個,而擴充分割也是主分割的成員之一,唯一不同的是,擴充分割內還可建立一個新的邏輯分割表,該分割表上又可產生一 個邏輯分割,如果要建一個以上的邏輯分割,則分割程序會自動在方才建立的邏輯分割表上產生一個擴充分割,這樣就可再建立新的邏輯分割表,如此不斷的延續下去,猶如一條鏈子,直到主要的擴充分割佔滿空間。故可將一部硬碟切成 N 塊區域使用。不過,只要其中的一個邏輯分割表壞了,則其後方所延續下去的邏輯分割表將無法順利找到,因為鏈子斷了!
不同種類的分割在佔據硬碟的區域上就有不同的限制,主分割及擴充分割可配置的範圍是整部硬碟的空間,而邏輯分割則是存在擴充分割內部,故受限於該擴充分割的啟始及結束邊界。
五. 本啟動管理安裝程序及硬碟分割工具的特點:
▲ 啟動管理安裝程序:
1. 在 MS-DOS 環境下執行。
2. 使用者介面全面中文化,對於初學者來說不會有陌生的感覺。
3. 可針對某個開機選項或整體選項加駐『通行密碼』。
4. 可選擇安裝在 MBR 或某部硬碟上的某個主分割之啟動扇區,也可安裝在軟盤上。
5. SPFdisk 安裝入的啟動管理程序(SPF Boot Manager),於開機時同樣是呈現光棒式的中文選單。
6. 本程序使用者介面幾乎都是光棒式選單,可讓使用者能用的更輕鬆。
7. 可啟動第二部硬碟上的主分割 DOS ,且將該部硬碟化為第一部硬碟!
8. 開機時可隱藏同種類之主分割,使其不會相互干擾開機。
9. 可將軟盤啟動加入本啟動管理程序,不需再更改CMOS 設定!
10. 安裝時可選擇是否建立 UNDO 文件,如果由於程序本身的 Bug 導致安裝時破壞了使用者的磁碟系統,則可利用此檔立即復原安裝前的分割狀態!
11. 可設定虛擬按鍵,開機時自動模擬按下使用者設定的數個按鍵,倘若有第二道選單時,將能減化選單的層數!例如 Win95 開機時若按下 F4 可進入舊版的 MS-DOS,而本程序可達成將 Win95 及 DOS 均加入開機選單內,且選用 MS-DOS 開機時由本程序代替按下 F4 鍵進入。

硬碟分割工具


1. 支持超過 8.4GB 之硬碟。
2. 不論在此工具中作了何事,只要沒有在出現『將立即動作』的對話框時回答 Y,且離開時沒有選擇儲存,則絕不會侵犯硬碟。
3. 可建立四個主分割。
4. 提供『破壞性』及『非破壞性』兩種儲存方式,如此便可讓使用者決定是否要清除啟動扇區,這對『分割大小的調整』或『救援』來說有相當的幫助,使用者可以在調整 DOS 分割大小之後仍不會傷害到原來的數據。
5. 可以更動 System ID 。
6. 建立主分割時可由使用者自定啟始磁柱,故可跳過損壞的磁柱區域。
7. 可隱藏硬碟上的某個分割,使其重新開機后如隱形一般。
8. 可調換同一部硬碟上同種類之兩個分割順序(若啟始磁柱不在特殊位置)。
PS. 所謂種類是指主分割或邏輯分割。
9. 儲存分割表時可讓使用者選擇建立 UNDO 文件,如果由於程序本身的 Bug導致儲存后破壞了使用者的磁碟系統,則可利用此檔立即復原安裝前的磁碟分割狀態!
10. 若更動某個 DOS or OS/2 分割的尾部邊界(該空間會變大或變小),則理論上當選擇『非破壞性』儲存時,該分割的啟動扇區內容也應該要隨著調整,本程序內建的硬碟分割工具可讓使用者選擇是否由程序代為調整。
PS. Linux's FDisk 儲存時,就類似這裡所指的非破壞儲存,重新建立分割時雖不會改變(如果啟始磁柱不變的話),但它也不會校正變動大小后的分割之啟動扇區內容,如果您將某個 DOS 分割調小且在調出的空間建立一個新的分割及檔案系統,重新開機之後,注意觀察方才被調小的 DOS ,奇怪,DIR 時所顯示的剩餘空間並沒有任何改變,然而,一旦使用超出該分割的真正容量時,您就會發現搞怪的大肥蟲出現啦~~~,宛如一顆不定時炸彈!
六. 基本需求
1. PC 80386 以上 (本程序有使用 386 指令)
2. 至少存在一顆硬碟
3. 若硬碟超過 540 Mbytes,主機板上 BIOS 必須有支持 LBA 或 LARGE 模式
4. 當硬碟超過 8.4Gbytes 時,主機板 BIOS 必須有支持 INT 13h Extension,只要不是太古早的主機版或 BIOS 應該都有支持。
5. 內存需求至少 117 Kbytes
七. 安裝前的建議:
如果您是初次使用本程序,那麼筆者建議您,先建立一張開機片,且磁碟內至少要有同版本的 SYS.com、FORMAT.com、DEBUG.exe、FDisk 或 SPFDisk,並附上說明檔(Readme.txt)內的注意事項,若要安裝本啟動管理程序,最好先安裝到軟盤上試驗,等確定可以開機后,再進行硬碟的安裝;如果不能順利開機,很可能是該啟動選項的硬碟、分割信息設定錯誤,或是本程序發現了新的 Bug ,請等到問題解決后,再安裝到硬碟上,以免發生無法開機的糗境,同時也建議您,當程序詢問是否建立 Undo文件時,最好選擇建立在軟盤上!。
八. 挽救損毀的分割表?!
使用特殊工具事先備份分割表,當損壞時再使用特殊工具誚^即可,一般的防毒程序都有這個弁遄A所以這個問題應該如此解決,但如果沒有備份要怎麼辦呢?Norton 的 DiskEdit 是一套絕對不會錯的選擇,它可讓使用者以最簡單的方式隨意填入分割表的內容,但缺點是分割表的內容都必須由使用者自行負責,這點倒是蠻累的,所以筆者建議讀者可試著將 SPFdisk 與 Norton's DiskEdit 配合使用,以彌補那一點點的美中不足,畢竟 Norton Utilities 在筆者及多數人心目中是最強的修復程序!
SPFdisk 的非破壞性存檔在重建分割表時不會破壞啟動扇區,且只要輸入啟始磁柱及結束磁柱,有必要時更改系統 ID ,或者利用本程序提供的『顯示扇區』看數據,其餘的部份皆由程序自動計算產生,如此對於分割表的救援就更容易了。本程序也具備搜尋啟動對象的弁遄A同時也提供由 DOS 啟動扇區參考『復原』分割表的功能這些都可以善加利用!
※ 救援範例:
一. 硬碟原本只有一個佔滿空間的主分割:使用 SPFdisk 的硬碟分割工具建立一個涵沓蒬△w碟的主分割,然後選擇非破壞性儲存,如此便救回來了(檔案系統 ID 要記得設為原來的)!
ps. 若啟動扇區也損壞,則除可用 DiskEdit 來複原之外,也可以使用 SPFDisk分割選單里〔DOS 工具〕子選單下的『挽救啟動扇區』恢復工作。
二. 硬碟上原本有數個主分割,但無擴充分割
1. 進入 SPFDisk 硬碟分割工具並選擇等待救援的硬碟,按 [TAB] 出現主界面選擇搜尋開機對象的功能此時會開始找尋啟動啟動對象,請將找到的啟動扇區位置記錄下來(可按 Pause 鍵暫停搜尋)。
2. 由於主分割最多只可能建立四個,且使用者不見得有建這麼多個分割,若搜尋結果疑似啟動扇區的分割數量正好為使用者原先分割的數量,那麼不必考慮,以這些搜尋到的磁柱數據作為各分割的啟始磁柱,且結束磁柱為下一個分割的啟始磁柱減1,兩個分割不應該出現重疊的區域。建立完成後儲存時選用非破壞性儲存,且詢問是否調整 DOS 啟動扇區時選擇 N (假設啟動扇區並未損毀),如此便將分割表救回來了。
3. 倘若搜尋結果超過四個,則還必須進行過濾的作業。
4. 復原過程里如果有 DOS 的分割,則可用〔參考復原〕的行回復(假設啟動扇區並未損毀),此功能99-002 版開始支持!
ps. DOS 啟動扇區的 12h ~ 13h(FAT-12) 及 20h ~ 23h(FAT-16 或 FAT-32)等位元組,記載了該分割的總扇區數,可以根據此值來判斷是否重建的分割正確!
ps. 只有可設定啟始磁柱的分割工具才有可能造成分割彼此間的不連續,像MS-DOS 的 FDISK 就造不出來了,SPFdisk 與 Linux's Fdisk 就可以造的出來,除非是使用者故意建立成如此,否則應該都是連續的。
三. 同(二),但有擴充分割:
方法與(二)雷同,但必須注意的是那些啟動扇區是是主分割的,而那些是邏輯分割的,也必須找出擴充分割的啟始及結束磁柱,使用法(二)所搜尋出來的不僅是啟動扇區,也會摻雜邏輯分割表在裡面,所以要特別分清楚,最好是先還原主分割,如此最後剩下的空間就可以說都是擴充分割的區域了,除非您尚有保留空間,否則請都剩餘空間建立一個擴充分割!
通常搜尋結果若在同一個磁軌上第0面找出的是[分割表],而第1面找出的是[啟動扇區],那麼這個分割幾乎可以斷定是邏輯分割了,使用者只要知道原本建立了多少個邏輯分割,然後將搜尋到的邏輯分割位置在紙上排列一下,檢查有無重疊的區域,若有則必須判斷何者才是真正原本的分割,此時進行邏輯分割的建立,以方才紙上所記錄的磁柱數據逐一建立,建立完成後對每個分割執行〔傾印內容〕的功能看是否所顯示的都是啟動扇區,可經由啟動扇區的卷標辨視,例如: MS-DOS 是 MS-DOS5.0、Win95以上版本則是 MSWIN4.1 、Linux 安裝在 Super Block 的 LILO 同樣是 LILO、WinNT 則是 NTFS.....等等。
同樣的,復原過程里如果有 DOS 的分割,則可用〔參考復原〕的功能恢復工作(假設啟動扇區並未損毀)!
ps. 只要與邏輯分割扯上關係的都不太容易還原,如果沒有還原主分割表內的擴充分割,也就是若沒有找出擴充分割所含括的範圍,則其下所有的邏輯分割就很難重見天日了,所以請使用者特別注意。
PS.我是個學電腦的,專攻分區工具,我強烈推薦SPFDISK