歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> linux多重引導器概述

linux多重引導器概述

日期:2017/2/27 14:14:56   编辑:更多Linux
  計算機的最初啟動是由BIOS控制的,在對一些硬件(如:內存、鍵盤等)初始化之後,它會試圖加載硬盤的主引導記錄(MBR)或軟盤的引導扇區。MBR可通過兩種方式運行,其一是定位到活動分區並加載相應的引導扇區,然後由引導扇區完成該分區內操作系統的基本組件的加載;其二是直接從一指定分區中加載信息,並通過它裝入任一分區的操作系統,諸如 LILO、gurb,OS/2 boot loader及PartitionMagic等引導加載程序都可以配置成這種方式。軟盤的引導扇區相當於硬盤活動分區的引導扇區,它通常用於裝入軟盤上的 操作系統。 只要把LILO之類的多重引導器安裝在MBR、活動分區或者引導軟盤上,就能接管計算機的控制權,然後由多重引導器完成後繼的引導過程。 LILO中建有一個引導表地址編碼,借此它的引導程序就能定位到Linux的內核文件,這種地址編碼既可以按照柱面/磁頭/扇區(CHS)模式,又可以采用LBA的線性塊號模式,因此,即使對某些SCSI控制程序LILO也能運轉良好。 linux發行版本中的多重引導器一般是lilo,不過blue point linux2.0用的是gurb。關於舊版的lilo不支持大硬盤的問題,自從新版本發布後已解決。新的linux發行版本一般都不再有這個問題。我先介紹lilo,然後再介紹gurb. 第一部分:lilo 一,lilo的配置 lilo的配置文件是缺省位置為/etc目錄下的lilo.conf。由引導裝入程序的安裝程序LILO 讀取。 下面給個lilo.conf的例子: boot=/dev/hda3 map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message default=new image=/boot/vmlinuz-2.2.18 label=new read-only root=/dev/hda3 image=/boot/vmlinuz-2.2.16-22 label=linux read-only root=/dev/hda3 other=/dev/hda2 label=dos 本配置文件指定 LILO使用在/dev/hda路徑上的主引導記錄。啟動時,引導裝入程序會等待 5 秒的時間讓你按SHIFT鍵。如果未按,則上述提及的第一核心映象(vmlinuz-2.2.18),將被啟動。如果按下了SHIFT鍵則引導裝入程序就會問你要啟動哪一個映象。 萬一你忘了該選擇啟動哪個映象, 按[TAB]就會有個菜單給你選擇。你在這時可以選定或者啟動這個全新的內核,或者啟動一個原來可靠的內核(vmlinuz-2.2.16-22),或者啟動一個不同的操作系統。 由上可見,一個配置文件以一系列的全局選項開始),隨之是不同映象選項的描述。在映象描述中的選項將會覆蓋全局選項所設定的內容。 全局選項部分 boot=boot-device 設定包含引導扇區的設備的名稱(如一個硬盤的分區)。如果未指定該關鍵字引導扇區將從當前作為根文件系統安裝的設備中讀取(或者可能也會寫入)。 compact 試圖將相鄰扇區的多次讀取請求合並成一次讀取請求。這樣就大幅度地減少了讀取時間,並使系統描述(MAP)更小。在從軟驅進行讀取時尤其要使用 'compact' 選項。 default=name 使用特別指定的映象作為默認的啟動映象。如果未設置 'defaul' 選項,則將使用在該配置文件中最早出現的那個映象作為啟動映象。 disc=device-name 定義特定硬盤的非標准參數。其對於定義 'BIOS=' 參數尤其有用。若你的硬盤的 BIOS 數據是 0x80 ,0x81(十六進制)等等,將無法判斷哪一塊 Linux 磁盤與哪一塊 BIOS 磁盤相對應(因為這決定於 BIOS 的設置和 BIOS 的類型)。因此若你采用的是非一般的安裝,那你就需要說明 LINUX 磁盤和 BIOS 磁盤間的對應關系。比如: map=map-file 定位磁盤描述(MAP)文件。若未指定 'map' 選項,就會使用 /boot/map 文件。 message=message-file 指定一個含有在運行啟動提示符前顯示的信息的文件。在顯示出 'LILO' 後等待按鍵的時間裡不會有信息顯示。在信息中,用FF字符([Ctrl + L])清空本地顯示器。信息文件的大小限制在65535字節以內。如果信息文件被改動或取消則必須重建磁盤描述(Map)文件。 prompt 不等待任何的按鍵事件發生就直接進入啟動提示符模式。如設定了 'promp'選項而沒設定 'timeout' 選項,則不能自行啟動。 timeout=tsecs 為鍵盤輸入設定一個超時選項(以10分之一秒為單位)。若在指定的時間內沒有按鍵則第一個映象就會被自動啟動。同樣,如過用戶停頓過長則密碼輸入就會被取消。默認的超時值是無限。


