如何在大硬盤上安裝 Linux
許可證:
本文引用地址:http://butianyuan.cn/article/201610/305589.htm本文檔的發(fā)布遵循 DGPL, 任何人有權(quán)免費獲得, 閱覽,轉(zhuǎn)載和發(fā)布本文檔, 不得用于任何形式的商業(yè)用途.本文檔現(xiàn)在由 Rocky S. Lee 進行維護, 任何人可以對其中存在的遺漏, 錯誤進行修改和指正. 修改者名單將列于本文檔的作者名后.簡短說明:
本文檔的目的在于介紹如何利用 LILO (LInux LOader) 對安裝在硬盤上大于 1024 拄面 (一般來說是在大于 8 G 的硬盤分區(qū)上) 的 Linux 系統(tǒng)進行正確和安全的引導(dǎo). 如果您在閱都本文檔并按照本文檔介紹的方法后引導(dǎo)您的Linux 系統(tǒng)時出了差錯或者發(fā)現(xiàn)本文介紹的方法有誤時, 請于作者聯(lián)系.本文檔更加技術(shù)性的版本將在今后進行發(fā)布, 關(guān)注本文檔的 Linux 用戶
可以敬請留意以下站點:
華南木棉 BBS bbs.gznet.edu.cn
中國 Linux 論壇 www.linuxforum.net
西十八 BBS bbs.x18.scut.edu.cn
感謝 LinuxFarmer 在這篇文檔的創(chuàng)作上給予的無私幫助.
一. 問題的提出
在 IBM 80x86 系列 PC 機中, 引導(dǎo)系統(tǒng)時對硬盤的尋址是采用的基本輸入輸出系統(tǒng) (BIOS) 根據(jù) CMOS 中存儲的硬盤參數(shù)進行引導(dǎo)的. 讀取了硬盤的主引導(dǎo)記錄 (MBR, Main Boot Record) 后根據(jù)其內(nèi)部存儲的數(shù)據(jù)或者定位到相應(yīng)的分區(qū)而由該分區(qū)的引導(dǎo)扇區(qū)中的完成對該分區(qū)中系統(tǒng)的引導(dǎo), 或者是直接從主引導(dǎo)分區(qū)中加載引導(dǎo)所需要的信息完成引導(dǎo), 比如 LILO.
由于歷史的原因, 很多系統(tǒng)在引導(dǎo)時所使用的硬盤讀取方式仍然為舊的中斷調(diào)用 int 13h. 該中斷中對硬盤的尋址方式以三維的方式出現(xiàn), 這三維分別為: 柱面, 磁頭, 磁道(CYLs, HEADs, SECs). 其中柱面號是保存在中央處理器(CPU)的 CX 寄存器的高 10 位 (bit) 中, 占用 10 個二進制位(bit). 這樣決定了其尋址范圍只能是 0 - 1023. 隨著現(xiàn)在計算機科學(xué)的發(fā)展, 硬盤容量的不斷擴大, 該中斷調(diào)用的局限也暴露出來. 這就是無法使用 LILO 引導(dǎo)安裝在1024柱面以后的 Linux 系統(tǒng).
事實上, 并非完全不能. 對硬盤的訪問還可以采取另外一種形式, 就是使用線性地址空間, 不再使用柱面, 磁頭, 磁道的三維地址定位方式. 這也是使用 GNU / Linux 系統(tǒng)提供的 LILO 對安裝在硬盤任何位置的操作系統(tǒng)進行引導(dǎo)的關(guān)鍵.
二. 對 LILO 的分析
作為一個成熟的操作系統(tǒng)的引導(dǎo)系統(tǒng), LILO 當然可以采用上面所說的兩種方式對硬盤中的系統(tǒng)進行引導(dǎo). 當然一般的情況是使用常見的三維地址空間對硬盤進行訪問, 而對于一些比較特殊的系統(tǒng)是需要使用線性模式對硬盤進行訪問. 這時需要在要引導(dǎo)的系統(tǒng)對應(yīng)的引導(dǎo)記錄上加上參數(shù), 以便 LILO 能夠做出正確的處理.
一般在進行 Linux 系統(tǒng)安裝的時候, 執(zhí)行到 LILO 的安裝這一步時, 會問你是否使用 linear 模式, 如果使用的話, 需要填上一些參數(shù). 而這時的系統(tǒng)提示是問你是否有比較特殊的系統(tǒng)與 Linux 共存. 這個消息實際上迷惑了幾乎所有人. (注: 這里所說的提示信息是 RedHat Linux 系列和一些在此基礎(chǔ)上進行改進版本的) 其實可以在這個時候加上一些特殊參數(shù)以實現(xiàn)一些特殊的功能.具體的什么參數(shù)對應(yīng)什么功能已經(jīng)超出了本文的范圍, 你可以參考 LILO 的手冊文檔, 該文檔已經(jīng)由中國 Linux 論壇的 ZEO 翻譯成中文. 這里只對其中的一個參數(shù)感興趣, 就是硬盤的 CHS 參數(shù).
三. 問題的解決
如果你有一塊超過 8 G 的大硬盤, 并且需要把 Linux 安裝在比較靠后的位置, 可以在安裝的時候, 選擇 linear 模式, 并且給它加上硬盤參數(shù).安裝時候的硬盤參數(shù)可以這樣寫:
hd?=CYLs, HEADs, SECs
其中的大寫字母需要用實際的硬盤參數(shù)來替換, 這些參數(shù)可以從硬盤的標槍上查到, 也可以看看 BIOS 設(shè)置里硬盤參數(shù)對應(yīng) LBA 模式的那一行. 問號是根據(jù)硬盤確定的, 實際使用的時候, 它可以是 a, b, c, d 四個字母中的一個. 比如:hda=1869,63,255這是 IBM 15.2G 硬盤的參數(shù).
當然進入了 Linux 以后, 可以通過編輯 /etc/lilo.conf 加上這個文件, 然后運行一遍 lilo 達到同樣的目的. 下面是本人未加參數(shù)前的 lilo.conf的內(nèi)容:
boot = /dev/hda
map = /boot/map
install = /boot/boot.b
prompt
timeout = 50
image = /boot/vmlinuz
label = linux
root = /dev/hda1
initrd = /boot/initrd-2.2.12-20.img
read-only
按照 linear 方式加入?yún)?shù)以后是如下格式:
boot = /dev/hda
map = /boot/map
install = /boot/boot.b
prompt
linear -----加進了這一行
timeout = 50
image = /boot/vmlinuz
label = linux
root = /dev/hda1
initrd = /boot/initrd-2.2.12-20.img
read-only
append = hda=1869,63,255 ------加進了這一行
修改成這樣以后, 保存, 在命令提示符下打 lilo 命令, 當再次起動 Linux系統(tǒng)的時候, LILO 就按照線性模式對系統(tǒng)進行引導(dǎo).除了在硬盤上尋址定位的方式不同以外, 對其他方面沒有什么影響.上面只是舉個例子, 實際上是沒有什么實用的, 但請注意, append參數(shù)是針對每個系統(tǒng)引導(dǎo)記錄的, 一定要放在 image 的下面或者是 other 的下面,這樣它才可以發(fā)揮作用.
四. 參考
LILO.CONF 中文手冊頁 中國 Linux 論壇 ZEO 翻譯
評論