<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          解讀LINUX和LILO

          作者: 時間:2016-09-12 來源:網絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201609/304103.htm
          Linux的引導可以采用多種方式,其加載器(Linux Loader)
          是一個靈活的引導加載程序,與其他常用的引導加載程序相比,
          引導方式顯得更具有藝術性,對其深入的理解,將有助于我們方便地
          處理多重系統(tǒng)、網絡引導、大硬盤及大內存等諸多棘手的問題。

          一、的引導機制

          眾所周知,計算機的最初啟動是由BIOS控制的,在對一些硬件
          (如:內存、鍵盤等)初始化之后,它會試圖加載硬盤的主引導記錄
          (MBR)或軟盤的引導扇區(qū)。

          MBR可通過兩種方式運行,其一是定位到活動分區(qū)并加載相應的
          引導扇區(qū),然后由引導扇區(qū)完成該分區(qū)內操作系統(tǒng)的基本組件的加載
          ;其二是直接從一指定分區(qū)中加載信息,并通過它裝入任一分區(qū)的操
          作系統(tǒng),諸如LILO、OS/2 boot loader及Partition Magic等引導加載
          程序都可以配置成這種方式。

          軟盤的引導扇區(qū)相當于硬盤活動分區(qū)的引導扇區(qū),它通常用于裝
          入軟盤上的操作系統(tǒng)。

          由此可見,只要把LILO安裝在MBR、活動分區(qū)或者引導軟盤上,
          就能接管計算機的控制權,然后由LILO完成后繼的引導過程。LILO中
          建有一個引導表地址編碼,借此它的引導程序就能定位到Linux的內
          核文件,這種地址編碼既可以按照柱面/磁頭/扇區(qū)(CHS)模式,又可
          以采用LBA的線性塊號模式,因此,即使對某些SCSI控制程序LILO也
          能運轉良好。

          當LILO定位到配置文件后,經過預引導過程,就顯示提示符:
          LILO boot:

          此時,系統(tǒng)允許選擇引導不同的操作系統(tǒng)或者不同的內核配置,
          按Tab鍵顯示可選項列表,然后輸入可選項或者直接回車選擇缺省配
          置,如果選擇了引導Linux,還可以直接傳遞參數(shù)到系統(tǒng)內核。

          和其他系統(tǒng)的引導加載程序相比,LILO具有更大的靈活性,其引
          導方式也更豐富多彩。

          ●當LILO被安裝在硬盤的MBR、活動分區(qū)或引導軟盤上時,作為
          原引導程序的替身,它能引導任一硬盤任一分區(qū)上的Linux和其他操
          作系統(tǒng);

          ●除了引導扇區(qū),它沒有任何隱含文件,也不需要使用特定的分
          區(qū),它的配置文件可以在任何分區(qū)、甚至是存放在與Linux毫不相干
          的DOS分區(qū)的某個子目錄下;

          ●它能引導幾個不同的內核配置,甚至是幾個不同的內核;

          ●它能引導同一機程序上的多個Linux版本;

          ●它能從網絡上引導Linux。

          LILO的靈活性使得其配置變得相當復雜,當有多個系統(tǒng)共存時,
          建議先安裝其他操作系統(tǒng),最后再裝Linux,這樣,設置LILO對其他
          系統(tǒng)的引導會相對簡單一些。

          二、幾個重要的LILO引導參數(shù)

          LILO的引導參數(shù)有很多,在此只對一些比較重要的參數(shù)作一介紹

          1.“boot=”

          此參數(shù)指明包含引導扇區(qū)的設備名(如:/dev/had),若此項忽
          略,則從當前的根分區(qū)中讀取引導扇區(qū)。

          2.“root=”

          此參數(shù)告訴內核啟動時以哪個設備作為根文件系統(tǒng)使用,其設定
          值為構造內核時根文件系統(tǒng)的設備名,可用的設備名有:

          (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盤,a到d上的N個分區(qū)
          (2)/dev/sdaN~/dev/sdeN:SCSI兼容硬盤,a到e上的N個分區(qū)
          (3)/dev/xdaN~/dev/xdbN:XT兼容硬盤,a到b上的N個分區(qū)
          (4)/dev/fdN:軟盤,A:(N=0)或B:(N=1)
          (5)/dev/nfs:由網絡取得根文件系統(tǒng)的標志

          3.“nfsroot=”
          若需通過NFS提供根文件系統(tǒng)來引導無盤工作站,此參數(shù)為內核
          指定了網絡根文件系統(tǒng)所在的機程序、目錄及NFS,其格式為:nfsroot=
          (〈server_ip〉:)〈root_dir〉(,nfs_options〉)

          4.“nfsaddrs=”
          設定網絡通訊所需的各種網絡界面地址,如無此參數(shù),則內核會
          試圖用反向地址解析協(xié)定(RARP)或啟動協(xié)定(BOOTP)找出這些參數(shù),
          其格式為:

          nfsaddrs=〈客戶端IP〉:〈服務端IP〉:〈網關IP〉:〈子網屏蔽〉:
          〈客戶端名稱〉:〈網絡設備名 〉:〈auto〉

          5.“image=”
          指定Linux的內核文件。

          6.“delay=”
          設定引導第一個映像前的等待時間。

          7.“disk=”
          此參數(shù)為某一特殊的硬盤定義非標準參數(shù)。

          8.“append=”
          為內核傳遞一個可選的參數(shù)行,其典型的應用是為不能完全由系
          統(tǒng)自動識別的硬盤指定參數(shù),如:append = hd=64,32,202

          9.“label=”
          此參數(shù)為每個映像指定一個名字,以供引導時選擇。

          10.“read-only”
          設定以只讀方式掛入根文件系統(tǒng),用于文件系統(tǒng)一致性檢查(fsck)
          。

          11.“install=”
          安裝一個指定文件作為新的引導扇區(qū),缺省為/boot/boot.b。

          12.“loader=”
          說明所使用的鏈加載程序(chain loader),缺省為/boot/chain.b,
          如果不是從首硬盤或軟盤啟動,那么,此選項必須說明。

          13.“table=”
          說明包含分區(qū)表的設備名,如果此參數(shù)忽略,引導加載程序將不
          能傳遞分區(qū)信息到已引導的操作系統(tǒng)。當此參數(shù)指向的分區(qū)表被修改
          時,必須重新運行/sbin/lilo。

          14.“init=”
          內核初始化時執(zhí)行的程序,通常過程為init、getty、rc和sh,
          版本1.3.43以來的Linux內核能夠執(zhí)行/sbin/init說明的命令行,若
          在引導過程中出現(xiàn)問題,則可設置init=/bin/sh直接跳到Shell。

          15.“ramdisk_start=”
          由于內核不能放在壓縮的內存文件系統(tǒng)映像內,為使內核映像能
          夠和壓縮的內存映像放在一張軟盤內,加入“ramdisk_start=〈offset〉”,這樣內核才?
          開始執(zhí)行。

          16.“mem=”
          此參數(shù)的目的之一是為Linux指定使用的內存數(shù)量:如mem=96MB,
          目的之二是指定mem=nopentium告訴內核不要使用4MB分頁表。

          17.“vga=”
          設置顯示模式,如80×50、132×44等。

          三、LILO典型配置方法

          通常情況下,Linux的安裝程序自身就可以完成LILO的安裝配置,
          從而較好地解決多重系統(tǒng)的引導問題,如果系統(tǒng)不能自動完成這種配
          置,則可以通過手工修改配置文件/etc/lilo.conf來實現(xiàn)不同條件下
          的引導。

          1.當系統(tǒng)能自動完成配置時

          對于這種情況只有一個建議:將LILO安裝到Linux分區(qū)的根上,
          而不是MBR這個多事地帶。假設當前hda1中裝有DOS/Windows,hda2中
          安裝了Linux,則/etc/lilo.conf的內容大致如下:

          boot=/dev/hda2#指定引導位置compact delay=50#延時5秒root=current
          #根在當前分區(qū)image=/boot/vmlinuz#指定linux的內核文件  label=linux
          #用linux為代表名稱 other=/dev/hda1#其他操作系統(tǒng)所在的分區(qū)table=/dev/had
          #指定包含分區(qū)表的硬盤label=dos#用dos為代表名稱

          2.當系統(tǒng)無法自動完成配置時

          系統(tǒng)無法自動完成配置的情況不外乎兩種:
          (1)BIOS不能直接看到Linux的根分區(qū);
          (2)BIOS只能讀寫標準IDE硬盤的前504MB。

          這時,必須遵循一個最基本的原則:建立一個BIOS能存取的較小
          的Linux分區(qū),其中包含內核文件、映射文件及鏈加載程序等必要內
          容,而根則可以是另外一個獨立的分區(qū)。至于配置上的其他細節(jié),我
          們通過以下實例來進行說明。


          例1:主硬盤為IDE接口,第二硬盤為SCSI接口,根文件在SCSI
          上。

          對策:在IDE硬盤上劃分一個較小的Linux分區(qū)(/dev/hda2),
          其中包含基本文件,掛接到/u2下,其配置文件/etc/lilo.conf的主
          要內容為:

          boot=/dev/had#lilo裝在主ide的mbr
          install=/u2/etc/lilo/boot.b#從boot.b安裝lilo引導記錄
          map=/u2/etc/lilo/map#安裝程序建立此映射文件,告訴引導載入程序內核塊的位置
          compact
          timeout=50
          image=/u2/vmlinuz #內核文件應事先拷貝到/u2下
          label=linux
          root=/dev/sda1#告訴內核根系統(tǒng)在scsi硬盤上read-only
          other=/dev/hda1
          loader=/u2/etc/lilo/chain.b #指明加載程序label=dos

          例2:一個標準的IDE大硬盤需安裝Linux和DOS/Windows。
          對于大硬盤問題,很多人只知道低于1024個柱面的限制,而不知
          為什么標準的IDE硬盤只能認前504MB。

          其實,BIOS的int13調用是采用三個位元組的CHS編碼,10位為柱
          面號,8位為磁頭號,6位為扇區(qū)號??赡艿闹嫣柎a是0~1023,可
          能的磁頭號碼是0~255,而磁道上可能的扇區(qū)號碼是1~63,以這24
          位最多可以定址8455716864個位元組(7.875GB)。

          但不幸的是,標準的IDE介面容許256個扇區(qū)/磁道、65536個柱
          面及16個磁頭。它自己本身可以存取237= 137438953472(128 GB),
          但是加上BIOS方面63個扇區(qū)與1024個柱面的限制后只剩528482304(504
          MB)可以定址得到。

          對策:在硬盤的前500MB中劃分350MB(/dev/hda1)給DOS,150MB(/dev/hda2)給Linux,
          諳嚶Φ吶渲夢募中λ得饔才痰牟問?
          Boot=/dev/had
          ... ...
          Disk=/dev/had
          bios=0x80
          sectors=63
          heads=16
          cylinders=2100
          image=/vmlinuz
          append=hd=2100,16,23
          root=/dev/hda2
          label=linux

          上一頁 1 2 下一頁

          關鍵詞: LINUX LILO

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();