国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
系統(tǒng)引導(dǎo)管理器GRUB,為初學(xué)者指南 | LinuxSir.Org

作者:北南南北
來(lái)自:LinuxSir.Org
摘要: GRUB是多系統(tǒng)引導(dǎo)管理器,簡(jiǎn)單的說(shuō)既能引導(dǎo)Linux,同時(shí)也能引導(dǎo)Windows;從LinuxSir.Org討論區(qū)近四年的觀察來(lái)看,大多初學(xué)者并不能在短時(shí)間內(nèi)掌握GRUB的用法,為了解決初學(xué)者在最短時(shí)間內(nèi)掌握GRUB,重寫(xiě)GRUB入門(mén)文檔還是有必要的;

本文重點(diǎn)介紹了GRUB的menu.lst的寫(xiě)法,另外通過(guò)GRUB命令行引導(dǎo)系統(tǒng)也做了詳述;這些無(wú)論是對(duì)Windows版本的WINGRUB還是Linux版本的GRUB都是適用的;

目錄索引

一、什么是多重操作系統(tǒng)引導(dǎo)管理器,什么是GRUB;

二、GRUB軟件包版本選擇和安裝;

三、在Linux中,GRUB的配置中的安裝和寫(xiě)入硬盤(pán)的MBR;

四、GRUB的配置文件的menu.lst的寫(xiě)法;

五、通過(guò)GRUB命令行來(lái)啟動(dòng)Linux操作系統(tǒng);

六、通過(guò)GRUB引導(dǎo)Windows操作系統(tǒng);

七、GRUB丟失或損壞的應(yīng)對(duì)策略;

八、關(guān)于GRUB的未盡事宜;
九、關(guān)于本文;
十、參考文檔;
十一、相關(guān)文檔;


++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++


一、什么是多重操作系統(tǒng)引導(dǎo)管理器,什么是GRUB;


1、什么是多重操作系統(tǒng)引導(dǎo)管理器及工作原理;

系統(tǒng)啟動(dòng)引導(dǎo)管理器,是在計(jì)算機(jī)啟動(dòng)后運(yùn)行的第一個(gè)程序,他是用來(lái)負(fù)責(zé)加載、傳輸控制到操作系統(tǒng)的內(nèi)核,一旦把內(nèi)核掛載,系統(tǒng)引導(dǎo)管理器的任務(wù)就算完成退出,系統(tǒng)引導(dǎo)的其它部份,比如系統(tǒng)的初始化及啟動(dòng)過(guò)程則完全由內(nèi)核來(lái)控制完成;

Briefly, boot loader is the first software program that runs when acomputer starts. It is responsible for loading and transferring controlto the operating system kernel software (such as the Hurd or theLinux). The kernel, in turn, initializes the rest of the operatingsystem (e.g. GNU).

在X86 架構(gòu)的機(jī)器中,Linux、BSD 或其它Unix類(lèi)的操作系統(tǒng)中GRUB、LILO 是大家最為常用,應(yīng)該說(shuō)是主流;

Windows也有類(lèi)似的工具NTLOADER;比如我們?cè)跈C(jī)器中安裝了Windows 98后,我們?cè)侔惭b一個(gè)Windows XP,在機(jī)器啟動(dòng)的會(huì)有一個(gè)菜單讓我們選擇進(jìn)入是進(jìn)入Windows 98 還是進(jìn)入WindowsXP。NTLOADER就是一個(gè)多系統(tǒng)啟動(dòng)引導(dǎo)管理器,NTLOADER 同樣也能引導(dǎo)Linux,只是極為麻煩罷了;

在Powerpc 架構(gòu)的機(jī)器中,如果安裝了Linux的Powerpc 版本,大多是用yaboot多重引導(dǎo)管理器,比如Apple機(jī)目前用的是IBM Powerpc處理器,所以在如果想在Apple機(jī)上,安裝Macos 和LinuxPowerpc 版本,大多是用yaboot來(lái)引導(dǎo)多個(gè)操作系統(tǒng);

因?yàn)槟壳癤86架構(gòu)的機(jī)器仍是主流, 所以目前GRUB和LILO 仍然是我們最常用的多重操作系統(tǒng)引導(dǎo)管理器;


2、什么是GRUB;為什么我要選擇GRUB;


1)什么是GRUB;

GNU GRUB 是一個(gè)多重操作系統(tǒng)啟動(dòng)管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而來(lái)。GRUB 最初由Erich Stefan Boleyn 設(shè)計(jì)和應(yīng)用;

GNU GRUB is a Multiboot boot loader. It was derived from GRUB, GRandUnified Bootloader, which was originally designed and implemented byErich Stefan Boleyn.


2)“GRUB太不好用”──對(duì)GRUB的認(rèn)識(shí)的誤區(qū);

GRUB真的不好用嗎?不是的,通過(guò)LinuxSir.Org 社區(qū)近四年來(lái)的運(yùn)行,我發(fā)現(xiàn)了大多新手弟兄還是不太了解GRUB;當(dāng)然這也有中文Linux社區(qū)的責(zé)任,雖然也有GRUB的中文譯本,初學(xué)Linux的弟兄可能有點(diǎn)看不懂;

我們欣喜的看到LinuxSir.Org 社區(qū)的好多弟兄都曾經(jīng)或正在寫(xiě)GRUB實(shí)踐文檔,也有的弟兄也總結(jié)了GRUB的一些基礎(chǔ)知識(shí),比如probing兄弟的 《GRUB學(xué)習(xí)筆記》;由于每個(gè)人的寫(xiě)文檔時(shí)風(fēng)格不同,可能同一份文檔不同的人來(lái)寫(xiě)就有不同的風(fēng)格;所以今天也抖膽也一篇入門(mén)級(jí)的教程,由于北南不會(huì)寫(xiě)高級(jí)教程,所以還得請(qǐng)高手弟兄指教,先謝過(guò);


3)為什么要選擇GRUB;

基于在X86架構(gòu)的CPU而開(kāi)發(fā)操作系統(tǒng),系統(tǒng)引導(dǎo)管理器不僅僅有GRUB ,而且也有LILO,但對(duì)于多重系統(tǒng)引導(dǎo)管理器,你只能選擇其一而用;不能兩個(gè)同時(shí)使用;

