⑴ linux開機如何進入grub界面
我不知道大家為什麼都說按esc鍵,我按esc鍵就沒有任何反映,重點是一定要用滑鼠把虛擬機當前系統窗口點為激活狀態,也就是說虛擬機系統窗口看不到滑鼠了,然後你再按「任意鍵」就可以進入可選菜單了,說一下我的環境
VMware15Pr 安裝在win10操作系統上
CentOS 5.11 安裝 在VMware虛擬機上
從虛擬機開啟linux想要進入啟動時的grub需要注意幾個點:啟動菜單是否配置好,手速是否夠快,系統藍色窗口是否被滑鼠激活等,說明如下~~
/boot/grub/menu.lst(或者/boot/grub/grub.conf),此文件是否timeout參數設置過小,默認是5秒,如果你手速不夠快的話,可以改成10或者20秒。不夠快的話系統會默認進入可選菜單的第一項
hiddenmenu參數默認開啟,也就是說默認菜單選擇界面是不顯示的,只顯示藍色界面(當然你手速夠快也沒啥大問題),如果想開機顯示可選菜單就把這個參數給注釋掉,前面加上# 變成 #hiddenmenu
以上都沒有問題後,在藍色界面出現時按任意鍵就能夠進入可選菜單,這時按下方界面說明 按e、a、c、b等鍵可進行grub命令控制或者修改你的menu.lst文件
⑵ linux系統管理之grub引導
什麼是GRUB
GNU GRUB 是一個多重操作 系統 啟動管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而來。GRUB 最初由Erich Stefan Boleyn 設計和應用;
系統啟動引導管理器,是在計算機啟動後運行的第一個程序,他是用來負責載入、傳輸控制到操作系統的內核,一旦把內核掛載,系統引導管理器的任務就算完成退出,系統引導的其它部份,比如系統的初始化及啟動過程則完全由內核來控制完成;
Linux 中GRUB的配置文件
grub的配置文件位於/boot/grub/grub.conf其內容如下。
default=0 //默認啟動的內核或者說默認啟動的操作系統,0表示的是第一個內核或者操作系統,依次往後排(title所指定的那一項,第一個title是0,第二個是1,依次)
timeout=5 //默認的超時時間,這里定義的是5秒,如果5秒沒有選擇,默認啟動第一個內核或者說是第一個操作系統
splashimage=(hd0,0)/grub/splash.xpm.gz //指定grub的背景圖片,因為grub是系統開機後,運行系統所必須運行的第一個程序,所以,系統所自帶的文件系統還沒有被掛載,好在grub可以直接訪問磁碟文件,grub所識別的硬碟跟linux系統的不太一樣,grub認為,所有的磁碟都是hd的,而系統則不是。所以這里是(hd0,0),第一個0表示的是第一塊硬碟,第二個0表示的是第一個分區。如果要引用磁碟設備,要用括弧括起來,所以這里有一個括弧。
hiddenmenu //隱藏grub菜單,如果有這一項,我們將看不到grub的菜單,只能看到grub的背景圖片,然後上面出現了一個 please any key to enter the menu 下面是 Booting <default=0指定的,默認是第一個title的內容> in <timeout=N 超時時間設置>... 這樣子。具體的看下面的圖
![]( http://upload-images.jianshu.io/upload_images/4958474-d753926ca3df5492.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然後可以通過按任意鍵,進入grub的菜單。如果有多個內核的話,我們可以選擇啟動哪一個內核。下圖是grub的菜單
![]( http://upload-images.jianshu.io/upload_images/4958474-3b21dfedd7290e30.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
下面的英文內容,相信大家也看得懂。我就不多說了。通過編輯這里的grub菜單,我們可以直接進入單用戶模式,然後修改密碼。忘記密碼的時候,可以試下這個方法。
title Red Hat Enterprise Linux Server (2.6.18-164.el5) //這就是一個標題,就是Grub菜單上所顯示的內容,title關鍵字後面的內核,可以隨便寫,為了方便識別,建議還是寫一些可以從字面意義看出是什麼操作系統或者內核的文字描述。
root (hd0,0) //把hd0,0設置為根目錄,方便訪問.設置文件訪問的起始點,這里設置的根,是grub的根。
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet //指定內核文件,在內核後面跟的root,指的是操作系統的根目錄在哪兒. rhgb是redhat的一個小工具,顯示各種輸出的信息,包括硬體的初始化,quit表示是靜默模式,不輸出信息.啟動系統的時候會卡一下,然後出現redhat就是因為沒有顯示rhgb小程序的輸出信息.
initrd /initrd-2.6.18-164.el5.img //可以認為這是一個驅動程序,系統剛開機的時候,Grub第一個啟動,要掛載文件系統,就要從文件系統裡面讀取驅動,如果驅動在內核裡面還好,如果不在內核裡面了,那不就……所以,這個可以認為是一個驅動。其實,他是一個微小的linux系統,這個系統裡面,只包含了驅動程序,沒有其它文件。可以先把它重命令為.gz的,然後解壓,解壓後再用cpio解壓,就可以看到其內容了。目錄結構跟你的linux系統是一樣的,只不過沒有文件,只有驅動程序而已。
剛才說過,可以直接通過這里改密碼,這樣是很不安全的。也就是說,如果別人能接觸到我們的物理伺服器,他就可以直接更改我們系統的密碼,所以,我們可以給grub 加密 碼,加密碼的方法就是直接在grub.conf中指定,可以用關鍵字password 後面跟密碼來實現,但是這樣的密碼是明文的,也不安全,所以我們可以用password --md5 通過grub的md5加密工具來加密,然後寫到password --md5的後面。grub的md5加密工具是grub-md5-crypt ,直接使用這個命令,輸出密碼,然後會生成一段MD5加密後的值,寫到關鍵字後面就可以實現md5加密grub了。
寫的位置的不同,加密的效果也就不一樣,我們可以寫到一個title裡面,只對指定的內核或者說操作系統來加密,當啟動該內核或者系統的時候,會要求用戶輸入grub的密碼。當寫在所有的title外面的時候,編譯grub菜單的時候,會要求輸入密碼,這時候密碼先按p鍵輸入密碼,然後再按e鍵,才能編輯。
手動安裝GRUB
安裝grub有兩種方法可以使用。下面進入詳細的介紹,如果某些地方說的不太准確,希望大家能夠提出,TKS
第一
可以使用grub-install命令來進行安裝,具體方法是
grub-install --root-directory=/要安裝到哪個目錄 /要安裝的設備
例:我這里用 虛擬機 演示一下,新加了一塊磁碟,然後分區格式化(該操作不演示),然後掛載,然後用命令安裝,如下圖
x
注意:這里掛載點一定是boot目錄,可以不是/mnt,但最後掛載的目錄名字,一字叫boot,不然會出問題的。還有安裝的時候--root-directory=一定不要指定到boot目錄,要指定到boot所在的目錄,因為grub安裝的時候,會去找boot目錄,如果找不到,會報錯的。當我們把盤掛載到boot之後,可以認為,該盤的名字就叫boot,所以,它會在該盤內寫入bootloader,以引導系統,如果我們安裝的時候指定到了boot,那麼就是把bootloader的內容寫到了文件裡面,而不是硬碟的MBR。切記切記。我做了好多次都沒做出來,就是犯了這個錯。
安裝完成後,我們新建一個虛擬機,創建磁碟的時候,使用已有磁碟,找到我們安裝過grub的磁碟,然後使用之即可。開機之後,會驚喜的發現,出現了grub的提示符。
![]( http://upload-images.jianshu.io/upload_images/4958474-a6b446eee903d400.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
第二種方法(有點兒麻煩):
首先把 /usr/share/grub/i386-redhat/里的所有文件,拷貝到grub目錄
注意:這里同上,一定要掛載到boot目錄下,無論boot目錄在哪
![]( http://upload-images.jianshu.io/upload_images/4958474-5bc61b8664d71e60.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然後開始grub的安裝,直接使用命令grub
![]( http://upload-images.jianshu.io/upload_images/4958474-83d9432c7ef95f52.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
root (hd2,0) 表示grub要安裝到第三塊硬碟第1個分區上
setup (hd2) 指定要安裝的設備,設備為第二塊硬碟,安裝完成後quit命令退出就可以了,至於圖片,我就不上了,絕對是可以的。
⑶ Linux 修復grub開機引導(ubuntu)
問題 : 有時候Linux系統/boot分區損壞時,啟動Linux系統時直接進入字元介面的grub引導,並沒有進入到系統或者開機顯示 error:unknow filesystem提示
解決辦法:
Linux開機自動會進入到grub引導介面(如果沒進入到grub引導介面可以按C鍵進入)
第一步:找到系統對應的扇區及/boot/grub目錄
注意 :假設是硬碟介面類型sd,hd0對應是sda hd1對應是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇區信息(盤符、空間等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇區下的內容(文件、文本等)
如果列印每個扇區目錄信息,會出現兩種情況:
1、ls (hd1,gpt2)顯示Unknow filesystem提示說明這個扇區不是我們要找系統分區
2、ls (hd1,gpt2)顯示/boot /proc等系統目錄信息說明這個扇區是我們要找的系統分區
如果找到對應扇區的系統分區,可能會遇到兩種情況:
1、 A目錄下有/boot/grub
2、A目錄下有/boot,B目錄下有/grub (此時在第二步載入系統內核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:載入系統內核
grub > set root=hd1,2 #此處不需要括弧,加括弧也可以,hd0和hd1是有區別
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必須使用TAB補全(可能有後綴),注意sda或sdb需要看自己的實際情況
grub > initrd /initrd.img-xxx #TAB補全,多內核情況下版本需統一
grub > boot
提示 :如果在boot之後不幸進入BusyBox,說明參數設置有問題,可以仔細查看出錯的日誌,再重啟系統後重復執行第二步操作(重啟系統後上面設置的參數會被清空)。
第三步:修改grub引導
如果成功進入系統,記得要馬上信息grub引導,不然重啟系統後問題還是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重啟系統
重啟系統後即可正常進入系統
reboot
⑷ LINUX系統grub常見錯誤分析
你還在為不知道LINUX系統grub常見錯誤分析而煩惱么?接下來是我為大家收集的LINUX系統grub常見錯誤分析,希望能幫到大家。
LINUX系統grub常見錯誤分析
1 : Filename must be either an absolute filename or blocklist
解釋 :1號錯誤表示文件名格式錯誤。在 GRUB 中要麼是以絕對路徑給出文件
例子 :
grub> kernel vmlinuz root=label=/
Error 1: Filename must be either an absolute pathname or blocklist
grub>
引用:
2 : Bad file or directory type
解釋 :2號錯誤表示命令期望的是一個普通文件,但相應文件名的對象是一個符號鏈接、目錄、FIFO
例子 :
grub> kernel /testdir root=LABEL=/
Error 2: Bad file or directory type
grub>
引用:
3 : Bad or corrupt data while decompressing file
解釋 :3號錯誤表示解壓文件時發生錯誤。可能是因為這個文件被損壞了
引用:
4 : Bad or incompatible header in compressed file
解釋 :4號錯誤表示壓縮文件的頭部格式不被兼容或者錯誤
引用:
5 : Partition table invalid or corrupt
解釋 :5 號錯誤表示分區表無效或者被破壞。這是一個不好的預兆
引用:
6 : Mismatched or corrupt version of stage1/stage2
解釋 :6號錯誤表示 install 命令發現 stage1 和 stage2 的頒布號不被兼容
引用:
7 : Loading below 1MB is not supported
解釋 :This error is returned if the lowest address in a kernel is below
the 1MB boundary. The Linux zImage format is a special case and
can be handled since it has a fixed loading address and maximum size
引用:
8 : Kernel must be loaded before booting
解釋 :8號錯誤表示執行 boot 命令之前沒有先執行 kernel 命令
引用:
9 : Unknown boot failure
解釋 :9 號錯誤表示未知的引導錯誤
引用:
10 : Unsupported Multiboot features requested
解釋 :10 號錯誤表示請求 Multiboot header 所要求功能不被 GRUB 所支持。
引用:
11 : Unrecognized device string
解釋 :11 號錯誤表示無法識別的設備字元串。
例子 :
grub> root hd0
Error 11: Unrecognized device string
grub>
引用:
12 : Invalid device requested
解釋 :12 號錯誤表示請求的設備無效
例子 :
grub> root (hd2)
Error 21: Selected disk does not exist
grub> kernel /grub/grub.conf root=LABEL=/
Error 12: Invalid device requested
grub>
引用:
13 : Invalid or unsupported executable format
解釋 :13 號錯誤表示無效或者無法識別的可執行格式
例子 :
grub> kernel /grub/grub.conf root=LABEL=/
Error 13: Invalid or unsupported executable format
grub>
引用:
14 : Filesystem compatibility error, cannot read whole file
解釋 :14 號錯誤表示文件系統兼容性錯誤,無法讀取整個文件
引用:
15 : File not found
解釋 :請求的文件無法找到
例子 :
grub> find /grub-noexist/grub.conf
Error 15: File not found
grub>
引用:
16 : Inconsistent filesystem structure
解釋 :16 號錯誤表示不一致的文件系統結構。可能是文件系統結構被破壞了。
引用:
17 : Cannot mount selected partition
解釋 :17號錯誤表示無法掛載指定分區。例如 swap 分區
例子 :
grub> root (hd0,2) 這是一個 swap 分區
Filesystem type unknown, partition type 0x82
grub> kernel /vmlinuz
Error 17: Cannot mount selected partition
grub>
引用:
18 : Selected cylinder exceeds maximum supported by BIOS
解釋 :18 號錯誤表示選擇的柱面超過了 BIOS 支持的最大能力。這通常發生在不支持 LBA 模式
的硬碟上。
引用:
19 : Linux kernel must be loaded before initrd
解釋 :19 號錯誤表示執行 initrd 命令前必須先執行 kernel 命令
引用:
20 : Multiboot kernel must be loaded before moles
解釋 :20 號錯誤表示執行 mole 或者 moleunzip 命令前必須先執行 kernel 命令
引用:
21 : Selected disk does not exist
解釋 :21 號錯誤表示選擇的磁碟不存在
例子 :
grub> root (hd2)
Error 21: Selected disk does not exist
grub>
引用:
22 : No such partition
解釋 :22 號錯誤表示分區不存在
例子 :
grub> root (hd0,10)
Error 22: No such partition
grub>
引用:
23 : Error while parsing number
解釋 :23 號錯誤表示參數解釋錯誤,希望是一個數值,但參數卻是其他類型
例子 :
grub> root (hda,0)
Error 23: Error while parsing number
grub>
引用:
24 : Attempt to access block outside partition
解釋 :24 號錯誤表示嘗試訪問的 block 超出了分區
引用:
25 : Disk read error
解釋 :25 號錯誤表示磁碟讀錯誤
引用:
26 : Too many symbolic links
解釋 :26 號錯誤表示太多的符號連接(默認最多允許5個)
引用:
27 : Unrecognized command
解釋 :無法識別的命令
引用:
28 : Selected item cannot fit into memory
解釋 :選擇的對象無法被載入到內存中。
例子 :
[root@monitor boot]# dd if=/dev/zero of=vmlinuz-2.4.20-31.9 bs=1024 count=1 seek=1
讀入了 1+0 個塊
輸出了 1+0 個塊
[root@monitor boot]#grub
grub> kernel /vmlinuz-2.4.20-31.9 root=label=/
[Linux-bzImage, setup=0x1400, size=0xfffff200]
Error 28: Selected item cannot fit into memory
grub>
引用:
29 : Disk write error
解釋 :磁碟寫錯誤
引用:
30 : Invalid argument
解釋 :無效參數
例子 :
grub> serial --noarg=0
Error 30: Invalid argument
grub>
引用:
31 : File is not sector aligned
解釋 :This error may occur only when you access a ReiserFS partition by
block-lists (e.g. the command `install'). In this case, you should
mount the partition with the `-o notail' option.
引用:
32 : Must be authenticated
解釋 :要求輸入口令才能繼續進行下面的操作。例如配置文件中有 password 或者 lock 命令
例子 :
password root1234
title DOS
lock
rootnoverify (hd0,0)
chainloader +1
引用:
33 : Serial device not configured
解釋 :33 號錯誤表示串口還沒有配置。這一般發生在你執行 terminal serial 的時候
引用:
34 : No spare sectors on the disk
解釋 :磁碟自由空間不足。可能發生在把 stage 1.5 嵌入到 MBR 之後的空間的時候。但這部分空間可能已經被分區表使用了
看了“LINUX系統grub常見錯誤分析”還想看:
1. linux系統能看到Grub但進不了系統問題及解決方案
2. 開機就是GURB無法進入系統的解決辦法有哪些
3. Ubuntu更新GRUB怎麼恢復系統引導
4. Ubuntu怎麼刪除grub
⑸ Linux grub
GRUB無法引導啟動項了,直接顯示為
GRUB>
--這時候不知道該怎麼辦了,然後google了下,解決辦法如下
在提示符『GRUB>』後輸入find
/grub/stage1
查找到結果為(hd0,6)
--
這個命令其實就是找出/boot所在分區
運行
grub>root
(hd0,6)
(這個位置要填上你機子上的運行結果)
運行grub>setup
(hd0)
出現幾行提示文字,最後是「...
succeeded」
修復成功
好了,重啟系統
...
它還是從(hd0,5)找尋啟動項
靠,我設置了的還出問題,沒法了,先進入xp系統,運行無損分區工具,把E盤合並到D盤,
好了,現在linux
/boot分區就在hda5下了,重啟電腦
糟糕,還是不能引導,而且進不到『GRUB>』下了,卧槽...
再次google,好有結果了,linux系統盤進入救援模式
開始行動:
放入RHEL5系統盤,屏幕顯示boot後
輸入linux
rescue
進入救援模式
出現提示符: sh#後我們就可以操作GRUB了
sh#grub
grub>
grub>find
/grub/stage1
這次得到結果為(hd0,5)
grub>root
(hd0,6)
grub>setup
(hd0)
. ..
succeeded
好了,再次重啟電腦
哈哈,久違的GRUB啟動項又回來了,OK...
進入RHRL5吧...
⑹ Linux 如何修改 Grub
要修改grub,請注意以下幾個重要文件:
1. /boot/grub/grub.cfg
此檔案中包含了GRUB選單資訊。
注意他的開頭,說明了這是由/etc/grub.d與/etc/default/grub所生成的,不要自己編輯。這個檔案還是唯讀屬性,就是要避免你直接去編輯。
若是你修改了這個檔案,只要更新核心,或是以指令更新grub選單,之前的修改就會被覆蓋掉。所以除非不得已,請不要去動這個檔案。要修改,請繼續往下看。
2. /etc/default/grub
此檔案為使用者修改grub設定的主要檔案,真的改爛了請不要急,在/usr/share/grub/default/里還有一份,復制回來即可。
要修改這個檔案,請輸入
sudo gedit /etc/default/grub
3. /etc/grub.d目錄
此目錄放置檔案,會在sudo update-grub時,合並到/boot/grub/grub.cfg中。
注意這些檔案名稱結構,前面都有數字。數字越小的,在合並時放在越前面。常有人問到,grub menu要怎麼更改選項的順序?就是更改數字的大小。
此外請你在這目錄下輸入ls -l,看一下各檔案的屬性,有沒有看到都有x屬性(可執行)?變動x屬性,可以決定這個選項要不要出現在選單內。
以下介紹 /etc/default/grub 所使用的參數,我只介紹大家比較會去修改到的。
1. GRUB_DEFAULT - 設定預設選單選項。有以下幾種作法。
GRUB_DEFAULT=0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。
GRUB_DEFAULT="xxxx" 在此例中,選單中的位置不會有影響。例如:GRUB_DEFAULT="Ubuntu, Linux 3.11.0-13-generic"。注意要完整全稱。
GRUB_DEFAULT=saved 由儲存預設的作業系統開機。可以用grub-reboot和grub-set-default指令來設定預設作業系統。預設作業系統不會由來自選單中的互動式選擇而被設定。
sudo grub-set-default 0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。
sudo grub-set-default "xxxx" 以選單名稱來設定
sudo grub-reboot 0 以位置來設定下次重啟開機選項。第一筆選單選項為 0,第二筆為 1,以此類推。
sudo grub-reboot "xxxx" 以選單名稱來重啟開機
2. GRUB_HIDDEN_TIMEOUT - 此設定用來決定GRUB選單會有多長時間不被顯示。
GRUB_HIDDEN_TIMEOUT=0 在單一作業系統電腦中,會立刻以預設作業系統開機。在只有一個作業系統狀況下,這是預設的設定。假如還是要顯示選單,請在這行前加上 # 注銷掉,並確認 GRUB_TIMEOUT 設定為正整數。
GRUB_HIDDEN_TIMEOUT=X x為秒數,空白畫面幾秒後,系統將會依照預設開機,不會出現選單。當螢幕是空白時,使用者可以按下任何鍵以顯示選單。
3. GRUB_HIDDEN_TIMEOUT_QUIET - 在空白畫面時,是否顯示倒數計時器
GRUB_HIDDEN_TIMEOUT_QUIET=true '不'顯示計時器
GRUB_HIDDEN_TIMEOUT_QUIET=fault 顯示計時器
4. GRUB_TIMEOUT - 選單顯示多久之後自動以預設作業系統開機
GRUB_TIMEOUT=10 10秒後以預設系統開機
GRUB_TIMEOUT=-1 持續顯示選單,直到使用者選擇
5. GRUB_GFXMODE - 設定grub選單顯示的解析度。一般是註解掉。
GRUB_GFXMODE=640x480 以640x480模式顯示。
除非開機時選單顯示就有問題,不然不要啟用這個參數,據說會影響進入grub選單的時間。真的要啟用,後面的數值請依照你顯卡可以支援的模式填入,如1280x1024x16,800x600x24,640x480
6. GRUB_DISABLE_LINUX_RECOVERY - 救援模式要不要顯示?
你在選單中是不是都有看到救援模式(recovery mode)?假如你的電腦一向穩定,而且你不太會去動到系統,可以考慮去除 # 註解
GRUB_DISABLE_LINUX_RECOVERY=true '不' 顯示救援模式
7. GRUB_DISABLE_OS_PROBER - 對其他分割區作業系統的檢查
大家應該都知道sudo update-grub可以找到在其他分割區的作業系統,製成選單。但有時我就是不想要他顯示到選單內,那怎麼辦?那注銷掉這一行就可以不檢查其他分割區有沒有作業系統。
GRUB_DISABLE_OS_PROBER=true '不'檢查其他作業系統
8. GRUB_BACKGROUND - 背景影像所在。這個參數,需要自行加入。
GRUB_BACKGROUND= 以/usr/share/background/xxx.jpg當作選單背景。可以.png, .jpg, 或.tga等格式
⑺ linux開機grub>命令修復方法
出現grub rescue模式一般是硬碟分區出現變動、導致舊的grub找不到啟動文件而出現的。
出現錯誤具體原因未知,但開機不能引導肯定是grub配置文件出錯,/boot/grub2/grub.cfg
解決方法:
2,grub> 模式下:輸入:ls 查看所有磁碟分區:hd。x,x......用:ls hd(x,x)/grub 找grub所在的分區,有正確執行結果的便是找到linux所在分區後執行setprefix=hdx,x/grubsetroot=hx,x、insmod normal再使用normal命令進入系統後,再修復grub 配置。or:查找boot分區:find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg
輸入以下命令:cat hd0,7/boot/grub/grub.conf 關於內核信息的,看一下就明白了。按照下面命令依次輸入指定/boot分區使用命令:grub>root hd0,0grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回車grub>initrd /boot/initrd-2.6.18-53.el5.img 回車boot 回車啟動
⑻ 了解Linux下的Grub
grub相關配置文件:
[root@lyy
grub]#
ll
總計
199
-rw-r--r--
1
root
root
60
10-26
20:05
device.map
#grub裝置對應文件
-rw-r--r--
1
root
root
7584
10-26
20:05
e2fs_stage1_5
#ext2/ext3文件系統之定義檔
-rw-r--r--
1
root
root
7456
10-26
20:05
fat_stage1_5
#FAT文件系統之定義檔
-rw-r--r--
1
root
root
6720
10-26
20:05
ffs_stage1_5
#FFS文件系統之定義檔
-rw-r--r--
2
root
root
195
11-20
12:21
grub.conf
#grub
在Red
Hat的配置文件
-rw-r--r--
1
root
root
6720
10-26
20:05
iso9660_stage1_5
#光碟機文件系統之定義檔
-rw-r--r--
1
root
root
8192
10-26
20:05
jfs_stage1_5
#文件系統之定義檔
-rw-r--r--
2
root
root
195
11-20
12:21
menu.lst
#開機菜單配置文件
-rw-r--r--
1
root
root
6880
10-26
20:05
minix_stage1_5
#文件系統之定義檔
-rw-r--r--
1
root
root
9248
10-26
20:05
reiserfs_stage1_5
#文件系統之定義檔
-rw-r--r--
1
root
root
512
10-26
20:05
stage1
-rw-r--r--
1
root
root
104988
10-26
20:05
stage2
-rw-r--r--
1
root
root
7072
10-26
20:05
ufs2_stage1_5
#文件系統之定義檔
-rw-r--r--
1
root
root
6272
10-26
20:05
vstafs_stage1_5
#文件系統之定義檔
-rw-r--r--
1
root
root
8904
10-26
20:05
xfs_stage1_5
硬碟與分區在grub中的代號
grub主程序主要是從磁碟中載入核心檔案,所以它必須認識硬碟。grub對硬碟的代號設定與
傳統的linux磁碟代號可完全是不同的,如:
(hd0,0)
硬碟代號以小括弧()包起來;
硬碟以hd表示,後面會接一組數字;
以【搜尋順序】做為硬碟的編號,而不是依照硬碟線的排序;
第一個搜尋的硬碟為0號,第二個為1號,以此類推;
每顆硬碟的第一個分區代號為0,依序類推。
第一顆硬碟的第一個邏輯分區代號為(hd0,4)。
/boot/grub/menu.lst配置文件
[root@lyy
grub]#
cat
menu.lst
default=0
#默認開機,預設第一個title項目
timeout=5
#停留五秒,末動鍵盤選擇認
splashimage=(hd0,0)/grub/splash.xpm.gz
#背景圖示所在檔案
hiddenmenu
#預設隱藏完整的開機菜單
title
redhat
enterprise
server
5.4
root
(hd0,0)
#核心檔案的分區
kernel
/vmlinuz-2.6.18-164.el5
ro
root=LABEL=/
rhgb
quiet
rhgb
initrd
/initrd-2.6.18-164.el5.img
root(hd0,0)
核心檔案的分區,而不是根目錄。
kernel
後接核心名之後就是核心參數。
root=LABEL=/
掛載/目錄
rhgb為彩色顯示
quiet安靜模式
initrd
後接虛擬文件系統名
其中
root=LABEL=/
可以寫成
root=/dev/hda2
一、測試與grub安裝
使用grub-install
將一些必要的檔案復制到/boot/grub裡面去。
例:將grub安裝在目前系統的MBR下,我的系統為:/dev/hda
[root@lyy
grub]#
grub-install
/dev/hda
如果grub發生錯誤,連grub
都無法啟動,可以利用具有grub開機的CD來開,然後再以CD的grub
的在線編輯功能使用硬碟上面的核心檔案來開機。
二、為個別選單加上密碼
例:給系統第一個開機菜單加上用MD5的密碼,同時鎖定在線編輯功能。
1.建立用MD加密過的密碼
[root@lyy
~]#
grub-md5-crypt
Password:
Retype
password:
$1$vX3Mu/$msyisCLVKaZh1offoGYF2.
#經過MD5處理的密碼
2.把生成的密碼加入到/boot/grub/menu.lst
[root@lyy
grub]#
vi
menu.lst
default=0
timeout=5
hiddenmenu
title
redhat
enterprise
server
5.4
password
--md5
$1$eU4Mu/$0BvMemF2AVPO.BYbh3/e2/
root
(hd0,0)_
kernel
/vmlinuz-2.6.18-164.el5
ro
root=LABEL=/
rhgb
quiet
rhgb
initrd
/initrd-2.6.18-164.el5.img
注意這個密碼加在title以下的第一行
3.經過以上簡單的步驟,就完成了密碼,但grub的在線編輯功能還是可以跳過密碼,所以我們
要把在線編輯功能鎖住。
default=0
timeout=5
password
--md5
$1$eU4Mu/$0BvMemF2AVPO.BYbh3/e2/
#控制全局
hiddenmenu
title
redhat
enterprise
server
5.4
lock
#加上了這個功能
root
(hd0,0)_
kernel
/vmlinuz-2.6.18-164.el5
ro
root=LABEL=/
rhgb
quiet
rhgb
initrd
/initrd-2.6.18-164.el5.img
三、解決init配置文件錯誤
我們都知道
run
level
0-6
都會讀取/etc/inittab
,如果些文件配置錯誤,導致無法讀取,單用戶
run
level也無法讀取/etc/inittab進行開機,這時,我們可以告訴核心不要執行init
改呼叫bash。
例:開機在grub菜單中用在線編輯功能,修改以下
grub
edit>
kernel
/vmlinuz-2.6.18-92.el5
ro
root=LABEL=/
rhgb
quiet
init=/bin/bash
這樣系統呼叫的第一個程序就改成了/bin/bash,因此/sbin/init就不會執行了。
但此時除了根目錄外,其他目錄沒有被掛載而且根目錄成為了只讀狀態,我們還需要以下命令
來重復掛載根目錄
mount
-o
remount,rw
/
#重新掛載成為可擦寫
mount
-a
#根據/etc/fstab的內容重新掛載文件系統
作者Liyy學習筆記