grub啟動時會在/boot/grub/中尋找一個名字為menu.lst的配置文件,如果找不到此文件則不進入菜單模式而直接進入命令行模式。menu.lst 是一個文本文件,你可以用任何一個文本編輯器來打開它。每一行代表一個配置命令,如果一行的第一個字符為井號”#”則這一行為注釋,你可以簡單地用增加或減少注釋行來改變配置。 編輯menu.lst,一般會有以下各行 timeout second 設定在second秒之后引導默認的操作系統。如果設成-1,則grub會一直等待直到用戶選擇一個選項為止。 default num 默認啟動第num+1行選項,也就說default=0則默認啟動菜單第一行的操作系統,default=1則啟動第2行的系統,如此類推。 splash pathname/filename 指出開機畫面的文件所存放的路徑和文件名,如splash /boot/logo/800x600x8.img,是指用在/boot/logo路徑下的800x600.img文件作為開機畫面 title OSname title 后面的字符就是你在菜單項上所看見的選項,你可以寫上操作系統的名字和描述,如用title BluePoint linux, Single Mode代表這一選項是引導藍點Linux的單用戶模式。 下面結合兩個系統引導描述來解釋幾個引導選項的意義 title BluePoint Linux, Default Mode root (hd0,1) kernel /boot/vmlinuz vga=auto root=/dev/hda2 hd0是指第一個硬盤(主硬盤) (hd0,1)是指第一個硬盤的第二個分區。 kernel /boot/vmlinuz 是指出Linux核心的路徑在/boot/vmlinuz中。vga=auto 是設定顯示模式,root=/dev/hda2是指把第一個硬盤的第二個分區作為根掛載點(”/”)。 title Microsoft Windows root (hd1,0) chainloader (hd1,0)+1 root (hd1,0)這是指第二個硬盤(從硬盤)上第一個分區 chainloader (hd1,0)+1 裝入一個扇區的數據然后把引導權交給它。
一、菜單命令 菜單命令只能用于grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜單命令在配置文件中應放在其它命令之前。 1、default //設置默認啟動的菜單項 2、fallback //設置啟動某菜單項失敗后反回的菜單項 3、hiddenmenu //隱藏菜單界面 4、timeout //設置菜單自動啟動的延時時間 5、title //開始一個菜單項 二、常規命令 常規命令可以應該于配置文件和grub命令行交互界面,可使用的常規命令有 1、bootp //通過bootp初始化網絡設備 2、color //設置菜單界面的顏色 3、device //指定設備文件作為驅動器 4、dhcp //通過DHCP初始化網絡設備 5、hide //隱藏某分區 6、ifconfig //手工配置網絡設備 7、pager //改變內部頁程序的狀態 8、partnew //新建一個主分區 9、parttype //改變分區的類型 10、passWord 為菜單界面設置口令 11、rarp //通過RARP初始化網絡設置 12、serial //設置串口設備 13、setkey //設置鍵盤映射 14、splashimage //設置GRUB啟動時的背景圖片文件 15、termainal //選擇終端類型 16、tftpserver //指定TFTP服務器 17、unhide //還原某隱藏分區 三、命令行和菜單項命令 命令行和菜單項命令可應該于GRUB配置文件的菜單項設置中,也可以用在GRUB命令交互界面。 1、bolcklist //顯示某文件所在分區位置(block list notation) 2、boot //啟動操作系統 3、cat //顯示文件內容 4、chainloader //把啟動控制權軟交給另外的啟動引導器 5、cmp //比較兩個文件 6、configfile //加載已存在的GRUB配置文件 7、debug //設置為debug模式 8、displayapm //顯示APM BIOS信息 9、displaymem //顯示內存配置 10、embed //嵌入Stage 1.5文件 11、find //查找包括某文件的所有設備 12、fstest //測試文件系統 13、geometry //顯示某驅動器的物理信息 14、halt //停止計算機運行(軟件關機) 15、help //顯示GRUB的命令幫助信息 16、impsPRobe //查詢對稱多處理器(SMP)的信息 17、initrd //加載initrd文件 18、install //安裝GRUB 19、ioprobe //查詢某驅動器的輸入輸出(I/O)端口 20、kernel //引導操作系統內核 21、lock //鎖定某GRUB導菜單項,使其輸入密碼后才可啟動 22、makeactive //激活某主分區 23、map //虛擬映射某驅動器 24、md5crypt //使用MD5加密口令 25、module //加載模塊 26、modulenounzip //加載模塊不進行解壓 27、pause //暫停并等待按鍵 28、quit //退出GRUB 29、reboot //重新啟動計算機 30、read //讀取內存中的內容 31、root //設置GRUB的root設備 32、rootnoverify //設備GRUB的root設備但不裝載文件系統 33、savedefault //保存當前的啟動菜單項為默認啟動 34、setup //自動安裝GRUB 35、testload //從文件系統中測試讀取某文件 36、testvbe //測試VESA BIOS EXTENSION 37、uppermem //強制設置主機上位內存的大小 38、vbeprobe //查詢VESA BIOS EXTENSION信息
GRUB 里的設備命名法則 它使用了UNIX對設備的命名方法.比如我們擁有兩塊硬盤,那么采用這種形式(hdx,y), 這里,x,y, 都是從0開始計數的.所以兩塊硬盤是 (hd0,y),(hd1,y). 他們位于第一個IDE接口上. 對 hd0 來說, 請看下圖:
(注, C: 為第一主分區, 其他分區是擴展分區.由于主分區只能有四個,即 0,1,2,3, 所以第一個擴展分區的編號從 4 開始.) 這是硬盤,那么光驅哪? 對,采用 (cd) 就可以了. 網絡設備使用 (nd). 我估計,以后支持usb以后,可以使用 (ud). ;-) 歡迎你的參與,我們的開發還在繼續.
ROOT的使用格式是:ROOT(HDX,Y) 其中X從0—N,Y也是。第一個硬盤,第一個分區就是(HD0,0),第一個硬盤,第二個分區就是(HD0,1); 第二個硬盤,第一個分區就是(HD1,0),第二個硬盤,第二個分區就是(HD1,1);如此類推,可以知道ROOT的用法了。 ROOT是GRUB識別硬盤和文件格式的命令,告訴GRUB啟動設備是什么和啟動設備MOUNT的文件格式,以及下一步可以到那里找GRUB的配置文件,啟動核心,或啟動IMG文件等。 SETUP 和 INSTALL 是安裝GRUB 到指定位置如:MBR等,具體可以看HELP文件,沒有什么特殊之處。 STAGE1,STAGE2針對不同的的文件系統,都可以到GRUB的包里或/USR/SHARE/GRUB目錄里找到,拷到GRUB目錄下就可以了。 GRUB.CONF的格式如下: default=0 timeout=10 splashimage=(hd1,2)/boot/grub/splash.xpm.gz title WindowsXP rootnoverify (hd0,0) chainloader +1 title RedHat9 root (hd0,1) kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/ initrd /boot/initrd-2.4.20-8.img title Mandrake9.1 kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788 initrd (hd1,4)/boot/initrd.img default=X為默認啟動的系統,0為排在第一個的系統,以此類推。 timeout=X為Grub菜單停留的時間,單位為秒 title XXX,XXX為標題,也就是你要引導的操作系統的名字,可以自己修改 rootnoverify (hd0,0) 告訴 GNU GRUB 您用的 Widnows C 盤在哪里,但同時不要試圖將其掛載(‘noverify’,可選項)。 chainloader +1 告訴 GNU GRUB 不要試著自己載入 Windows (自身無法完成),而應該將啟動進程交給 C 盤的首扇區,那里含有原始的 DOS/Windows 啟動程序。
GRUB引導9個操作系統
title RedHat 73 root (hd0,8) kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda9 initrd /boot/initrd-2.4.18-3.img title WinXP rootnoverify (hd0,0) chainloader +1 title SuSe80 rootnoverify (hd1,0) chainloader (hd1,0)+1 title Mandrake82 rootnoverify (hd1,1) kernel /boot/vmlinuz-2.4.18-6mdk root=/dev/hdb2 initrd /boot/initrd-2.4.18-6mdk.img title TurbO-80 rootnoverify (hd1,2) kernel /boot/vmlinuz root=/dev/hdb3 title Mandrake90 rootnoverify (hd1,4) kernel /boot/vmlinuz root=/dev/hdb5 initrd /boot/initrd.img title Red Hat Linux [limbo] root (hd1,5) kernel /boot/vmlinuz-2.4.18-5.58 root=/dev/hdb6 initrd /boot/initrd-2.4.18-5.58.img title Slackware 81 rootnoverify (hd1,6) kernel /boot/vmlinuz root=/dev/hdb7 title Debian rootnoverify (hd1,7) kernel /vmlinuz root=/dev/hdb8
恢復被windows破壞的grub.
如果你用grub來引導linux和windows,當windows出毛病重新安裝后,會破壞MBR中的grub,這時需要恢復grub. 1.把linux安裝光盤的第一張放到光驅,然后重新啟動機器,在BOIS中把系統用光驅來引導。 2.等安裝界面出來后,按[F4]鍵,也就是linux rescue模式。 3.一系列鍵盤以及幾項簡單的配制,過后就[繼續]了。。。這個過程,我不說了,比較簡單。 4.然后會出現這樣的提示符: sh# 5.我們就可以操作GRUB了.輸入grub: sh#grub 會出現這樣的提示符: grub> 我們就可以在這樣的字符后面,輸入: grub>root (hdX,Y) grub>setup (hd0) 如果成功會有一個successful…… 這里的X,如果是一個盤,就是0,如果你所安裝的linux的根分區在第二個硬盤上,那X就是1了;Y,就是裝有linux系統所在的根分區。 setup (hd0)就是把GRUB寫到硬盤的MBR上。
新聞熱點
疑難解答