目前這兩個(gè)多重系統(tǒng)引導(dǎo)管理器是大家最常用的,也是主流Linux發(fā)行版而采用的;有的弟兄喜歡GRUB,比如我個(gè)人,有的弟兄喜歡LILO ,比如etony兄(誰(shuí)是etony,請(qǐng)參見(jiàn) http://debian.linuxsir.org );

主流發(fā)行版 Fedora、Redhat、Centos等基于RPM包的系統(tǒng),在最新版本中都默認(rèn)GRUB引導(dǎo);Slackware 目前仍采用LILO;而Debian發(fā)行版目前最新的版本也是采用GRUB;

從目前看來(lái),GRUB有逐漸取代LILO之勢(shì),GRUB 2.0正在開(kāi)發(fā)之中;所以我們有理由用GRUB,我也有理由寫(xiě)GRUB使用教程;


二、GRUB軟件包版本選擇和安裝;


1、GRUB的版本選擇,Linux版本的GRUB及Windows版本的GRUB的說(shuō)明;

GRUB不但有Linux版本,也有Windows版本;現(xiàn)我們一一介紹;

如前面所說(shuō),目前在在Unix類(lèi)的操作系統(tǒng)中,大多是都有GRUB;GRUB幾乎能引導(dǎo)所有X86架構(gòu)的操作系統(tǒng);功能之強(qiáng),使用簡(jiǎn)單是GRUB最大的賣(mài)點(diǎn);由于Windows操作系統(tǒng)的先入為主的優(yōu)勢(shì),使得大家對(duì)Windows的NTLOADER了解的比較多,而對(duì)開(kāi)源社區(qū)的GRUB顯得有點(diǎn)寞生,由此而帶來(lái)使用上的“心理恐懼”;究其初學(xué)者對(duì)GRUB“恐懼”的主要原因還是對(duì)GRUB沒(méi)有太多的了解和深入;無(wú)論是WINGRUB還是Linux版本的GRUB,最方便的還是對(duì)GRUB命令行的操作;一談到命令行(Command)的操作,可能初學(xué)者對(duì)此恐懼;其實(shí)沒(méi)有什么難的,象北南這樣低級(jí)的寫(xiě)手,還能操作得起來(lái),您也應(yīng)該能行;


2、GRUB的Windows版本W(wǎng)INGRUB;

請(qǐng)參考:《以WINGRUB 引導(dǎo)安裝Fedora 4.0 為例,詳述用WINGRUB來(lái)引導(dǎo)Linux的安裝》


3、GRUB的Linux版本軟件包的安裝;

其實(shí)對(duì)于Linux的GRUB,幾乎所有的Linux主流發(fā)行版都有打包,如果您安裝了Linux,并且在開(kāi)機(jī)后出現(xiàn)GRUB字樣的,證明您已經(jīng)安裝了GRUB;而無(wú)需再次安裝;Linux的GRUB軟件包安裝部份并不是本文的重點(diǎn);

如果您的Linux系統(tǒng)沒(méi)有安裝GRUB,或者采用的是LILO,而您想用GRUB,可以用系統(tǒng)安裝盤(pán)自帶GRUB軟件包來(lái)安裝,或者到相關(guān)發(fā)行版本的軟件倉(cāng)庫(kù)下載后安裝;

GRUB 的Linux版本目前在各大發(fā)行版中都有打包;比如Fedora/Redhat/Centos/Mandrive/Mandriva/SuSE等以RPM包管理機(jī)制的系統(tǒng),可以通過(guò)如下的命令來(lái)安裝;

請(qǐng)參考《Fedora / Redhat 軟件包管理指南》

 

[root@localhost ~]# rpm -ivh grub*.rpm

如果是Slackware 您可以用如下的辦法來(lái)安裝;

 

[root@localhost ~]# installpkg grub*.tgz

其它的發(fā)行版本請(qǐng)用其自己特色的軟件包管理工具來(lái)安裝;

當(dāng)然您也可以通過(guò)源碼包,在任何Linux的發(fā)行版上安裝;至于源碼包的安裝方法;

請(qǐng)參考:《如何編譯安裝源碼包軟件》

 

[root@localhost ~]#tar zxvf grub*.tar.gz
[root@localhost ~]#cd grub-xxx
[root@localhost ~]#./configure;make;make install

確認(rèn)您是否成功安裝了GRUB,您可以測(cè)試是否有如下兩個(gè)命令;

 

[root@localhost ~]# grub
[root@localhost ~]# grub-install

如果您不能找到這兩個(gè)命令,可能您的可執(zhí)行程序的路徑?jīng)]有設(shè)置;

請(qǐng)參考:《設(shè)置可執(zhí)行程序路徑》,當(dāng)然您可以用絕對(duì)路徑;比如下面的;

 

[root@localhost ~]# /usr/sbin/grub
[root@localhost ~]# /usr/sbin/grub-install

如果您還是找不到GRUB軟件包安裝在哪了;您可以用下面的命令來(lái)解決和查找;

 

[root@localhost ~]# updatedb  注:這個(gè)要花很長(zhǎng)時(shí)間;是索引slocate 的庫(kù),然后再通過(guò)locate來(lái)查找;
[root@localhost ~]# locate grub

比如找到的是有類(lèi)似如下的;

[root@localhost ~]# locate grub
/sbin/grub-md5-crypt
/sbin/grub
/sbin/grub-install
/sbin/grub-terminfo

在一般情況下,在路徑中帶有bin或sbin中字樣的,這些路徑下都是可執(zhí)行程序;sbin 是超級(jí)權(quán)限用戶才能使用的管理命令;要使用這些命令一般的情況下得切換到root用戶下才能使用;比如

 

[beinan@localhost ~]$ su -  注:切換到root用戶,并且切換到其家目錄;
Password:
[root@localhost ~]#/sbin/grub  注:用絕對(duì)路徑來(lái)運(yùn)行g(shù)rub命令;


三、在Linux中,GRUB的配置中的安裝和寫(xiě)入硬盤(pán)的MBR;


1、在Linux中,GRUB配置過(guò)程中的安裝grub-install;

grub-install 命令有何用呢?其實(shí)就是把我們前面已經(jīng)安裝的軟件包中的一些文件復(fù)制到/boot/grub中;對(duì)于新安裝GRUB軟件包后,也是一個(gè)必經(jīng)的過(guò)程;我們前面所說(shuō)的GRUB軟件包的安裝;而現(xiàn)在我們說(shuō)的是GRUB配置的過(guò)程中的安裝;雖然在洋文中都是install ,但表達(dá)的意思是不一樣的;

