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