inux的主分區(qū)與邏輯分區(qū)的關(guān)系介紹
inux的主分區(qū)與邏輯分區(qū)的關(guān)系介紹
主分區(qū)和擴展分區(qū)的區(qū)別在于主分區(qū)位于硬盤的最開始,MBR 扇區(qū)的位置,這個位置的數(shù)據(jù)在計算機啟動時,會自動被 BIOS 讀取并且執(zhí)行,也就是說這個位置的分區(qū)表會自動被 BIOS 讀取到內(nèi)存里,這樣 MBR 啟動程序不需要執(zhí)行什么操作就能直接獲得主分區(qū)表信息。但因為 MBR 只有 512 字節(jié),分區(qū)表還要占用 4x16 字節(jié),外加還有個 55AA 標志占用2字節(jié),實際 MBR 可以放置可以運行的程序代碼空間就只有 446 字節(jié)了。這 446 字節(jié)限制寫出來的程序體積太小而不足以實現(xiàn)某些功能,所以這個時候系統(tǒng)需要使用一些 BIOS 提供的系統(tǒng)操作實現(xiàn)簡單的啟動工作,這個簡單的代價就是 446 字節(jié)的程序不能直接讀取擴展分區(qū)里面的邏輯分區(qū)的數(shù)據(jù)并且啟動系統(tǒng),因為擴展分區(qū)的邏輯分區(qū)表在硬盤的后部,也就是數(shù)據(jù)區(qū)里面,位置不固定需要多次查找才能找到對應的分區(qū)位置。446 字節(jié)的程序根本沒辦法進行操作。
而且因為還沒有能進入完整的系統(tǒng),所以 BIOS 提供的功能雖然很多,但仍然不夠進行某些特殊操作的功能要求。
這就是為什么 Windows 就算你安裝到擴展分區(qū),他也會在 C 盤上放上很多東西的原因。因為 Windows 要求 C 盤必須是主分區(qū)才能啟動系統(tǒng)。
Linux 的 GRUB 可以安裝到擴展分區(qū)是因為他用了 MBR 的 446 字節(jié)后,MBR 之后的幾個閑置扇區(qū),大概有 8k 的容量繼續(xù)放他的程序,這樣的設(shè)計使得體積限制得到了緩解。這樣他可以繼續(xù)調(diào)用硬盤特定位置的程序代碼繼續(xù)啟動而不一定非要主分區(qū)。
綜上說的基礎(chǔ),主分區(qū)和擴展分區(qū)主要的區(qū)別就是啟動系統(tǒng)的問題。BIOS 這個古老的硬件設(shè)計害死了不少程序員的腦細胞。