我們首先要運(yùn)行 fdisk -l 來(lái)確認(rèn)到底是硬盤(pán)的標(biāo)識(shí);

這個(gè)過(guò)程主要是確認(rèn)硬盤(pán)的標(biāo)識(shí)是哪個(gè)調(diào)備,到底是/dev/hda還是/dev/hdb 還是其它的;

 

[root@localhost ~]# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         970     7791493+   7  HPFS/NTFS
/dev/hda2             971        9729    70356667+   5  Extended
/dev/hda5             971        2915    15623181    b  W95 FAT32
/dev/hda6            2916        4131     9767488+  83  Linux
/dev/hda7            4132        5590    11719386   83  Linux
/dev/hda8            5591        6806     9767488+  83  Linux
/dev/hda9            6807        9657    22900626   83  Linux
/dev/hda10           9658        9729      578308+  82  Linux swap / Solaris

如果通過(guò)fdisk -l 出現(xiàn)有/dev/hda字樣的,我們就要用下面的命令來(lái)安裝;

 

[root@localhost ~]# grub-install /dev/hda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install‘.

(fd0)   /dev/fd0
(hd0)   /dev/hda

如果是您fdisk -l 出現(xiàn)的有/dev/hdb呢,那就如下運(yùn)行;

 

[root@localhost ~]# grub-install /dev/hdb

如果既有/dev/hda和/dev/hdb 就安裝到/dev/hda中;

 

[root@localhost ~]# grub-install /dev/hda

值得注意的是如果您有一個(gè)/boot分區(qū),應(yīng)該用如下的辦法來(lái)安裝;

 

[root@localhost ~]#grub-install --root-directory=/boot /dev/hda

[root@localhost ~]#grub-install --root-directory=/boot /dev/hdb

注解:具體是/dev/hda還是/dev/hdb,請(qǐng)以fdisk -l 為準(zhǔn);如果兩個(gè)都有,就看您把/boot分區(qū)是放在第一塊硬盤(pán)還是第二塊硬盤(pán)上了,以實(shí)際情況為準(zhǔn);


2、設(shè)定GRUB的/boot分區(qū)并寫(xiě)入MBR;;

在Linux中,GRUB軟件包的安裝,及在配置過(guò)程中安裝grub到 /boot中還是不夠的, 還要把GRUB,寫(xiě)入MBR才行;有時(shí)我們重新安裝了Windows,Windows會(huì)把MBR 重寫(xiě),這樣GRUB就消失了;如果您出現(xiàn)這樣的情況,就要進(jìn)行這個(gè)過(guò)程;

 

[root@localhost ~]# grub

會(huì)出現(xiàn)grub>提示符,這是grub命令行模式 ,如果能在開(kāi)機(jī)中出現(xiàn)提示符,沒(méi)有引導(dǎo)不起來(lái)的系統(tǒng),除非您的系統(tǒng)破壞的極為嚴(yán)重。如果僅僅是GRUB被破壞了,GRUB命令行是能讓操作系統(tǒng)引導(dǎo)起來(lái)的;

接著看例子,我們要找到 /boot/grub/stage1的,在grub>后面輸入;

 

grub> find  /boot/grub/stage1
(hd0,6) 
(fd0)   注:這個(gè)是軟驅(qū);現(xiàn)在很少用軟驅(qū)了,如果您有這方面的需要,自己看GRUB的DOC吧;

注解:

(hd0,6) 這是/boot所在的分區(qū);不要誤解為是Linux 的/所在的分區(qū),這是值得注意的;
(fd0) 注:這個(gè)是軟驅(qū);現(xiàn)在很少用軟驅(qū)了,如果您有這方面的需要,自己看GRUB的DOC吧;

 

grub>root (hd0,6)    注:這是/boot所在的分區(qū);
grub>setup (hd0)   注:把GRUB寫(xiě)到MBR上;

注解:

上面這步驟是根據(jù) find /boot/stage1而來(lái)的,仔細(xì)看一下就明白了;現(xiàn)在我們一般安裝很少會(huì)把/boot分區(qū)列為一個(gè)單獨(dú)的分區(qū);不過(guò)有的弟兄可能也喜歡這么做;所以還是有必要說(shuō)一下為好;


四、GRUB的配置文件的menu.lst的寫(xiě)法;

對(duì)于GRUB來(lái)說(shuō),如果沒(méi)有配置menu.lst,無(wú)論是Linux版本的GRUB,還是WINGRUB,都會(huì)有命令行可用,通過(guò)命令行是一樣能把操作系統(tǒng)引導(dǎo)起來(lái)的;有些弟兄總以為menu.lst 配置錯(cuò)了,或者在機(jī)器啟動(dòng)后出現(xiàn)grub>命令行模式就要重新安裝系統(tǒng),其實(shí)根本沒(méi)有這個(gè)必要;只要學(xué)會(huì)GRUB的命令行的用法,根本沒(méi)有必要重裝系統(tǒng);

menu.lst 位于/boot/grub目錄中,也就是/boot/grub/menu.lst 文件;您可以用vi或您喜歡的編輯器來(lái)編輯他;如果您不會(huì)用vi,還是去學(xué)習(xí)一下吧;簡(jiǎn)單的用法怎么也得會(huì),對(duì)不對(duì)?畢竟這個(gè)文檔不是講vi的用法的;

有的弟兄會(huì)說(shuō),我沒(méi)有menu.lst怎么辦?那就創(chuàng)建一個(gè);用下面的命令;

 

[root@localhost ~]# touch  /boot/grub/menu.lst

然后我們?cè)僮鲆粋€(gè)/boot/grub/menu.lst 的鏈接 /boot/grub/grub.conf
[root@localhost ~]# cd /boot/grub
[root@localhost ~]# ln -s menu.lst grub.conf

現(xiàn)在我們來(lái)寫(xiě)GRUB的menu.lst了,因?yàn)?boot/grub/grub.conf是 /boot/grub/menu.lst的鏈接文件,改哪個(gè)都行。鏈接文件相當(dāng)于Windows的快捷方式,這樣可能能更好的理解;


1、menu.lst的寫(xiě)法之一;

首先我們看一下我的Fedora 4.0 中的/boot/grub/menu.lst 的內(nèi)容;

 

default=0
timeout=5
#splashimage=(hd0,6)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.11-1.1369_FC4)
        root (hd0,6)
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
        initrd /boot/initrd-2.6.11-1.1369_FC4.img
