linux出現grub
❶ linux出現grub
解決的辦法,如下: 首先確定自己當初在安裝linux時有沒有創建/boot分區:
1、如果當初裝系統時創建了/boot分區,那麼先輸入:
grub rescue>ls
屏幕上會顯示很多個分區,例如:
sda:(hd0,msdos1),
(hd0,msdos2),
(hd0,msdos3),
(hd0,msdos4)......
然後輸入ls (hd0,msdos*)/
找出哪一個是/boot的分區
<註:*是一個通配符>
直到嘗試某一個數字,假設是6,(我的電腦就是6)後有顯示:
.../grub.../grub2
如果電腦是fedora16,17,那麼下面的代碼就是這樣:
grub rescue>root=(hd0,msdos6)
grub rescue>prefix=/grub2
grub rescue>set root=(hd0,msdos6)
grub rescue>set prefix=(hd0,msdos6)/grub2
grub rescue>insmod normal
grub rescue>normal
然後就進入了熟悉的grub界面,就能夠順利的引導系統了 (因為fedora16,17後就是用grub2了,原來的grub是不行的)
如果是其他的系統(ubuntu......)則好像是grub
因為本人的是fedora17的系統,所以對ubuntu不是很清楚,但當你無奈的時候可以嘗試一下
2、如果當初沒有創建/boot分區,那麼:
雖然也是使用的ls (hd0,msdos*)/命令,但是這回查找的就不是/boot分區,而是/主分區了
使用ls (hd0,msdos*)/,直到下面顯示有: ......./boot......
假設主分區是7,(我的電腦是7) 若是fedora16,17系統 那就應該輸入如下命令:
grub rescue>root=(hd0,msdos7)
grub rescue>prefix=/boot/grub2
grub rescue>set root=(hd0,msdos7)
grub rescue>set prefix=(hd0,msdos7)/boot/grub2
grub rescue>insmod normal
grub rescue>norma
然後就ok了。
請注意:fedora16,17一定是grub2,而不是grub,網上有很多都是說的grub,應該是針對別的linux而言的
當進入了自己的linux系統之後,還得要更新一下自己的grub,如果不更新的話以後每次開機時都需要輸入這么一大段代碼
❷ 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正常會自動區分uefi和mbr的bios不同引導方式,只有linux時出了grub很可能引導缺失文件或者root下的/boot有嚴重問題。有條件掛livecd進去看看。
❹ 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
用其它機器新建一個空白文本文檔,將下面的內容復制進該文檔裡面後保存,然後將其更名為menu.lst。
用U盤啟動電腦,將這個文件拷貝到那個電腦的xp系統盤的根目錄里(假設win系統是xp,要是是win7,就麻煩了,將磁碟分區狀況和系統安裝的狀況等用追問告訴我吧)。
重啟,即可。
timeout
3
default
0
title
啟動
HDD
NT
&
XP
find
--set-root
/ntldr
chainloader
/ntldr
❻ linux啟動出現grub
解決過程[以RedHat 7.3為例] 1.把安裝盤的第一張放到光碟機,然後重新啟動機器,在BOIS中把系統用光碟機來引導。 2.等安裝界面出來後,按[F4]鍵,也就是linux rescue模式。 3.一系列鍵盤以及幾項簡單的配製,過後就[繼續]了。。。這個過程,我不說了,比較簡單。 4.然後會出現這樣的字元 sh# 5.我們就可以操作GRUB了。哈。只要能出現這樣的,以後都是小KISS了 sh#grub 會出現這樣的字元 grub> 我們就可以在這樣的字元後面,輸入 grub>root (hdX,Y) grub>setup (hd0) 如果成功會有一個successful... 這里的X,如果是一個盤,就是0,如果你所安裝的linux的根分區在第二個硬碟上,那X就是1了;Y,就是裝有linux系統所在的根分區。 setup (hd0)就是把GRUB寫到硬碟的MBR上。 我來舉個例子吧,如果以我的硬碟為例。我在第一個硬碟上裝了XP,在第一個硬碟的hda9個裝了RH73.我總共有兩個硬碟。如果我把GRUB丟了,就用這種辦法找回來。 如果你不知道你的linux安裝到哪個分區上,也就是說,不知道這個Y是多少,這也不要緊,先輸入root (hdX,然後用[TAB]來查看,一下就明白了... 操作如下:[前面開機啟動的上面有說明] sh# grub 會出現下面的字樣的 grub> 然後再這樣操作,如果我知道我的linux裝在第一個硬碟上,但我不知道裝在哪個分區上,就可以先輸入root (hd0,然後用[TAB]鍵來補齊,然後就明白了。 [code:1:3249bf1c31] grub>root (hd0,8) grub>setup (hd0) [/code:1:3249bf1c31] 請弟兄們結合文章及這個例子,仔細想一想。 我的第一個硬碟的分區情況是這樣的。。 /dev/hda1 主分區 NTFS /dev/hda2 擴展分區 /dev/hda5 NTFS /dev/hda6 FAT /dev/hda7 FAT /dev/hda8 /boot ext3 /dev/hda9 / ext3 /dev/hda10 /swap ext3 最後就是按一下[RESET]鍵,重新啟動,就OK了。。。。
❼ 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命令退出就可以了,至於圖片,我就不上了,絕對是可以的。