另外,內核配置參數 append,ramdisk,read-only,read-write,root以及vga都可在全局選項中被設定。如果在相應的核心映象的配置欄中沒對其加以指定,該設定值其就會被用做默認的缺省值。 單一映象部分 一個單一映象或者以一行 image=pathname 開始(以提示含有一個LINUX內核的啟動映象的文件或設備),或以一行 other=pathname 開始以提示啟動其他獨立的系統。 label=name 引導裝入程序使用每個映像說明的主文件名(不包含路徑)來標識該映像。通過設定變量'label'可使用不同的名稱。 alias=name 通過指定一個別名可對同一個目錄使用第二名稱。 passWord=password 用密碼保護映像。 restricted 若是在命令行被指定各參數則只在啟動映像使需要輸入密碼。 內核選項部分 如果被啟動的映像是一個LINUX內核,則可以將命令行參數傳送到該內核。 append=string 將指定的各選項增加到傳送於內核的參數行。其典型的運用於指定不能完全自檢或徹查對其有危害的硬盤的參數。比如: append="hd=64,32,202" ramdisk=size 該選項指定了任選RAM磁盤的大小。0 表示不應創立任何RAM磁盤。若不指定該參數,則使用在根文件系統中建立的RAM磁盤大小。 read-only 該參數指定根文件系統應該以只讀的形式裝載。典型的是,該系統的起始程序稍後將以可讀寫方式重新裝載根文件系統。 read-write 其指定根文件系統應以可讀寫方式裝載。 root=root-device 該參數指定應作為根文件系統裝載的設備。如果目前使用的是指定的名稱,則根驅動器就設在根文件系統目前所在的設備上。如果根設備被 -r 參數所修改,則使用相應的設備。若未指定 'root' 參數,則使用包含核心映象的根設備設置(該設置是編譯內核時在內核的 Makefile 文件中用 ROOT_DEV 變量設定的,並稍後可用 rdev(8)程序修改) vga=mode 其指定在啟動時應選擇的 VGA 文本模式。 下列數值可被識別 (忽略大小寫): normal:選擇普通 80x25 文本模式。 extent(或ext):選擇 80x50 文本模式。 ask:停止並要求用戶的輸入(在啟動時) 使用相應的文本模式。在啟動時用vga=ask選項或按[Enter]都可獲得一個可用模式的列表。若未指定該參數,則使用在核心映像中獲得的 VGA 文本環境。(該設置是編譯內核時在內核的 makefile 文件中用 SVGA_MODE 變量設定的) 二,關於lilo的問題 一、先裝了Windows,再裝Linux時,不能安裝LILO。這是大多數Linux新手的問題;有些BIOS不能識別大於8.4G的硬盤,舊的LILO不能識別位置大於1024柱面的系統內核 (kenerl)。因此可能的問題是:LILO被裝入MBR,而為Linux准備的硬盤分區遠在1024柱面之外,因此Linux不能引導;LILO被裝入Linux的root分區(根分區),而它恰好在8.4G之外,又掛了! 解決方案: 也許你已經安裝了Linux,不要delete它,改改還能用!好,現在開始: 1. 用PartitionMagic5.0在第一個硬盤的開始分出個10M的ext2分區,格式化。最好把為Linux准備的分區也一同准備好,省得以後麻煩。 2. 用Loadlin或Linux的boot和rescue盤引導系統。mount那個10M的分區--/dev/hda1,假設我使用boot和rescue盤,mount到/mnt/tmp。把/boot/*和內核映象文件拷貝到/dev/hda1相同的目錄下,編輯/etc/lilo.conf,在所有的目錄前加上/dev/hda1的mount路徑,並且將LILO安裝到/dev/hda1。 把lilo.conf中的 boot = /dev/hda install= /boot/boot.b message = /boot/bootmsg map= /boot/map image = /boot/vmlinuz-2.2.13 修改為 boot = /dev/hda1 install= /mnt/tmp/boot/boot.b message = /mnt/tmp/boot/bootmsg map = /mnt/tmp/boot/map

image = /mnt/tmp/boot/vmlinuz-2.2.13 調用lilo命令,重新安裝LILO。重起系統,就完了。記住,要卸載Linux,可以用DOS下的fdisk /mbr清除MBR中的LILO。 二、多重引導NT、9x和Linux,並且想要比LILO更有好的界面,Linux+NT-Loader-mini-HOWTO中有詳細的介紹;主要的問題是如何將Linux的引導記錄寫入bootsect.???文件,這裡假設你已經成功地安裝好Windows9x與NT了。(這裡假設Linux安裝於第一個邏輯分區,在Linux下為/dev/hda5,Windows9x安裝於第一個主分區,在Linux下為/dev/hda1,WindowsNT安裝於第二個主分





Copyright © Linux教程網 All Rights Reserved