title WinXp
        rootnoverify (hd0,0)
        chainloader +1

注解:

default=0

default=0 是默認(rèn)啟動(dòng)哪個(gè)系統(tǒng),從0開(kāi)始;每個(gè)操作系統(tǒng)的啟動(dòng)的定義都從title開(kāi)始的,第一個(gè)title 在GRUB的啟動(dòng)菜單上顯示為0,第二個(gè)啟動(dòng)為1,以此類(lèi)推;
timeout=5

注:表示在開(kāi)機(jī)后,GRUB畫(huà)面出現(xiàn)幾秒后開(kāi)始以默認(rèn)啟動(dòng);如果在啟動(dòng)時(shí),移動(dòng)上下鍵,則解除這一規(guī)則;
#splashimage=(hd0,6)/boot/grub/splash.xpm.gz 注:GRUB的背景畫(huà)面,這個(gè)是可選項(xiàng);我不喜歡GRUB的背景畫(huà)面,所以加#號(hào)注掉,也可以刪除;
hiddenmenu

注解:隱藏GRUB的啟動(dòng)菜單,這項(xiàng)也是可選的,也可以用#號(hào)注掉;

一般的情況下對(duì)Linux操作系統(tǒng)的啟動(dòng),一般要包括四行;title 行;root行;kernel 行;initrd 行;


1)在menu.lst中 ,通過(guò) root (hd[0-n],y)來(lái)指定/boot 所在的分區(qū);

title XXXXX 注:title 后面加一個(gè)空格,title 是小寫(xiě)的,后面可以自己定義;比如FC4,自己定義一個(gè)名字就行;
root (hd[0-n],y) ,在本例中,我們看到的是root (hd0,6) ,root(hd[0-n],y)表示的是/boot所在的分區(qū);有時(shí)我們安裝Linux的時(shí)候,大多是不設(shè)置/boot的,這時(shí)/boot和/所在的同一個(gè)分區(qū);這個(gè)root (hd[0-n],y)很重要,因?yàn)?boot目錄中雖然有g(shù)rub目錄,最為重要的是還有kernel和initrd文件,這是Linux能啟動(dòng)起來(lái)最為重要東西;

有的弟兄會(huì)問(wèn),root (hd[0-n],y)是怎么來(lái)的?

請(qǐng)參考:《在Linux系統(tǒng)中存儲(chǔ)設(shè)備的兩種表示方法》

2)在menu.lst中,kernel 命令行的寫(xiě)法;

kernel 一行,是通指定內(nèi)核及Linux的/分區(qū)所在位置;

比如例子中是;

kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

在這里以kernel 起始,指定Linux的內(nèi)核的文件所處的絕對(duì)路徑;因?yàn)閮?nèi)核是處在/boot目錄中的, 如果/boot是獨(dú)立的一個(gè)分區(qū),則需要把boot省略;如果/boot是獨(dú)立的分區(qū),這行要寫(xiě)成:
kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ 

因?yàn)?boot所處的分區(qū)已經(jīng)在title 下一行root(hd[0-n],y)中指定了,所以就無(wú)需要再指明內(nèi)核處在哪個(gè)分區(qū)了;另外Linux系統(tǒng)的硬盤(pán)分區(qū)的掛載配置文件在/etc/fstab,原理是通過(guò) mount /dev/hd[a-z]X /boot 來(lái)進(jìn)行的;您可以對(duì)照著來(lái)理解;

ro 表示只讀; root=LABEL=/ 來(lái)表示Linux的根所處的分區(qū)。LABEL=/這是硬盤(pán)分區(qū)格式化為相應(yīng)文件系統(tǒng)后所加的標(biāo)簽;如果您不了解什么是標(biāo)簽,也可以直接以/dev/hd[a-z]X或者/dev/sd[a-z]X來(lái)表示;就看您的Linux是根分區(qū)是在哪個(gè)分區(qū)了。比如我的是在/dev/hda7 ,那這里就可以寫(xiě)成root=/dev/hda7;

如果查看系統(tǒng)運(yùn)行所掛載的分區(qū),請(qǐng)用 df -lh 來(lái)查看,就能明白是不是/boot是獨(dú)立的分區(qū),或者查看/etc/fstab也能知道;

 

[root@localhost ~]# df -lh
Filesystem            容量  已用 可用 已用% 掛載點(diǎn)
/dev/hda7              11G  9.2G  1.2G  90% /
/dev/shm              236M     0  236M   0% /dev/shm

在這個(gè)例子中,我們可以發(fā)現(xiàn) /boot并沒(méi)有出現(xiàn)只有/dev/hda7,這表示/boot并不是獨(dú)立的一個(gè)分區(qū);所有的東西都包含在/中;于是我們?cè)?boot中查看內(nèi)核版本;

[root@localhost ~]# ls /boot/vmlinuz*
/boot/vmlinuz-2.6.11-1.1369_FC4   注:看到內(nèi)核vmlinuz所處的目錄;

于是我們就可以這樣kernel 這行了;

 

kernel /boot/vmlinuz-2.6.11-1.1369_FC4  ro root=/dev/hda7


3)initrd 命令行的寫(xiě)法;

如果是/boot獨(dú)立一個(gè)分區(qū),initrd 一行要把/boot中省略;如果/boot不是處于一個(gè)分區(qū),而是和Linux的/分區(qū)處于同一分區(qū),不應(yīng)該省略;

比如我們?cè)?)中用的例子;現(xiàn)在拿到這里,我們應(yīng)該首先查看 /boot中的initrd的文件名到底是什么;

 

[root@localhost ~]# ls /boot/initrd*
/boot/initrd-2.6.11-1.1369_FC4.img

如果是通過(guò)df -lh 得知或查看/etc/fstab 也行, 得知/boot是獨(dú)立的分區(qū);這時(shí)initrd 應(yīng)該寫(xiě)成;

 

initrd  /initrd-2.6.11-1.1369_FC4.img

如果是 /boot不是獨(dú)處一個(gè)分區(qū),而是在/同一處一個(gè)分區(qū), 則要寫(xiě)成;

 

initrd  /boot/initrd-2.6.11-1.1369_FC4.img


4)menu.lst第一種寫(xiě)法的總結(jié)和實(shí)踐;

在這里,我們只說(shuō)重要的,不重要的就一帶而過(guò)了;

