版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、grub2基礎(chǔ)教程-修訂版smallapple目錄一、grub2新特性二、grub2安裝與啟動三、grub2配置文件詳解四、腳本修改五、使用grub2常見錯誤及修復(fù)方法一、grub2新特性1、grub2和grub有很多不同的地方:a)圖形接口b)使用了模塊機制,通過動態(tài)加載需要的模塊來擴展功能c)支持腳本語言,例如條件判斷,循環(huán)、變量和函數(shù)d)支持rescue模式,可用于系統(tǒng)無法引導(dǎo)的情況e)國際化語言。包括支持非ASCII的字符集和類似gettext的消息分類,字體,圖形控制臺等等f)有一個靈活的命令行接口。如果沒有配置文件存在,GRUB會自動進入命令模式g)針對文件系統(tǒng)、文件、設(shè)備、驅(qū)動、
2、終端、命令、分區(qū)表、os loder的模塊化、層次化、基于對象的框架h)支持多種文件系統(tǒng)格式i)可訪問已經(jīng)安裝的設(shè)備上的數(shù)據(jù)j)支持自動解壓2、設(shè)備的命名grub2同樣以fd表示軟盤,hd表示硬盤(包含IDE和SCSI硬盤)。設(shè)備是從0開始編號,分區(qū)則是從1開始,主分區(qū)從1-4,邏輯分區(qū)從5開始,而grub分區(qū)編號是從0開始的。下面給出幾個例子 :(fd0):表示整個軟盤(hd0,1):表示BIOS中的第一個硬盤的第1個分區(qū)(hd0,5)/boot/vmlinuz:表示BIOS中的第一個硬盤的第一個邏輯分區(qū)下的boot目錄下的vmlinuz文件二、grub2安裝與啟動1、安裝ubuntu9.1
3、0時,grub默認安裝在第一硬盤(hd0)的mbr,其實就是把引導(dǎo)文件boot.img寫入硬盤的mbr,當(dāng)然,用戶也可以選擇不寫入硬盤mbr而是寫入linux分區(qū)的引導(dǎo)扇區(qū)。啟動時根據(jù)mbr所提供信息找到啟動分區(qū)后,加載分區(qū)內(nèi)的grub核心文件core.img和配置文件grub.cfg,進入選擇菜單畫面,在菜單畫面,按上下箭號選擇需要系統(tǒng)菜單項,按Enter進入選項。按e進入己選擇菜單的編輯狀態(tài),在編輯狀態(tài)下,由上下左右箭號來移動光標(biāo),enter鍵換行,ctrl+x以編輯的內(nèi)容啟動,ctrl+c進命令行狀態(tài),按Esc退出,回到菜單項。在需要使用額外的內(nèi)核參數(shù)啟動時,比如要加上acpi=off時
4、,把光標(biāo)移動到linux這一行最后,在splash后加上一空格再輸入acpi=off,然后按ctrl+x啟動。按c進入命令行狀態(tài),按Tab鍵可查看所有可用的命令。在命令行狀態(tài),可以根據(jù)需要加載或移除相應(yīng)模塊,也可用來啟動在菜單沒有顯現(xiàn)的的系統(tǒng)。比如,在第一硬盤的第一分區(qū)上裝有windows xp系統(tǒng),但在菜單上沒顯示出來,我們可以命令行狀態(tài)下輸入命令啟動:grubset root=(hd0,1)grubchainloader +1grubboot又比如啟動第二硬盤第一邏輯分區(qū)上的ubuntu系統(tǒng):grubset root=(hd1,5)grublinux /boot/vmlinuz-xxx-x
5、xx root=/dev/sdb5grubinitrd /boot/initrd.img-xxx-xxxgrubboot其中內(nèi)核vmlinuz和initrd.img的版本號可用按Tab鍵自動查看。2、下面介紹下在grub2中一些常用的命令1)help查看命令用法,如help search:查看search命令詳細用法2)set設(shè)置變量值,如set default=0set timeout=5set root=(hd0,3)等等需要調(diào)用變量AA的值時,使用$AA,如set root=(hd1,1),則$root=(hd1,1)3)default定義默認引導(dǎo)的操作系統(tǒng)。0表示第一個操作系統(tǒng),1表示
6、第2個,依此類推4)timeout定義在時間內(nèi)用戶沒有按下鍵盤上的某個按鍵,自動引導(dǎo)default指定的操作系統(tǒng)。5)root指定用于啟動系統(tǒng)的分區(qū)。6)insmod和rmmod加載或移除某模塊,如insmod jpeginsmod pnginsmod ntfsrmmod png等7)drivemapdrivemap兼容grub的map,主要用于只能從第一硬盤(hd0)引導(dǎo)啟動的系統(tǒng)如win2000 xp 2003,比如要添加第二硬盤第一分區(qū)上的xp系統(tǒng):menuentry Windows XP set root=(hd1,1)drivemap -s (hd0) $rootchainloade
7、r +18)ls列出當(dāng)前的所有設(shè)備。如(hd0),(hd0,1),(hd0,5),(hd1),(hd1,1),(hd1,2)等ls -l詳細列出當(dāng)前的所有設(shè)備。對于分區(qū),會顯示其label及uuid。ls /列出當(dāng)前設(shè)為root的分區(qū)下的文件ls (hd1,1)/列出(hd1,1)分區(qū)根目錄的文件9)searchsearch -f /ntldr列出根目錄里包含ntldr文件的分區(qū),返回為分區(qū)號search -l LINUX搜索label是LINUX的分區(qū)。search -set -f /ntldr搜索根目錄包含ntldr文件的分區(qū)并設(shè)為root,注意如果多個分區(qū)含有ntldr文件,set失去作
8、用。10)loopbackloopback命令可用于建立回放設(shè)備,如loopback lo0 (hd1,1)/abc.iso可以使用lo0設(shè)備來訪問abc.iso里的內(nèi)容,比如說,可以從abc.iso里的軟盤映像中啟動loopback lo0 (hd1,1)/aa.isolinux (lo0)/memdiskinitrd (lo0)/abc.img要刪除某一回放設(shè)備,可以使用-d參數(shù):loopback -d lo011)pager分頁顯示。set pager=1顯示滿一頁時暫停,按space繼續(xù)set pager=0取消分頁顯示12)linux用linux命令取代grub中的kernel命令1
9、3)chainloader調(diào)用另一個啟動器,如chainloader (hd0,1)+1調(diào)用第一硬盤第一分區(qū)引導(dǎo)扇區(qū)內(nèi)的啟動器,可以是windows或linux的啟動器14) grub2掛載軟盤鏡像menuentry Boot from DOS IMG linux16 /memdiskinitrd16 /win98.img對非標(biāo)準(zhǔn)的1.4M和2.8M的其他鏡像掛載方法,需要指定 CHS參數(shù):menuentry Boot from IMG linux16 /memdisk c=* h=* s=* floppyinitrd16 /xxx.img三、grub2配置文件詳解grub2改用grub.cf
10、g為配置文件,配置文件包含以下基本內(nèi)容:(紅色為解釋部分)# BEGIN /etc/grub.d/00_header #load_env#加載變量,如果在grubenv保存變量,則啟動時裝載set default=0#設(shè)置默認引導(dǎo)項,默認值為0insmod ext2#插入文件系統(tǒng)支持的模塊,除了用作啟動的分區(qū)外,其他分區(qū)格式可在menuentry底下再添加set root=(hd0,8)#指定系統(tǒng)root分區(qū),也就是 /分區(qū)search -no-floppy -fs-uuid -set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b#指定uuid=2d61e5f9-1
11、d2a-4167-a6f1-b991ba00878b的分區(qū)為root分區(qū),如果前面的分區(qū)號(hd0,8)的#uuid與這里的uuid一致,這兩句作用一樣,如果不一致,則指定uuid的起作用。if loadfont /usr/share/grub/unicode.pf2 ; then#設(shè)置終端字體,unicode.pf2支持中文字符顯示set gfxmode=640x480#設(shè)置顯示分辨率,默認為640x480,可用800x600,1024x768,建議跟你想設(shè)定的圖片大小一致insmod gfxterm#插入終端模塊gfxterm,支持中文字符顯示和支持24位圖像insmod vbe#插入vb
12、e模塊,GRUB2引入模塊化機制,要使用它,需要在這里加入if terminal_output gfxterm ; then true ; else# For backward compatibility with versions of terminal.mod that dont# understand terminal_outputterminal gfxterm#設(shè)定grub2終端為gfxtermfifiif $recordfail = 1 ; thenset timeout=-1# 若有啟動失敗的記錄,則菜單項不再倒計時elseset timeout=10#倒計時10秒后進按默認啟動
13、項啟動fi#設(shè)定默認啟動前等待時間,默認為10秒# END /etc/grub.d/00_header # BEGIN /etc/grub.d/05_debian_theme #set menu_color_normal=white/black#設(shè)定菜單字體及背景顏色set menu_color_highlight=black/blue#設(shè)定選擇項字體及背景顏色#如果使用默認,背景將完全被藍色擋住了,需要修改blue為black,背景圖片才能顯示# END /etc/grub.d/05_debian_theme # BEGIN /etc/grub.d/10_linux #10_linux為系統(tǒng)
14、自動添加的當(dāng)前root分區(qū)linux引導(dǎo)項#每個菜單項要包括menuentry雙引號 和大括號 才完整,否則不顯示菜單menuentry Ubuntu, Linux 2.6.31-10-generic set quiet=1insmod ext2set root=(hd0,8)search -no-floppy -fs-uuid -set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b#這句與set root=(hd0,8)效果一樣,可刪除其一,二者不一致以這句為準(zhǔn)linux /boot/vmlinuz-2.6.31-10-genericroot=UUID=2d61e
15、5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash#不喜歡看到一長串的, roo=UUID=*可用root=/dev/sda8(/分區(qū)的分區(qū)號)代替initrd /boot/initrd.img-2.6.31-10-generic# END /etc/grub.d/10_linux #20_memtest86+為系統(tǒng)自動添加的內(nèi)存測試菜單項# BEGIN /etc/grub.d/20_memtest86+ #menuentry Memory test (memtest86+) linux16 /boot/memtest86+.binmenuentry
16、 Memory test (memtest86+, serial console 115200) linux16 /boot/memtest86+.bin console=ttyS0,115200n8# END /etc/grub.d/20_memtest86+ #30_os-prober或30_others為系統(tǒng)自動查找并添加其他系統(tǒng)菜單項,按windows,linux,macos順序#查找并添加,支持windows 7識別# BEGIN /etc/grub.d/30_os-prober # END /etc/grub.d/30_os-prober # BEGIN /etc/grub.d/3
17、0_otheros # This entry automatically added by the Debian installer for a non-linux OS# on /dev/sda1menuentry Microsoft Windows XP Professional set root=(hd0,1)search -no-floppy -fs-uuid -set e852-230bdrivemap -s (hd0) $root#對以ntldr引導(dǎo)的系統(tǒng)如win2000,xp,win2003,因其引導(dǎo)機制只能從第一硬盤啟動,系統(tǒng)會自動添加#映射命令,對vista和win7就沒有這
18、句命令chainloader +1# END /etc/grub.d/30_otheros #40_custom為自定義的啟動項,如啟動cdlinux# BEGIN /etc/grub.d/40_custom #menuentry CDLinuxset root=(hd0,8)linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8initrd /CDlinux/initrd# END /etc/grub.d/40_custom #定制個性化的配置文件,可以加入背景圖片,使用中文字符,讓啟動畫面獨具特色,而不是單調(diào)的黑
19、、白、藍三色。下面是一張經(jīng)美化啟動畫面:四、腳本修改該怎樣定制個性化的配置文件呢?系統(tǒng)安裝完成后,用戶就會發(fā)現(xiàn)/boot/grub/grub.cfg文件只有root權(quán)限可讀,如果要直接修改grub.cfg文件,要先修改其權(quán)限。好不容易把grub.cfg修改好了,系統(tǒng)內(nèi)核或grub升級時,會自動執(zhí)行update-grub,grub.cfg文件就會被打回原形,如何保證修改后的配置文件能一直保留下來呢?其實不用修改grub.cfg,只要把個性化配置寫入/etc/default/目錄下的grub和/etc/gurb.d目錄下的腳本文件,以后不管升級內(nèi)核或者是升級grub所執(zhí)行的update-grub,
20、都會按要求創(chuàng)建個性化的grub.cfg。1、首先看下 /etc/default/grub,先從應(yīng)用程序附件里打開終端,輸入sudo gedit /etc/default/grub用戶密碼看看打開的文件可作什么修改:# If you change this file, run update-grub afterwards to update# /boot/grub/grub.cfg.GRUB_DEFAULT=0-設(shè)置默認啟動項,按menuentry順序。比如要默認從第四個菜單項啟動,數(shù)字改為3,若改為 saved,則默認為上次啟動項。GRUB_HIDDEN_TIMEOUT=0默認為0,單系統(tǒng)時啟
21、動菜單自動隱藏,要取消自動隱藏菜單,改為大于0再sudo update-grub。GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=3-設(shè)置進入默認啟動項的等候時間,默認值10秒,按自己需要修改GRUB_DISTRIBUTOR=lsb_release -i -s 2 /dev/null | echo DebianGRUB_CMDLINE_LINUX_DEFAULT=quiet splash-添加內(nèi)核啟動參數(shù),這個為默認GRUB_CMDLINE_LINUX=noresume-手動添加內(nèi)核啟動參數(shù),比如 acpi=off noapic等可在這里添加,加 text
22、 參數(shù)啟動進入字符模式。加參數(shù)啟動進入字符模式# Uncomment to disable graphical terminal (grub-pc only)#GRUB_TERMINAL=console-設(shè)置是否使用圖形介面。去除前面#,僅使用控制臺終端,不使用圖形介面# The resolution used on graphical terminal# note that you can use only modes which your graphic card supports via VBE# you can see them in real GRUB with the comman
23、d vbeinfo#GRUB_GFXMODE=640x480 設(shè)定圖形介面分辨率,如不使用默認,把前面#去掉,把分辨率改為800x600或1024x768# Uncomment if you dont want GRUB to pass root=UUID=xxx parameter to Linux#GRUB_DISABLE_LINUX_UUID=true-設(shè)置grub命令是否使用UUID,去掉#,使用root=/dev/sdax而不用root=UUDI=xxx# Uncomment to disable generation of recovery mode menu entrys#GRU
24、B_DISABLE_LINUX_RECOVERY=true-設(shè)定是否創(chuàng)建修復(fù)模式菜單項2、再看下/etc/grub.d目錄下的腳本文件:00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom這五個腳本對應(yīng)grub.cfg上的各個部分,有的版本的grub可能把30_os-prober分出另一部分為 30_os-others,這并不影響。怎樣修改這些腳本文件才能保證不會破壞update-grub的運行,又能讓生成的grub.cfg合乎意愿呢? 其實很簡單,只要在腳本文件中找到cat EOF*EOF這類語句,E
25、OF中間的文本會直接寫入grub.cfg中相應(yīng)位置,所以個性化的語句添加在這地方就可以了。其他使用變量的語句不要隨變做修改,除非你清楚修改后會有什么結(jié)果。1)看看00_header,一樣在終端中打開sudo gedit /etc/grub.d/00_header,找到這部分cat 加載由save_env保存在grubenv的變量set default=$GRUB_DEFAULT-使用/etc/default/grub中的設(shè)定值if $prev_saved_entry ; thensaved_entry=$prev_saved_entrysave_env saved_entryprev_save
26、d_entry=-變里設(shè)置的變量由下句保存到grubenvsave_env prev_saved_entryfi-這里回車添加新行后可插入需要添加的模塊insmod jpeg-添加背景圖片格式支持,如jpeg,png,tga等。insmod fat-添加文件系統(tǒng)格式支持如fat,ntfs,也可在menuentry下添加EOF再看看最后這一段cat 設(shè)定為若有啟動失敗記錄,不倒計時,不會進入默認啟動,需手動選擇才能啟動選擇項,若要設(shè)置為即使曾啟動錯誤也進行默認啟動,可把時間設(shè)為合適的正值,如 set timeout=5elseset timeout=$GRUB_TIMEOUT-使用/etc/de
27、fault/grub中的設(shè)定值fi-這行后添加行background_image (hd0,7)/boot/images/002.jpg-添加背景圖片的絕對路徑,可以按05_debian_theme修改圖片路徑。EOF2)05_debian_theme修改字體及背景顏色、添加背景圖片先打開文件 sudo gedit /etc/grub.d/05_debian_theme看這里cat 設(shè)置菜單全局的字體和背景顏色set menu_color_highlight=black/white-設(shè)置選擇項的字體和背景顏色。EOF可供使用菜單顏色有:black(當(dāng)背景色時為透明),blue,green,cy
28、an,red,magenta,brown,light-gray,dark-gray,light-blue,light-green,light-cyan,light-red,light-magenta,yellow,white添加背景圖片,看這一段source /usr/lib/grub/grub-mkconfig_lib# this allows desktop-base to override our settingsf=/usr/share/desktop-base/grub_background.shif test -e $f ; thensource $felseWALLPAPER=/
29、usr/share/images/desktop-base/moreblue-orbit-grub.pngCOLOR_NORMAL=black/blackCOLOR_HIGHLIGHT=magenta/blackfi這里會自動搜索背景文件,把合適的背景圖片更名為 moreblue-orbit-grub.png(moreblue-orbit-grub.tga或moreblue-orbit-grub.jpeg),再放在/usr/share/images/desktop-base/目錄 下,然后執(zhí)行 sudo update-grub,會出現(xiàn)如下的Generating grub.cfg .Found
30、background image: moreblue-orbit-grub.png.再重啟,漂亮的背景圖片就會出現(xiàn)了。3)10_linux這部分是自動搜索當(dāng)前系統(tǒng),建立當(dāng)前系統(tǒng)的啟動菜單,包括系統(tǒng)頭,內(nèi)核等信息,不要隨便修改,要使用個性菜單名,比如中文菜單,可適當(dāng)添加:先打開文件 sudo gedit /etc/grub.d/10_linux,找到cat 雙引號內(nèi)可添加個性化字符,$1變量也可改為定值,如改為menuentry 啟動 Ubuntu Karmic recordfail=1save_env recordfail-如不要保存啟動失敗記錄的,這兩句可刪除EOFif x$3 = xqui
31、et ; thencat 啟動畫面不用splash,要用跳動字符的,這段可刪除個性化菜單項也可在這里修改,即上面的menuenrty $1不變,修改下面的數(shù)值:linux_entry $OS, Linux $version -可改為 linux_entry 啟動 Ubuntu,Linux $version$GRUB_CMDLINE_LINUX $GRUB_CMDLINE_EXTRA$GRUB_CMDLINE_LINUX_DEFAULT quietif x$GRUB_DISABLE_LINUX_RECOVERY != xtrue ; thenlinux_entry $OS, Linux $ver
32、sion (recovery mode) -可改為linux_entry 啟動 Ubuntu, Linux $version (修復(fù)模式)single $GRUB_CMDLINE_LINUXfi注意只修改引號內(nèi)的字符,前面的menuentry,linux_entry和后面的不要做修改。4)20_memtest86+自動添加內(nèi)存測試啟動項打開文件 sudo gedit /etc/grub.d/20_memtest86+,找到cat 雙引號內(nèi)可添加個性字符如menuentry 啟動 內(nèi)存測試linux16$MEMTESTPATHmenuentry Memory test (memtest86+,
33、serial console 115200) linux16$MEMTESTPATH console=ttyS0,115200n8EOF上面有兩內(nèi)存測試項,可刪除其中一個。5)30_os-prober查找其他分區(qū)中存在的系統(tǒng)并建立菜單項,依次為windows,linux,macos。對于單系統(tǒng),默認會隱藏菜單,可在這里去掉隱藏先打開文件 sudo gedit /etc/grub.d/30_os-prober單ubuntu系統(tǒng)會自動隱藏菜單,要取消隱藏菜單,可把這部份的三個timeout=0改為和/etc/default/grub中的timeout一致,比如timeout=10。cat EOFi
34、f $timeout != -1 ; thenif keystatus; thenif keystatus -shift; thenset timeout=-1elseset timeout=0fielseif sleep$verbose -interruptible 3 ; thenset timeout=0fififiEOFelsecat EOFif $timeout != -1 ; thenif sleep$verbose -interruptible $GRUB_HIDDEN_TIMEOUT ; thenset timeout=0fifiEOF下面這段自動查找并添加windows、li
35、nux和macos啟動項,可在menuentry內(nèi)修改個性字符windows啟動項for OS in $OSPROBED ; do.if -z $LONGNAME ; thenLONGNAME=$LABELfi.cat 比如改為menuentry 啟動Windows XP EOFlinux啟動項linux)LINUXPROBED=linux-boot-prober $DEVICE 2 /dev/null | tr | paste -s -d .if -z $LLABEL ; thenLLABEL=$LONGNAMEficat 比如改為menuentry 啟動Mandriva EOFmacos啟
36、動項macosx)OSXUUID=grub-probe -target=fs_uuid -device $DEVICE 2 /dev/nullcat 比如改為menuentry 啟動MacOS EOF6)40_custom 自定義啟動項,按菜單標(biāo)準(zhǔn)格式在后面添加即可,如#!/bin/shexec tail -n +3 $0# This file provides an easy way to add custom menu entries.Simply type the# menu entries you want to add after this comment.Be careful no
37、t to change# the exec tail line above.menuentry 啟動 Veket set root=(hd0,8)linux /veket/vmlinuz root=/dev/ram0 PMEDIA=hdinitrd /veket/initrd.gzmenuentry 啟動 CDLinux set root=(hd0,8)linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8initrd /CDlinux/initrd3、把各項腳本修改保存后,在終端執(zhí)行sudo update-grub
38、再執(zhí)行sudo gedit /boot/grub/grub.cfg看看配置文件是不是和你想要的一樣了。如果有不夠滿意的地方,重新修改下腳本文件,再執(zhí)行sudo update-grub4、ubuntu和windows雙系統(tǒng),怎樣讓系統(tǒng)默認為從windows啟動在 /etc/grub.d目錄中的腳本文件的文件名都是以數(shù)字開頭,這確定了在執(zhí)行update-grub時各文件內(nèi)容被執(zhí)行的順序,我們只要把 30_os-prober這個文件名的數(shù)字30改為05到10之間的數(shù)字即可(沒多少可選06、07、08、09),比如改為08_os-prober,這樣創(chuàng)建出來的grub.cfg內(nèi)的菜單項,windows的
39、排序就會自動在ubuntu之前。五、使用grub2常見錯誤及修復(fù)方法1、雙系統(tǒng),重裝windows引起沒有ubuntu啟動項使用安裝版的windows重裝windows時會改寫mbr,造成grub丟失,可以用grub4dos引導(dǎo)進入ubuntu后修復(fù)grub或用livecd啟動后修復(fù)grub。1)用grub4dos修復(fù)ubuntu先下載最新版的grub4dos,下載地址對 于vista/win7系統(tǒng),把壓縮包內(nèi)的grldr.mbr和grldr復(fù)制到C盤根目錄下,在C盤自己建立一個boot.ini文件,若有boot隱 藏分區(qū)的,先給boot分區(qū)分配盤符,再把grldr,grldr.mbr和boo
40、t.ini放在boot分區(qū)下,boot.ini內(nèi)容如下:Win7使用軟改激活的請不要使用此方法,否則會造成win7不能啟動。使用軟改激活的請不要使用此方法,否則會造成不能啟動。然后在根目錄新建一個menu.lst,內(nèi)容為timeout 0default 0title grub2find -set-root /boot/grub/core.imgkernel /boot/grub/core.imgboot(有/boot分區(qū)的改為find set-root /grub/core.imgkernel /grub/core.img)重啟后選擇Grub4Dos會自動轉(zhuǎn)入grub2,從grub2菜單項選擇
41、ubuntu啟動后,在終端執(zhí)行sudo grub-install /dev/sda將grub裝入第一硬盤的mbr,如要裝入第二硬盤的mbr把sda改為sdb,第三硬盤為sdc,類推。至于要把grub裝到sda或sdb或sdc的mbr上,需根據(jù)自己情況確定,看看要設(shè)置哪一塊硬盤為啟動盤,就把grub裝到那塊硬盤的mbr上。2)用livecd修復(fù)grub用ubuntu9.10的livecd啟動后,打開終端假如你的ubuntu的 / 分區(qū)是sda7,又假如 /boot分區(qū)是 sda6,用livecd啟動,在終端下輸入sudo -imount /dev/sda7 /mntmount /dev/sda6
42、 /mnt/boot (如果沒 /boot 單獨分區(qū)這步跳過)grub-install -root-directory=/mnt/dev/sda和前面一樣,要裝入第二硬盤的把sda改為sdb。如果grub.cfg己丟失,或grub.cfg出現(xiàn)錯誤,需要重建的繼續(xù)執(zhí)行下面操作:mount -bind /proc /mnt/procmount -bind /dev /mnt/devmount -bind /sys /mnt/syschroot /mnt update-grubumount /mnt/sysumount /mnt/devumount /mnt/procexit3)用帶grub啟動的光
43、盤或U盤修復(fù)如果手上有g(shù)rub啟動的工具盤,用工具盤啟動,在grub菜單上按c進入命令行狀態(tài),在grub提示符下輸入grubfind /boot/grub/core.img (有/boot分區(qū)的用find /grub/core.img)(hdx,y) (顯示查找到的分區(qū)號)grubroot (hdx,y)grubkernel /boot/grub/core.img (/boot分區(qū)的用 kernel /grub/core.img)grubboot執(zhí)行boot后能轉(zhuǎn)入grub2菜單,啟動ubuntu后,再在ubuntu終端下執(zhí)行sudo grub-install /dev/sda (或sdb,s
44、dc等)修復(fù)grub。如果ubuntu的啟動分區(qū)使用ext4格式,要有支持ext4格式的grub才能修復(fù)。4)沒安裝引導(dǎo)器的 grub4dos引導(dǎo)ubuntu的方法按第一步的方法使用 boot.ini 建立grub4dos引導(dǎo)項,自己編寫 menu.lst,內(nèi)容如下timeout 3default 0title Ubuntu 9.10root (hdx,y)- (hd0x,y) 為 /boot分區(qū)的分區(qū)號kernel /vmlinuz-xxx-generic root=/dev/sdxy-/dev/sdxy 為 / 分區(qū)的分區(qū)號initrd /initrd.img-xxx-generic沒 /
45、boot 分區(qū)的用timeout 3default 0title Ubuntu 9.10root (hdx,y)kernel /boot/vmlinuz-xxx-generic root=/dev/sdxyinitrd /boot/initrd.img-xxx-generic2、安裝時grub沒裝在mbr上而選擇裝在linux分區(qū)的pbr上,怎么引導(dǎo)ubuntu1)按前面的方法一,以grub4dos引導(dǎo)轉(zhuǎn)入grub2。2)把ubuntu分區(qū)/boot/grub目錄下的boot.img提取出來,放到C盤根目錄下,然后修改boot.ini,在最后添加一行C:boot.img=grub2對vista
46、/7可在C盤新建一個boot.ini,內(nèi)容為boot loadertimeout=0default=c:boot.imgoperating systemsc:boot.img=grub2重啟后選擇grub2就可進入grub2菜單。此法兼容性較差,成功率低,僅供測試。3、由于分區(qū)調(diào)整引起分區(qū)號或分區(qū)UUID改變造成的grub2不能正常啟動己安裝好系統(tǒng),對硬盤再次進行分區(qū)調(diào)整時可能會改變現(xiàn)有分區(qū)的分區(qū)號發(fā)生變化,或者某種原因改變啟動分區(qū)的UUID,都會造成grub2不能正常啟動,而啟動進入修復(fù)模式(grub rescue),這時就要對grub進行修復(fù)。1)用ubuntu9.10的livecd光盤啟
47、動,進入試用桌面系統(tǒng)后,再修復(fù)grub,操作方法如第一種情況的第二種方法2)在rescue模式下啟動并修復(fù)由于分區(qū)問題,啟動時會自動進入rescue模式,只要grub核心文件還在分區(qū)內(nèi),就能由rescue模式轉(zhuǎn)到normal模式,進而通過命令進入系統(tǒng)。下面這個就是rescue介面:由于在rescue模式下,只有少量的基本命令可用,必須通過一定的操作才能加載正常模塊,然后進入正常模式。rescue模式下可使用的命令有:set,ls,insmod,root,prefix(設(shè)置啟動路徑)先假設(shè)grub2的核心文件在(hd0,8)分區(qū),再來看看怎樣從rescue模式進入從(hd0,8)啟動的正常模式(
48、normal)。在rescue模式下search命令不能用,對不清楚grub2文件處于哪個分區(qū)的,可以用ls命令查看,比如ls (hd0,8)/ 查看(hd0,8)分區(qū)根目錄,看看有沒有boot文件夾ls (hd0,8)/boot/ 查看(hd0,8)分區(qū)的/boot目錄下文件ls (hd0,8)/boot/grub/ 查看(hd0,8)分區(qū)/boot/grub目錄下文件通過文件查看,可以確定grub2核心文件處于哪個分區(qū),接下來就可以進行從rescue到normal的轉(zhuǎn)變動作:先 ls 看看分區(qū),根據(jù)分區(qū)列表,猜下 / 分區(qū)的編號再 ls (hd0,x)/ 看分區(qū)目錄下文件確定找到 / 分區(qū)
49、,不對的話繼續(xù)找。找到 / 分區(qū)的 (hd0,x) 繼續(xù)grub rescueroot=(hd0,x)grub rescueprefix=/boot/grubgrub rescueset root=(hd0,x)grub rescueset prefix=(hd0,x)/boot/grubgrub rescueinsmod normalrescuenormal-若出現(xiàn)啟動菜單,按c進入命令行模式rescuelinux /boot/vmlinuz-xxx-xxx root=/dev/sdaxrescueinitrd /boot/initrd.img-xxx-xxxrescueboot內(nèi) 核版本號
50、 -xxx-xxx可以按Tab鍵查看后再手動補全。有 /boot分區(qū)的,要先找出 /boot 分區(qū) (hd0,x),再找出 / 分區(qū)的 (hd0,y),同樣用 ls(hd0,x)/ 和 ls (hd0,y)/ 的方式確定分區(qū)grub rescueroot=(hd0,x)grub rescueprefix=/grubgrub rescueset root=(hd0,x)grub rescueset prefix=(hd0,x)/grubgrub rescueinsmod normalrescuenormal-若出現(xiàn)啟動菜單,按c進入命令行模式rescuelinux /vmlinuz-xxx-xx
51、x root=/dev/sdayrescueinitrd /initrd.img-xxx-xxxrescueboot說明:1)由于grub2版本的的不一致,有的可能在第9步insmod normal.mod加載正常模塊后直接進入normal模式,即出現(xiàn)了normal grub的提示符,這種情況就不能執(zhí)行第10步,即可以跳過normal命令的輸入。2)雖然輸入normal命令會出現(xiàn)菜單,但由于缺少加載內(nèi)核的Linux命令,直接從菜單不能進入系統(tǒng),需要按c在命令行繼續(xù)操作。3)使用/boot單獨分區(qū)的,要正確修改路徑,如prefix=(hd0,8)/grubinsmod /grub/normal.
52、mod另外root=/dev/sda8也要修改根分區(qū)的分區(qū)號。4)按boot啟動系統(tǒng)后,再在系統(tǒng)下打開終端,執(zhí)行命令修復(fù)grub重建配置文件grub.cfgsudo update-grub重建grub到第一硬盤mbrsudo grub-install /dev/sda4、雙硬盤雙系統(tǒng) Grub Loading時間過長的解決方案grub2的boot.img設(shè)定root的uuid從第一分區(qū)開始搜索分區(qū)的/boot/grub下的模塊并加載, 如果linux分區(qū)處于第二硬盤甚至第三硬盤,會導(dǎo)致搜索時間過長而,出現(xiàn)菜單時間會長達10多秒。對雙(多)硬盤的情況建議把grub安裝在ubuntu所在硬盤的mbr上,/boot分區(qū)或 / 分區(qū) 盡量靠前,并設(shè)該硬盤為啟動盤,會大大縮短啟動時間。5、重復(fù)一下,單linux系統(tǒng)或硬盤安裝時iso放在C盤,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年掌控中考復(fù)習(xí)配套課件:第九單元溶液
- 《老人與?!氛n件
- 2024年阿壩職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 單位管理制度集合大全【人力資源管理篇】
- 單位管理制度分享合集【人員管理】十篇
- 單位管理制度范文大合集【員工管理】十篇
- 單位管理制度呈現(xiàn)大全【人事管理篇】十篇
- 《詩五首》教案設(shè)計
- 第7單元 工業(yè)革命和國際共產(chǎn)主義運動的興起(高頻選擇題50題)(解析版)
- UFIDAU培訓(xùn)課程委托代銷
- 高職建筑設(shè)計專業(yè)《建筑構(gòu)造與識圖》說課課件
- 《國珍產(chǎn)品介紹》
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術(shù)規(guī)范
- 《高速鐵路客運乘務(wù)實務(wù)(活頁式)》全套教學(xué)課件
- 2024(部編版)道德與法治九年級上冊 第二單元 民主與法治 單元測試(學(xué)生版+解析版)
- 醫(yī)療護理員基礎(chǔ)理論知識考試試題題庫及答案
- 2024年高考英語詞匯表-帶音標(biāo)
- 墊底辣妹教育學(xué)思考(3篇模板)
- 框架結(jié)構(gòu)設(shè)計國內(nèi)外研究現(xiàn)狀
- 創(chuàng)新人才認證(解決方案)考試題庫(附答案)
- 新質(zhì)生產(chǎn)力-講解課件
評論
0/150
提交評論