MBR(主引導記錄), 啟動扇區和分區表
一個硬盤如何分區的信息存在它的第一個扇區(即第一面第一道第一扇區) 。這個第一扇區是硬盤的主引導記錄(MBR);這是計算機啟動時BIOS讀入和啟動的扇區 。主引導記錄包括一段小程序,讀入分區表,檢查哪個分區是活動分區(即啟動分區),并讀入活動分區的第一個扇區:該分區的啟動扇區(MBR也是啟動扇區,只不過因為其特殊地位,所以使用特殊的名字) 。這個啟動扇區包括另一個小程序,讀入這個分區(假設是可啟動的)上操作系統的第一個部分,然后啟動它 。
這個分區方案不是內置于硬件和BIOS的,只是許多操作系統遵循的約定 。并非所有的操作系統都遵循這個約定,也有例外 。有些操作系統支持分區,但他們占領硬盤上的一個分區,然后使用他們自己的內部分區方法管理這個分區 。較新的操作系統可以和其他操作系統和平共處(包括Linux),而無需特殊的措施,但不支持分區的操作系統無法在同一硬盤上與其他操作系統共存 。
為安全預防,最好先在紙上寫下分區表,這樣在錯誤發生時不會丟失你的文件 。(可以使用fdisk 修復壞的分區表) 。)相關信息可用fdisk -l 命令給出:
$ fdisk -l /dev/hda
Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 855 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 24 1023182 Linux swap
/dev/hda2 25 25 48 10260 83 Linux native
/dev/hda3 49 49 408 153900 83 Linux native
/dev/hda4 409 409 790 163305 5 Extended
/dev/hda5 409 409 744 14361183 Linux native
/dev/hda6 745 745 790 1963683 Linux native
$
擴展和邏輯分區
PC硬盤的最初的分區方案只允許4個分區 。實際使用中這太少了,比如有人想裝多于4個操作系統 (Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, Windows/NT等),或有時一個操作系統有多個分區更好,例如由于速度的原因,Linux的對換區最好單獨使用自己的分區,而不是在主 Linux分區中(下文詳述) 。
為克服這個設計問題,發明了擴展分區 。這個方法允許將基本分區分為若干子分區,因而被子分區的基本分區稱為擴展分區,而子分區稱為邏輯分區,他們的表現類似基本分區 ,但產生方法不同 。他們之間沒有速度差別 。
硬盤的分區結構可能類似 。這個硬盤被分為3個基本分區,第二個被分為2個邏輯分區 。部分硬盤根本沒有分區 。硬盤是一個整體,每個基本分區有一個啟動扇區 。
分區種類
分區表(MBR和擴展分區里都有)中,對每個分區,有一個字節指出分區種類 。這試圖確定使用該分區的操作系統,或用于何操作系統 。其目的是避免2個操作系統使用同一分區 。可實際上,操作系統并不真的注意分區種類字節;例如,Linux根本不管它是什么 。較壞的情況是,有些操作系統錯誤地使用它:例如有些版本的DR-DOS忽略了它的最高位(MSB),而其他一些系統則不是 。
沒有一個標準化組織定義分區種類字節每個值的意義,但一些共同接受的值包括在表 4.1中 。相同的列表可以通過Linux的fdisk 命令得到 。
給硬盤分區
有許多產生和刪除分區的程序 。許多操作系統自帶,最好使用其自帶的,除非要做一些它不能作到的 。許多這種程序叫fdisk , 包括Linux, 或其變種 。Linux fdisk 的使用細節可見其Man手冊 。cfdisk 命令類似fdisk , 但有更好的用戶界面(全屏的) 。
使用IDE硬盤時,啟動分區(帶可啟動核心映象文件的分區)必須全在前1024個柱面內 。這是因為硬盤通過BIOS啟動(在系統進入保護模式前),而BIOS不能處理多于1024柱面 。有時也可能使用部分在前1024柱面的啟動分區,這要求所有用BIOS讀入的文件都在前1024柱面內 。由于這難與安排,因此這是個很差的主意;你不可能知道什么時候核心升級或磁盤碎片整理會導致系統無法啟動 。因此,應該確認你的啟動分區完全在前1024柱面內 。
推薦閱讀
- 1 Linux管理員手冊--系統概述
- 2 Linux管理員手冊--目錄樹概述
- 2 Linux指令大全
- Linux指令大全
- Linux下Makefile的automake生成全攻略
- Linux中流媒體Helix Server的安裝和配置
- 利用shell編程實現DOS風格的Linux命令行
- 設置一個高容量的Linux POP3服務器
- 如何在Linux環境模擬DOS命令
- 下 Linux系統文件命令精通指南