1]用fdisk -l ;df -lh ;more /etc/fstab來(lái)確認(rèn)分區(qū)情況;

我們過(guò)fdisk -l ;df -lh ; more /etc/fstab 來(lái)確認(rèn)/boot所在的分區(qū),及Linux的根分區(qū)所在位置;

比如我們確認(rèn)/boot和Linux的/分區(qū)同處一個(gè)分區(qū);

 

[root@localhost ~]# df -lh
Filesystem            容量  已用 可用 已用% 掛載點(diǎn)
/dev/hda7              11G  9.2G  1.2G  90% /
/dev/shm              236M     0  236M   0% /dev/shm

然后我們/etc/fstab 中,查看/分所在的分區(qū)或分區(qū)標(biāo)簽是什么;

[root@localhost ~]# more /etc/fstab
# This file is edited by fstab-sync - see ‘man fstab-sync‘ for details
LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,managed 0 0

經(jīng)過(guò)上面的df -lh 和more /etc/fstab的對(duì)照中得知,/boot并是獨(dú)處一個(gè)分區(qū),而是和/在同一個(gè)分區(qū);這個(gè)Linux系統(tǒng)安裝在/dev/hda7上,文件系統(tǒng)(此分區(qū))的標(biāo)簽為L(zhǎng)ABEL=/ ,/boot也是處于/dev/hda7 ,/dev/hda7也可以說(shuō)是 root (hd0,6);

2]查看內(nèi)核vmlinuz的和initrd文件名的全稱;

 

[root@localhost ~]# ls -lh /boot/vmlinuz*
-rw-r--r--  1 root root 1.6M 2005-06-03  /boot/vmlinuz-2.6.11-1.1369_FC4
[root@localhost ~]# ls -lh /boot/initrd*
-rw-r--r--  1 root root 1.1M 11月 26 22:30 /boot/initrd-2.6.11-1.1369_FC4.img


3]開(kāi)始寫(xiě)menu.lst ;

我們根據(jù)上面所提到的,可以寫(xiě)成如下的樣子;

 

default=0 
timeout=5
title FC4
        root (hd0,6)
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
        initrd /boot/initrd-2.6.11-1.1369_FC4.img

也可以寫(xiě)成;

 

default=0 
timeout=5
title FC4
        root (hd0,6)
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
        initrd /boot/initrd-2.6.11-1.1369_FC4.img

注解:上面兩個(gè)不同之處在于一指定Linux的根/所在的分區(qū)時(shí),一個(gè)是用了文件系統(tǒng)的標(biāo)簽,另一個(gè)沒(méi)有用標(biāo)簽;

2、menu.lst的寫(xiě)法之二,精簡(jiǎn)型;

本寫(xiě)法主要是把指定/boot所位于的所分區(qū)直接寫(xiě)入kernel 指令行;這樣就省略了通過(guò)root (hd[0-n],y)來(lái)指定/boot所位于的分區(qū);


1)第一種情況:/boot和Linux的/根分區(qū)在同一個(gè)分區(qū);

有前面的那么多的講解,menu.lst寫(xiě)法之二就好理解多了;也得分兩種情況,咱們先把/boot并不是獨(dú)處一個(gè)分區(qū),而是和Linux的根分區(qū)處于同一個(gè)分區(qū);我們以 4)menu.lst第一種方法的寫(xiě)法總結(jié) 的實(shí)例為例子;

 

default=0 
timeout=5
title FC4x
        kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
        initrd (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img

注解:

title FC4x 注:自己為這個(gè)Linux 起個(gè)簡(jiǎn)單的名,以title開(kāi)頭,然后一個(gè)空格,后面就自己發(fā)揮吧,F(xiàn)C4或FC4x都行;

kernel 空格 (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 空格 ro 空格 root=/dev/hda7

kernel 這行這樣理解 kernel (boot所在的分區(qū))/boot/內(nèi)核文件件全稱 ro root=Linux根所位于的分區(qū)或標(biāo)簽

initrd 空格 (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img
initrd 這行可以這樣理解 initrd (/boot所在的分區(qū))/boot/內(nèi)核文件名全稱


2)第二種情況:/boot獨(dú)立一個(gè)分區(qū),和Linux的根分區(qū)不是同一個(gè)分區(qū);

比如我們查看到df -lh 得到的是

[root@localhost ~]# df -lh
Filesystem            容量  已用 可用 已用% 掛載點(diǎn)
/dev/hda6              200M  120M  80M  60% /boot
/dev/hda7              11G  9.2G  1.2G  90% /

我們?cè)龠M(jìn)一行查看/etc/fstab 得知;

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2

所以我們應(yīng)該寫(xiě)成如下的;

 

title FC4x
        kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
        initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img

因?yàn)長(zhǎng)inux的根分區(qū)是/dev/hda7,通過(guò)/etc/fstab和df -h的內(nèi)容得知標(biāo)簽為 LABEL=/的分區(qū)就是/dev/hda7 ,所以有;

 

title FC4x
        kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
        initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img


五、通過(guò)GRUB命令行來(lái)啟動(dòng)Linux操作系統(tǒng);

GRUB的命令行才是王道,如果知道怎么用命令行來(lái)啟動(dòng)操作系統(tǒng),那理解menu.lst的寫(xiě)法也不難;也就是說(shuō)在開(kāi)機(jī)的時(shí)候,不用GRUB的菜單,通過(guò)GRUB的命令也是一樣能把操作系統(tǒng)引導(dǎo)起來(lái)。

因?yàn)閙enu.lst的內(nèi)容就是GRUB的一個(gè)一個(gè)的指令集合;是不是Linux這玩意很神奇?

1、為什么需要學(xué)習(xí)GRUB的命令行;

當(dāng)我們把GRUB的menu.lst寫(xiě)錯(cuò)的時(shí)候,或者丟掉了menu.lst的時(shí),比如在開(kāi)機(jī)的時(shí)候,GRUB會(huì)出現(xiàn)grub>類(lèi)似的命令提示符,這時(shí)需要我們用命令行啟動(dòng)系統(tǒng);當(dāng)然您可以不用定義GRUB的菜單 ,直接用命令行來(lái)啟動(dòng)系統(tǒng),比如我現(xiàn)在就是,為了寫(xiě)GRUB的文檔,就把menu.lst 刪除了,直接用命令來(lái)啟動(dòng)系統(tǒng);

2、用命令行來(lái)引導(dǎo)Linux操作系統(tǒng)的步驟;

