grldr

一個文件

grldr是grub裡面的一個文件,對grub不熟悉的朋友可能不知道,但是如果你用過一鍵GHOST、MAXDOS、矮人DOS工具箱等等軟體,你就應該知道這個名字:這些軟體無一例外都是使用grub或者grldr引導他們保存在你硬碟的軟盤鏡像或者系統引導文件的。沒有grub和grldr(包括avldr、isomenu等等都是由grub或者grldr派生出來的,也是你自己派生出一個個性化硬碟引導文件的方法和途徑。),就不會有上述這些軟體的存在。

主要功能


grldr好比:ntldr之於windows5.x(nt/xp/2003等)bootmgr之於windows6.x(vista/7)
grldr.mbr用來寫入硬碟mbr的或者nt引導系統中boot.ini來調用

使用方法

文件存放位置
把grldr及菜單配置文件menu.lst複製到系統盤任意目錄(以C盤根目錄為例,其它目錄只需要加入路徑即可。其中grldr會自動搜索菜單配置文件並載入,但是menu.lst最好存放在C盤根目錄,免得到時候搜索不到不能載入引起錯誤)。
把需要grldr引導的文件(如DOS.IMG、GHOST83.IMG等鏡像文件)保存在硬碟。
一個menu.lst的例子
(以#開始的行,表示註釋,不執行)
#默認延遲時間(秒)
timeout30
#第一項為默認值
default0
#設置圖形背景文件
splashimage(hd0,0)/boot/grub/xp2008.gz
#設置中文支持的字體文件
fontfile(hd0,0)/boot/grub/fonts
title使用map啟動本地硬碟上的瑞星殺毒軟盤鏡像文件
map(hd0,0)/boot/grub/rav.img(fd0)
map--hook
chainloader(fd0)+1
rootnoverify(fd0)
title使用memdisk啟動本地Win98軟盤鏡像文件
kernel(hd0,0)/boot/grub/memdisk.gz
initrd(hd0,0)/boot/grub/win98.img
title使用memdisk啟動本地硬碟上的瑞星殺毒軟盤壓縮鏡像文件
root(hd0,0)
kernel/boot/grub/memdisk.gzc=80h=12s=36floppy
initrd/boot/rav.zip
title啟動第一主分區(hd0,0)上的操作系統
rootnoverify(hd0,0)
makeactive
chainloader+1
title啟動第二主分區(hd0,1)上的操作系統
rootnoverify(hd0,1)
makeactive
chainloader+1
title重啟
reboot
title關機
halt
引導
3.1通過WindowsNT的啟動菜單進入grub4dos
將grldr文件複製到c:\,去掉boot.ini的只讀屬性,然後修改c:\boot.ini文件,在boot.ini的最後面加一行:
c:\grldr="StartGRUB"
並將boot.ini中的timeout值設置為大於0的數字,如:timeout=5,然後保存boot.ini,改回只讀屬性。
編輯boot.ini前,可在cmd下輸入:
attrib-s-r-hc:\boot.ini
解除boot.ini的只讀屬性,編輯完后輸入:
attrib+s+r+hc:\boot.ini
恢復boot.ini的原有屬性。
這樣,編輯完重新啟動計算機,在NT的啟動菜單就會出現“StartGRUB”這一項,選擇該項即可進入grub4dos的環境。
此方法的優點是:不需要修改MBR。
初學者使用grub一般都需要grub菜單,把準備好的menu.lst文件放到C:\下(也可放到其它分區根目錄或其它指定目錄)。
3.2通過DOS啟動grub
將機器通過任何可能的方式(軟盤,U盤,光碟等)啟動到DOS環境(最好是純DOS環境,即不載入任何驅動程序和TSR程序的DOS環境),然後在DOS下或者AUTOEXEC.BAT中運行grub.exe,即可進入grub。
也可在DOS/Windows9x的CONFIG.SYS中使用下列任一方式啟動grub。
DEVICE=GRUB.EXE
INSTALL=GRUB.EXE
SHELL=GRUB.EXE
此方法的優點是:不需要修改MBR;可根據需要在腳本或者其它DOS程序中啟動GRUB4DOS。
菜單文件menu.lst可保存在grub文件所在目錄或其它指定路徑。
3.3通過mbr啟動grub
通過軟體包里的bootlace點com(可運行於DOS/Win9x)安裝GRLDR引導記錄到硬碟或者硬碟映像文件的主引導記錄,或者安裝到軟盤或者軟盤映像的引導扇區。電腦啟動時,通過擊熱鍵(默認為空格鍵,可自定義)來啟動grub。
比如:
在DOS下安裝GRLDR代碼到主引導記錄:
bootlace點com0x80
在DOS下安裝GRLDR代碼到軟盤:
bootlace點com--floppy--chs0x00
在DOS下安裝GRLDR代碼到軟盤映像:
bootlace點com--floppy--chsfloppy.img
我所使用的命令為:
bootlace--force-backup-mbr--boot-prevmbr-first--time-out=3--hot-key=0x3920--mbr-disable-floppy0x80
表示安裝GRLDR代碼到MBR時,備份原MBR(--force-backup-mbr),默認啟動原MBR,即啟動原windowsxp系統(--boot-prevmbr-first),等待時間3秒(--time-out=3),熱鍵為空格鍵(--hot-key=0x3920),不搜索軟盤上的GRLDR(--mbr-disable-floppy)。
也就是說啟動時等待3秒,3秒內不擊熱鍵的話,啟動windowsxp;3秒內擊熱鍵則啟動grub4dos。
bootlace的其它參數及自定義熱鍵用法可參看readme.txt文件。
裝入mbr后,再將grldr和menu.lst文件複製到某分區的根目錄(現在支持的文件系統是FAT12,FAT16,FAT32,NTFS,EXT2orEXT3的分區。對於Windows用戶,最好是fat分區),menu.lst也可保存到其它指定位置。
此方法的優點是:不依賴於操作系統;能夠自動搜索硬碟上各個分區的grldr文件。
另外,2000/xp/2003/vista環境下可用另一軟體grubinst來把GRLDR引導記錄安裝到硬碟的MBR。grubinst具有圖形界面和命令行兩種工作模式供選用,並附有比較詳細的使用說明,很易於使用。
製作GRUB的splash背景圖
GRUB背景圖片的要求:解析度640x480,14色,XPM格式。
支持.gz壓縮。
製作環境:linux下(其實windows下也可以製作,用IMAGEMAGICK.但是convert後用圖像軟體看是沒問題,但是引導時,失真的很厲害,用其他軟體製作,背景根本出不來,在linux下製作真的很簡單,呵呵為了做這個,只能安裝個虛擬的linux來做.)
方法1:用convert命令
首先需安裝一個ImageMagick軟體。若用的是ubuntu或debian就很方便了,源里就有。
先把圖片轉成640x480解析度,再運行convert-colors14xxx.jpgsplashimage.xpm,把生成的splashimage.xpm拷貝到某目錄下,比如(hd0,6)/boot/splash/
再往menu.lst中相應地添上一句:splashimage(hd0,6)/boot/splash/splashimage.xpm
就好了。
這個方法在windows下做,失真的很厲害,可能是我不會做.
方法2:
用GIMP(呵呵,和windows下用ps是一樣的。不如在windows下做。不推薦)
一個關鍵:須調成索引色顯示,否則無法調整顏色數
方法3:(推薦)
在windows下用Ps或者其他的圖像軟體把圖像修改成640*48014位色的(其實16位也可以),然後上傳到linux下,用GIMP另存下就可以了。方便快捷.
GRUB的命令
GRUB包含了許多不同的命令,它們可以在命令行介面中以交互的方式執行。其中的一些命令能接在命令名後面的選項,這些選項用空格隔開。
下面的列表給出了最有用的一些命令:
·boot-引導先前已經被指定並載入的操作系統或鏈式裝載程序。
·chainloader-將指定的文件作為一個鏈式裝載程序載入。為了獲取在一個指定分區第一扇區內的文件,使用+1作為文件名。
·displaymem-顯示當前內存的使用情況,這個信息是基於BIOS的。這個命令有助於確定系統在引導前有多少內存。
·initrd-使用戶能夠指定一個在引導時可用的初始RAM盤。當內核為了完全引導而需要某些模塊時,這是必需的。
·installp-安裝GRUB到系統的主引導記錄。這個命令允許系統重啟時出現GRUB介面。
警告:install命令將覆蓋主引導扇區中的其他信息。如果命令被執行,那麼除了GRUB信息之外的其他用於引導其他操作系統的信息都將丟失。在執行這條命令前,確定你對它有正確的了解。
這條命令可以用幾種不同的方式進行配置。然而,它都要求指定。表示一個設備,分區和文件,在那裡可以找到第一個引導裝載程序的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引導裝載程序應該被安裝的硬碟,如(hd0)。
選項告訴第一步引導裝載程序第二步引導裝載程序位於什麼地方,例如(hd0,0)/grub/stage2。p選項告訴install命令菜單配置文件被指定在部分,比如說(hd0,0)/grub/grub.conf。
·kernel-當使用直接載入方式引導操作系統時,kernel命令指定內核從GRUB的根文件系統中載入。options選項是跟在kernel命令後面,在內核載入時傳給內核。
在RedHatLinux中,一個kernel命令的例子看起來象下面的形式:
kernel/vmlinuzroot=/dev/hda5
上面這行表明了vmlinuz文件是從GRUB的根文件系統載入的,如(hd0,0)。同時,一個選項也被傳給了內核。它指出當Linux內核載入時,內核的根文件系統應該是位於hda5,第一個IDE硬碟的第五個分區。如果有必要的話,多個選項可以被放在這個選項後面。
·root-將GRUB的根分區設置成特定的設備和分區,比如說(hd0,0)。並掛入這個分區,這樣文件可以被讀取。
·rootnoverify-做root命令同樣的事情,只是不掛入分區。
除上面所述外,還有更多的命令可用。輸入infogrub,得到一個所有命令的完全列表。
6、GRUB的菜單配置文件
配置文件在GRUB菜單介面中,創建用於引導操作系統的列表。配置文件可以允許用戶選擇執行事先設置好的一組命令。這些命令既包括前面給出的命令,也包括一些只用於配置文件的命令。
配置文件的專用命令
下面這些命令只用於GRUB的菜單配置文件:
·color-設定在菜單中使用的顏色,一種是作為前景色,一種作為背景色。可以簡單地使用顏色名稱,如red/black。比如:
colorred/blackgreen/blue
·default-默認項目的標題名稱。如果菜單介面超時,那它將被載入。
·fallback-當這個命令被使用時,如果第一次嘗試失敗,那麼這個項目的標題名稱將被試用。
·hiddenmenu-這個命令被使用時,它不顯示GRUB菜單介面,在超時時間過期后載入默認項。用戶通過按[Esc]鍵,可以看到標準的GRUB菜單。
·password-這個命令被使用時,它可以防止不知道口令的用戶編輯菜單的項目。
作為附加選項,可以在後面指定一個後備的菜單配置文件。因此,如果口令被知道,GRUB將重新啟動第二步的引導裝載程序,並使用這個後備的配置文件來建立菜單。如果這個後備文件不在命令中指出,那麼知道口令的用戶能夠編輯當前的配置文件。
·timeout-這個命令設定了在GRUB載入由default命令指定的項目前的時間間隔,以秒為單位。
·splashimage-它指定在GRUB引導時所使用的屏幕圖像的位置。
·title-設定用來裝載一個操作系統的一組特定命令的標題。
字元#用來在菜單配置文件放置註釋。
配置文件的結構
設置GRUB菜單介面全局參數的命令被放在文件的頂部,接下來的是用於各個操作系統引導的不同項目。
一個非常基本的用於引導RedHatLinux或MicrosoftWindows2000的GRUB菜單配置文件可能如下所示:
default=linux
timeout=10
color=green/blacklight-gray/blue
#sectiontoloadlinux
titlelinux
root(hd0,1)
kernel/vmlinuzroot=/dev/hda5
boot
#sectiontoloadWindows2000
titlewindows
rootnoverify(hd0,0)
chainloader+1
這個文件告訴GRUB建立一個以RedHatLinux為默認操作系統的菜單,設定10秒后自動引導。這裡給出了2個部分,每個部分對應於一個操作系統項目,每個部分都包含了指向操作系統硬碟分區表的命令。