通過(guò)命令行來(lái)引導(dǎo)操作系統(tǒng)的流程,也沒(méi)有什么難的;無(wú)非是把指令手工輸入到grub>提示符的后面;在這個(gè)過(guò)程中,tab鍵的命令補(bǔ)齊功能就顯得很重要了。如果您不知道有哪些命令,可以輸入help;


1)進(jìn)入GRUB的命令行模式 grub>

如果開(kāi)機(jī)時(shí),GRUB出現(xiàn)的是grub>,說(shuō)明你沒(méi)有/etc/grub/menu.lst ,您需要自己寫(xiě)一個(gè)才會(huì)GRUB的菜單,讓我們來(lái)選擇進(jìn)入哪個(gè)系統(tǒng)。如果有GRUB的菜單,您可以按Ctrl+c組合鍵進(jìn)入GRUB的命令行模式,會(huì)出現(xiàn)grub> 提示符;

grub>


2)獲取幫助GRUB的 help

只要您在grub>提示符的后面輸入help 就能得到GRUB所有的命令提示;

 

grub> help
blocklist FILE                         boot
cat FILE                               chainloader [--force] FILE
clear                                  color NORMAL [HIGHLIGHT]
configfile FILE                        device DRIVE DEVICE
displayapm                             displaymem
find FILENAME                          geometry DRIVE [CYLINDER HEAD SECTOR [
halt [--no-apm]                        help [--all] [PATTERN ...]
hide PARTITION                         initrd FILE [ARG ...]
kernel [--no-mem-option] [--type=TYPE] makeactive
map TO_DRIVE FROM_DRIVE                md5crypt
module FILE [ARG ...]                  modulenounzip FILE [ARG ...]
pager [FLAG]                           partnew PART TYPE START LEN
parttype PART TYPE                     quit
reboot                                 root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]]         serial [--unit=UNIT] [--port=PORT] [--
setkey [TO_KEY FROM_KEY]               setup [--prefix=DIR] [--stage2=STAGE2_
terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address
testvbe MODE                           unhide PARTITION
uppermem KBYTES                        vbeprobe [MODE]

如果需要得到某個(gè)指令的幫助,就在 help 后面空一格,然后輸入指令,比如;

 

grub>help kernel 


3)cat的用法;

cat指令是用來(lái)查看文件內(nèi)容的,有時(shí)我們不知道Linux的/boot分區(qū),以及/根分區(qū)所在的位置,要查看/etc/fstab的內(nèi)容來(lái)得知,這時(shí),我們就要用到cat (hd[0-n],y)/etc/fstab 來(lái)獲得這些內(nèi)容;注意要學(xué)會(huì)用tab鍵命令補(bǔ)齊的功能;

grub> cat (     按tab 鍵會(huì)出來(lái)hd0或hd1之類(lèi)的;
grub> cat (hd0, 注:輸入hd0,然后再按tab鍵;會(huì)出來(lái)分區(qū)之類(lèi)的;
grub> cat (hd0,6)
Possible partitions are:
   Partition num: 0,  Filesystem type unknown, partition type 0x7
   Partition num: 4,  Filesystem type is fat, partition type 0xb
   Partition num: 5,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 6,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 7,  Filesystem type unknown, partition type 0x83
   Partition num: 8,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 9,  Filesystem type unknown, partition type 0x82

grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下 (hd0,6)/etc/fstab的內(nèi)容就這樣輸入;

LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,
managed 0 0

有的弟兄可能會(huì)說(shuō),我不知道Linux安裝在了哪個(gè)分區(qū)。那根據(jù)文件系統(tǒng)來(lái)判斷一個(gè)一個(gè)的嘗試總可以吧我;只要能cat出/etc/fstab就能為以后引導(dǎo)帶來(lái)方便;

主要查看/etc/fstab中的內(nèi)容,主要是Linux的/分區(qū)及/boot是否是獨(dú)立的分區(qū);如果沒(méi)有/boot類(lèi)似的行,證明/boot和Linux的/處于同一個(gè)硬盤(pán)分區(qū);比如上面的例子中LABEL=/ 這行是極為重要的;說(shuō)明Linux系統(tǒng)就安在標(biāo)簽為L(zhǎng)ABEL=/的分區(qū)中;

如果您的Linux系統(tǒng)/boot和/沒(méi)有位于同一個(gè)分區(qū),可能cat (hd[a-n],y) 查到的是類(lèi)似下面的;

 

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2


4) root (hd[0-n,y) 指令來(lái)指定/boot所在的分區(qū);

其實(shí)這個(gè)root (hd[0,n],y)是可以省略的,如果省略了,我們要在kerenl 命令中指定;我們前面已經(jīng)說(shuō)過(guò) (hd[0-n],y) 硬盤(pán)分區(qū)的表示方法的用途;主要是用來(lái)指定 /boot所在的分區(qū);

比如我們確認(rèn)/boot和 (hd0,6),所以就可以這樣來(lái)輸入root (hd0,6)

grub> root (hd0,6)

如果發(fā)現(xiàn)不對(duì),可以重新來(lái)過(guò);沒(méi)有什么大不了的;


5) kernel 指令,用來(lái)指定Linux的內(nèi)核,及/所在的分區(qū);

kernel 這個(gè)指令可能初學(xué)者有點(diǎn)怕,不知道內(nèi)核在哪個(gè)分區(qū),及內(nèi)核文件名的全稱是什么。不要忘記tab鍵的命令補(bǔ)齊的應(yīng)用;

如果我們已經(jīng)通過(guò)root (hd[0-n],y) 指定了/boot所在的分區(qū),語(yǔ)法有兩個(gè):

如果/boot和Linux的/位于同一個(gè)分區(qū),應(yīng)該是下面的一種格式;

kernel /boot/vmlinuz在這里按tab鍵來(lái)補(bǔ)齊,就看到內(nèi)核全稱了 ro root=/dev/hd[a-z]X

如果/boot有自己獨(dú)立的分區(qū),應(yīng)該是;

kernel /vmlinuz在這里按tab鍵來(lái)補(bǔ)齊,就看到內(nèi)核全稱了 ro root=/dev/hd[a-z]X

在這里 root=/dev/hd[a-z]X 是Linux 的/根所位于的分區(qū),如果不知道是哪個(gè)分區(qū),就用tab出來(lái)的來(lái)計(jì)算,一個(gè)一個(gè)的嘗試;或用cat (hd[0-n],y)/etc/fstab 中得到Linux的/所在的分區(qū)或分區(qū)的標(biāo)簽;

 

grub> kernel /boot/在這里按tab鍵;這樣就列出/boot中的文件了;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369
_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55
.1 xen-syms xen.gz

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ 
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

注解: root=LABEL=/ 是Linux的/所在的分區(qū)的文件系統(tǒng)的標(biāo)簽;如果您知道Linux的/在哪個(gè)具體的分區(qū),用root=/dev/hd[a-z]X來(lái)指定也行。比如下面的一行也是可以的;

 

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

也可以把/boot所在的分區(qū)的指定 root (hd[0-n],y)這行省掉,直接在kernel 中指定/boot所在的分區(qū);所以就在下面的語(yǔ)法;

如果是/boot和Linux的根同處一個(gè)分區(qū);

kernel (hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X

比如:

grub>kernel

如果是/boot和Linux所在的根不在一個(gè)分區(qū);則是;

kernel (hd[0-n],y)/vmlinuz  ro root=/dev/hd[a-z]X

 

grub> kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

或下面的輸入,以cat 出/etc/fstab內(nèi)容為準(zhǔn);

 

grub> kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
   [Linux-bzImage, setup=0x1e00, size=0x18e473]


6)initrd 命令行來(lái)指定initrd文件;

 

grub> initrd /boot/initrd在這里tab 來(lái)補(bǔ)齊;
grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img
   [Linux-initrd @ 0x2e1000, 0x10e685 bytes]

如果/boot是獨(dú)立的一個(gè)分區(qū),應(yīng)該是如下樣子的語(yǔ)法;比如下面的;

 

grub> initrd /initrd在這里tab 來(lái)補(bǔ)齊;
grub> initrd /initrd-2.6.11-1.1369_FC4.img
   [Linux-initrd @ 0x2e1000, 0x10e685 bytes]


7)boot 引導(dǎo)系統(tǒng);

 

grub>boot

前面的幾個(gè)步驟都弄好 。就進(jìn)入引導(dǎo);嘗試一下就知道了。。

8)引導(dǎo)Linux系統(tǒng)實(shí)例全程回放;

實(shí)例:/boot和Linux的/處于同一個(gè)硬盤(pán)分區(qū);

grub> cat (hd0,6)/etc/fstab
# This file is edited by fstab-sync - see ‘man fstab-sync‘ for details
LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,managed 0 0

grub> root (hd0,6)
Filesystem type is ext2fs, partition type 0x83

grub> kernel /boot/在這里按tab補(bǔ)齊,全列出/boot所有的文件;
Possible files are: grub initrd-2.6.11-1.1369_FC4.imgSystem.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4vmlinuz-2.6.11-1.1369_FC4 
memtest86+-1.55.1 xen-syms xen.gz

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7  注:輸入
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

grub> initrd /boot/在這里按tab補(bǔ)齊
Possible files are: grub initrd-2.6.11-1.1369_FC4.imgSystem.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4vmlinuz-2.6.11-1.1369_FC4 
memtest86+-1.55.1 xen-syms xen.gz

grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 注;輸入intrd文件名的全名;
   [Linux-initrd @ 0x2e1000, 0x10e685 bytes]

grub> boot

我們指定Linux的根時(shí),可以用cat出來(lái)的fstab的內(nèi)容中Linux的/分區(qū)文件系統(tǒng)標(biāo)簽來(lái)替代;也就是kernel 那行中 root=/dev/hd[a-z]X;

 

grub> cat (hd0,6)/etc/fstab
# This file is edited by fstab-sync - see ‘man fstab-sync‘ for details
LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0

/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,managed 0 0

grub> root (hd0,6)
Filesystem type is ext2fs, partition type 0x83

grub> kernel /boot/在這里按tab補(bǔ)齊,全列出/boot所有的文件;
Possible files are: grub initrd-2.6.11-1.1369_FC4.imgSystem.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4vmlinuz-2.6.11-1.1369_FC4 
memtest86+-1.55.1 xen-syms xen.gz

grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ 
   [Linux-bzImage, setup=0x1e00, size=0x18e473]

grub> initrd /boot/在這里按tab補(bǔ)齊
Possible files are: grub initrd-2.6.11-1.1369_FC4.imgSystem.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4vmlinuz-2.6.11-1.1369_FC4 grubBAK
memtest86+-1.55.1 xen-syms xen.gz

grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 注;輸入intrd文件名的全名;
   [Linux-initrd @ 0x2e1000, 0x10e685 bytes]

grub> boot

如果是/boot和Linux的根分區(qū)不在同一個(gè)分區(qū),要把kernel和initrd 指令中的/boot去掉,也就是/vmlinuzMMMMMM 或 /initrdNNNN

也可以不用root (hd[0-n]來(lái)指定/boot所在分區(qū),要在kernel 和initrd中指定;比如Linux的/根所位于的分區(qū)和/boot所位于的分區(qū)都是(hd0,6),并且我們cat出來(lái)的/etc/fstab是Linux的/根分區(qū)的文件系統(tǒng)的標(biāo)簽為L(zhǎng)ABEL=/,引導(dǎo)操作系統(tǒng)的例子如下;

grub>kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
grub>initrd (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img
grub>boot

 

grub>kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
grub>initrd (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img
grub>boot

如果/boot位于 /dev/hda6,也就是(hd0,5),Linux的根/位于分區(qū)/dev/hda7,并且我們cat 出來(lái)的/etc/fstab 中/分區(qū)的標(biāo)簽為 LABEL=/。下面的兩種方法都可以引導(dǎo);

 

grub>kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
grub>initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img
grub>boot

 

grub>kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
grub>initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img
grub>boot


六、通過(guò)GRUB引導(dǎo)Windows操作系統(tǒng);


1、通過(guò)編輯 menu.lst 來(lái)引導(dǎo)Windows 系統(tǒng);

如果您的Windows所處于的分區(qū)在(hd0,0),可以在menu.lst 加如下的一段就能引導(dǎo)起來(lái)了;

title WinXp
        rootnoverify (hd0,0)
        chainloader +1

如果您的機(jī)器有兩塊硬盤(pán),而Windows 位于第二個(gè)硬盤(pán)的第一個(gè)分區(qū),也就是(hd1,0)

您可以用grub的map來(lái)指令來(lái)操作把兩塊硬盤(pán)的序列對(duì)調(diào),這樣就不用在BIOS中設(shè)置了;在menu.lst中加如下的內(nèi)容,比如下面的;

 

title WinXp
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd0,0)
        chainloader +1
  makeactive

如果Windows的分區(qū)不位于硬盤(pán)的第一個(gè)分區(qū)怎么辦呢?比如在(hd0,2);

這個(gè)也好辦吧,把rootnoverify 這行的(hd0,0)改為 (hd0,2)

 

title WinXp
        rootnoverify (hd0,2)
        chainloader +1
  makeactive

如果Windows的在第二個(gè)硬盤(pán)的某個(gè)分區(qū),比如說(shuō)是位于(hd1,2),則要用到map指令;

 

title WinXp
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,2)
        chainloader +1
  makeactive

如果有多個(gè)Windows 系統(tǒng),怎么才能引導(dǎo)出來(lái)呢?應(yīng)該用hide 和unhide指令操作;比如我們安裝了兩個(gè)Windows,一個(gè)是位于(hd0,0)的windows 98 ,另一個(gè)是安裝的是位于(hd0,1)的WindowsXP;這時(shí)我們就要用到hide指令了;

 

title Win98
         unhide (hd0,0)
         hide (hd0,1)
        rootnoverify (hd0,0)
        chainloader +1
  makeactive

title WinXP
        unhide (hd0,1)
        hide (hd0,0)
        rootnoverify (hd0,1)
        chainloader +1
  makeactive


2、通過(guò)GRUB指令來(lái)引導(dǎo)Windows ;

其實(shí)我們會(huì)寫(xiě)menu.lst了,在menu.lst中的除了title外,都是一條條指令;如果我們啟動(dòng)Windows ,只是輸入指令就行了;

比如 Windows的分區(qū)在 (hd0,0),我們?cè)陂_(kāi)機(jī)后,按ctrl+c ,進(jìn)入GRUB的命令模式;就可以用下面的

 

grub> rootnoverify (hd0,0)
grub> chainloader +1
grub> boot

其它同理... ...

七、GRUB丟失或損壞的應(yīng)對(duì)策略;

如果GRUB是Linux版本才出會(huì)這樣的問(wèn)題;WINGRUB可以不寫(xiě)在MBR上;所以不會(huì)出現(xiàn)這樣的問(wèn)題。WINGRUB用起來(lái)比較簡(jiǎn)單。menu.lst 和命令行的用法和Linux版本的GRUB是一樣的;


1、由于重新安裝Windows或其它未知原因而導(dǎo)致GRUB的丟失;

您可以通過(guò)系統(tǒng)安裝盤(pán)、livecd進(jìn)入修復(fù)模式;

請(qǐng)參考:《Linux 系統(tǒng)的單用戶模式、修復(fù)模式、跨控制臺(tái)登錄在系統(tǒng)修復(fù)中的運(yùn)用》

首先:您根據(jù)前面所說(shuō)grub-install來(lái)安裝GRUB到/boot所在的分區(qū);要仔細(xì)看文檔,/boot是不是處于一個(gè)獨(dú)立的分區(qū)是重要的,執(zhí)行的命令也不同;

其次:要執(zhí)行g(shù)rub ,然后通過(guò) root (hd[0-n],y)來(lái)指定/boot所位于的分區(qū),然后接著執(zhí)行 setup (hd0),這樣就寫(xiě)入MBR了,比如下面的例子;

grub>root (hd0,6)
grub>setup (hd0)
grub>quit

重新引導(dǎo)就會(huì)再次出現(xiàn)MBR的菜單了或命令行的提示符了;


2、如果出現(xiàn)GRUB提示符,而不出現(xiàn)GRUB的菜單,如何引導(dǎo)系統(tǒng);

存在的問(wèn)題可能是/boot/grub/menu.lst丟失,要自己寫(xiě)一個(gè)才行;您可以用命令行來(lái)啟動(dòng)系統(tǒng),進(jìn)入系統(tǒng)后寫(xiě)一寫(xiě)menu.lst就OK了。前面已經(jīng)談過(guò)了;

寫(xiě)好后還要建一個(gè)grub.conf的鏈接,如下:

 

[root@localhost ~]# cd /boot/grub
[root@localhost grub]# ln -s menu.lst grub.conf


八、關(guān)于GRUB的未盡事宜;

GRUB有很多內(nèi)容,比如對(duì)BSD的引導(dǎo),還有一些其它指令的用法,我并沒(méi)有在本文提到;主要我目前還未用到,如果您需要了解更多,請(qǐng)查看 《GNU GRUB 手冊(cè)和FAQ》


九、關(guān)于本文;

本文前后寫(xiě)了三四天,中間發(fā)現(xiàn)并不能把Linux設(shè)備的兩種表現(xiàn)形式說(shuō)的清楚,于是被迫寫(xiě)了《在Linux系統(tǒng)中存儲(chǔ)設(shè)備的兩種表示方法》;由于沒(méi)有BSD系統(tǒng),所以沒(méi)有寫(xiě)關(guān)于BSD的引導(dǎo);如果正在用BSD的弟兄如果有時(shí)間不妨寫(xiě)一寫(xiě);寫(xiě)的時(shí)候注意文檔的結(jié)構(gòu),這樣方便大家的閱讀;

GRUB有很多內(nèi)容,需要大家慢慢的學(xué)習(xí)和研究;有的弟兄抑制GRUB,說(shuō)不如NTLOADER,其實(shí)這是錯(cuò)誤的;如果您想學(xué)習(xí)和使用Linux就得學(xué)習(xí)和適應(yīng)Linux的操作;習(xí)慣成自然,如果您抵制學(xué)習(xí)Linux,那可能您永遠(yuǎn)會(huì)說(shuō)“Linux不如Windows”;


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ubuntu學(xué)習(xí)筆記(二)之GRUB的配置文件menu.lst的寫(xiě)法
轉(zhuǎn):grub2基礎(chǔ)教程
Linux與Windows雙系統(tǒng)下的Grub引導(dǎo)管理器安裝——boot.ini與menu.lst的例解
系統(tǒng)安裝: GRUB安裝,配置及使用匯總
grub2的配置文件grub.cfg詳解 drivemap -s (hd0) ${root} ,作用相當(dāng)于grub的map
【轉(zhuǎn)載】Android X86 4.3的硬盤(pán)安裝方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服