1. 程式人生 > >grub rescue模式下啟動並修復

grub rescue模式下啟動並修復

今天再次遇到grub修復問題,以前也遇到過一次。 我裝的ubuntu 10.04和window 7的雙系統,預設的系統啟動項是Ubuntu。因為第一次裝Ubuntu的時候只劃了15G(對於長期使用Linux的人來說 o(∩∩)o...知道很小啦),於是就直接在windows系統下把裝Ubuntu的那個分割槽刪除了~~這下。。慘了,windows系統啟動不起來了~~grub又不會修復,在網上找的東東又不管用。。當時真是無語了,然後就求助別的童鞋。用WINPE修復了grub。 我這個人不知道要求甚解,於是修好了就修好了~~繼續玩去了~    一個跟頭不能栽兩次,這次我想裝meego系統,所以就又給windows分割槽了,這樣由於window分割槽的碎片和Linux分割槽碎片不相容,於是乎~~我再次進入到那個黑框框中~~敲神馬命令都是"Unknown Command",除了ls~~列出了一些貌似分割槽的(hd0),(hd0,8)等等~~(當然啦`這是因為我當時不會嘛,而且grub rescue和grub的命令也不太一樣麼)。。但是~~~這次。。我決定自己折騰一下,解決問題。。在網上找到一個所謂的完美解決方案~~但是結果是。。依然不行。。其實人家童鞋的解決方案是對的,只是不適合我的這種情況罷了。還有就是對於我這個對grub命令瞭解為0的菜鳥來說,照著他給的命令敲也不曉得是神馬意思。。。。 不過還好啦,以前有學長給過一些很詳細的grub基礎教程的pdf,所以我就小學習了一下,如何在rescue模式下啟動並修復grub,當然你也可以用當時你安裝系統的光碟修復grub,在這裡,我只簡單的說一下如何在rescue模式下啟動並修復吶~~好滴~~進入正題:(我嘚廢話好多哈) 由於分割槽問題,啟動時會自動進入grub rescue模式,一般會顯示如下內容:
  1. error: unknown filesystemgrub rescue >
一般只要grub核心檔案還在分割槽內,我們就能由rescue模式轉換到normal模式下,進而通過命令進入系統。 在rescue模式下,只有一下命令可用(我覺得最讓我不解的是為什麼木有help命令?為神馬?是我不知道麼?):
  1. set---設定變數值(同grub2命令)ls--- 列出當前的所有裝置。 e.g:(hd0) (hd0,1) (hd0,8) (hd0,7) and so on這個命令可以有引數:ls / 列出當前設為root的分割槽下的檔案ls (hd0,1)/ 列出(hd0,1)分割槽根目錄的檔案insmod --- 載入模組normal --- 進入正常模式(只有模組載入正確了才能進入normal模式)
因為在rescue模式下,木有search命令,所以我們就用ls命令來檢視grub2檔案處於那個分割槽
  1. e.g: grub rescue> ls (hd0)/ error: unknown filesystem /*可以用此命令挨個兒的遍歷ls顯示的所有裝置,直到列出的目錄檔案,就說明grub2的核心檔案在此分割槽了*/
我看了很多帖子,嗯,發現大家的grub2核心(core.img)檔案都在(hd0,8)分割槽,不曉得是不是巧合(這個我木有深究阿),反正我的也是在(hd0,8)這個分割槽 /* ok. 小小的記錄一下,我剛才有故意給windows分割槽,把grub搞壞了,這次裝置列表裡木有(hd0,8)  * 嗯嗯,,是(hd0,6)看來是巧合咯  */
  1. ls (hd0,8)/                /* 檢視(hd0,8)分割槽根目錄,看有木有boot/ 資料夾*/ls(hd0,8)/boot/          /*檢視此分割槽的/boot/目錄檔案,能看到有grub/資料夾*/ls(hd0,8)/boot/gurb/     /*檢視此分割槽/boot/grub/目錄下的檔案,能看到很多.mod格式的檔案還有.img檔案 */
這樣確定了grub2的核心檔案在哪裡之後,我們就開始轉換工作咯:
  1. grub rescue> set(回車)                  /* 檢視grub當前的啟動分割槽和路徑 */prefix=(hd0,8)/grub                    /* 確定預啟動路徑 */root=hd0,8                             /* 確定啟動分割槽 */grub rescue> set root=hd0,8            /* 設定grub啟動分割槽 */grub rescue> set prefix=(hd0,8)/boot/grub       /* 設定grub啟動路徑 */grub rescue> set(回車)                 /* 檢視grub設定內容是否和實際的分割槽路徑一致 */root=hd0,8                            /* 確定啟動分割槽 */prefix=(hd0,8)/boot/grub              /* 確定啟動路徑 */grub rescue> insmod /boot/grub/normal.mod /* 剛才在檢視分割槽/boot/grub/目錄檔案時,要注意看看是否有normal.mod檔案,木有的話,此命令後會提示找不到此檔案*/ grub rescue> normal                  /* 載入正常模組 */
/*以上操作成功後,我們就會進入正常模式,就能看到熟悉的grub啟動選單了*/ 通常情況下,當我們進入到grub啟動選單後,就直接可以選擇進入系統。然後更新重建grub。 但是有些人可能會碰到這種情況,雖然進入了normal模式出現啟動選擇選單,卻依然不能進入系統,這是由於缺少載入核心的Linux命令,直接從選單不能進入系統。(請直接進入下面操作,因為緊接著我有點跑題咯~如果你急著解決問題的話) 還有一種情況,就是你更新過核心,所以會像我的啟動選單一樣會有很多個不同核心的啟動項,由於我的本本裝的是Ubuntu10.04+win7,預設系統啟動項為Ubuntu,這樣如果我要進Win7就必須跳過好幾個核心啟動項,多麻煩阿~~~手疼~~o(∩∩)o... 對此我的解決方法是把/boot/grub/grub.cfg中的其他Ubunut核心啟動項用“#”註釋掉。但是這樣的問題就是一旦你更新了grub,那麼其他的核心映象又會被搜到,於是就又造成了so長的啟動項選擇選單。 有學長說,可以用命令移除舊版本的核心映象,不過這個,現在我暫時還木有去找。等知道了,再補上來~~ 好吧,回到我們的進入正常模式載入Linux核心模組問題。我想對於上面我說的多箇舊版本的核心映象,這時候你就可以使用下面的操作,載入指定的核心映象。 如果不能直接進入系統請繼續下面的操作: 進入正常模式後,出現我們熟悉的系統啟動項選擇選單,此時需要按c,進入命令列然後載入linux模組
  1. normal grub> insomd /boot/grub/linux.modnormal grub> set root=hd0,8                          /* 確定正常啟動分割槽 */normal grub> linux /boot/vmlinuz-* root=/dev/sda8
(注:*是萬用字元哦,此處可以以tab鍵檢視具體核心版本映象)                                               /* 載入核心並確定 /(根)分割槽 */normal grub> initrd /boot/initrd.img-* (同上)      /* 載入initrd.img */normal grub> boot boot啟動系統後,開啟終端,執行命令修復grub(建議以root使用者登入吧,或者直接切換到root使用者,這樣操作方便些 )
  1. [email protected]:~# update-grub                         /* 更新重建grub.cfg grub配置檔案 */[email protected]:~# grub-install /dev/sda               /* 重建grub到第一硬碟mbr */
注: 1.命令grub-install /dev/sda 是將grub裝入第一硬碟的mbr,如果要裝入第二硬碟的mbr則把sda改為sdb即可,第三第四分別為sdc,sdd等。至於要把grub裝到那個硬碟的mbr上,根據自己的實際情況而定,主要是看要設定哪一塊硬碟為啟動盤,就把grub裝到哪個硬碟的mbr上。 2.分割槽號例(hd0,8)單獨使用時可以不加括號,在使用路徑時必須加括號; 3.由於我在裝Ubuntu 10.04時沒有使用/boot單獨分割槽,直接就一個/分割槽就完了,如果你使用了/boot單獨分割槽了,那麼就應該修改路徑: prefix=(hd0,8)/grub insmod /grub/normal.mod root=/dev/sda8 也要修改跟分割槽的分割槽號
1:1.Ubuntu Grub Rescue 雙系統重灌Windows造成grub2被改寫的修復
       grub4Dos0.4.4    在Windows啟動項上加上grub4dos啟動(不多說了,看置頂貼),重啟選擇進入grub,在命令列下輸入(/boot單獨分割槽的去掉 /boot)
程式碼:
grub>find --set-root /boot/grub/core.img
grub>kernel /boot/grub/core.img
grub>boot
進入grub2選單,進入系統後再執行
程式碼:
sudo grub-install /dev/sd?
Ubuntu Grub Rescue方法二 進入Livecd 後修復
引用:
sudo -i
mount 你的根分割槽 /mnt
mount 你的/boot 分割槽 /mnt/boot #如果有的話
#掛載你其他的分割槽,如果有的話
# 重建grub到sda的mbr
grub-install --root-Directory=/mnt /dev/sda

2:Ubuntu Grub Rescue由於root分割槽uuid改變造成的不能正常啟動,只能進入grub rescue模式的修復
grub rescue>set  grub rescue>prefix=(hd?,?)
/grub  grub rescue>root=hd?,?  
grub rescue>set root=hd?,?  
grub rescue>set prefix=(hd?,?)/boot/grub  
grub rescue>set  
grub rescue>root=hd?,?  
grub rescue>prefix=(hd?,?)/boot/grub  
grub rescue>insmod /boot/grub/normal.mod  
grub rescue>normal  
這時就可以調出 /boot/grub/grub.cfg,修改相應uuid,
改到命令列下
grub>insmod /boot/grub/linux.mod  grub>set root=hd?,?  
grub>linux /boot/vmlinuz-*** root=/dev/sd??  
grub>initrd /boot/initrg.img-****  進入系統
hd?,? 是grub檔案所在分割槽 sda? 是/分割槽。

3:grub模組和配置檔案grub.cfg受損無法啟動時修復
Livcd啟動進入試用
引用:
sudo -i
mount 你的根分割槽 /mnt
mount 你的/boot 分割槽 /mnt/boot #如果有的話
# 掛載你其他的分割槽,如果有的話
# 重建grub到sda的mbr
grub-install --root-directory=/mnt /dev/sda
# 重建grub.cfg
mount --bind /proc /mnt/proc  
mount --bind /dev /mnt/dev  
mount --bind /sys /mnt/sys  chroot /mnt update-grub  
umount /mnt/sys  
umount /mnt/dev  
umount /mnt/proc



Ok~~Now we have already made it. Enjoy your OS~!

相關推薦

grub rescue模式啟動修復

今天再次遇到grub修復問題,以前也遇到過一次。 我裝的ubuntu 10.04和window 7的雙系統,預設的系統啟動項是Ubuntu。因為第一次裝Ubuntu的時候只劃了15G(對於長期使用Linux的人來說 o(∩∩)o...知道很小啦),於是就直接在windows

grub rescue模式啟動修復

   grub rescue 模式下啟動和修復      重灌系統和刪除分割槽之後,可能導致系統啟動出現問題,重啟系統後容易進入到 grub rescue模式。筆者前一段時間由於需要,裝了雙系統(Win8和Ubuntu13.10)。

解決deepin開機進入grub rescue> ,無法啟動修復開機引導

導致deepin無法正常啟動的來由 win10 系統更新, 覆蓋式更新,修復了自己的引導,損壞了deepin的引導 報錯 正常啟動deepin 進入 grub rescue> 模式,報錯 not find systemfile 解決

Linux(rescue模式)修復fstab文件造成系統無法啟動解決

掛載 bsp rom 工作 單用戶模式 資料 adding 模式 mnt 新添加了一個硬盤sdb1,將其掛載到/mnt/cdrom下,為了在啟動服務器時能自動掛載,修改了/etc/fstab文件,導致啟動時報無法掛載錯誤,進入repair filesystem模式後,想要修

win7 ubuntu 雙系統啟動grub rescue模式,error:file "/boot/grub/i386-pc/normal.mod" not found

昨天裝的雙系統,win7下F盤為3g,太礙眼了,於是用分割槽助手,把F盤合併到E盤。再開機就出現題目所示的error,哪個系統也進不了。估計是開機引導項出了問題,下面是我的解決過程: 1、用boot-repair修復,修復後可以進入ubuntu系統。連結中有下載源和教程。 https

華為服務器通過mgmt口掛載光盤裝系統及Linux系統rescue模式修復內核

文件 process color grub.con scu 繼續 報錯 java 退回 Linux系統rescue模式下修復內核和grub 故障現象 處理思路,內核報錯,因此重新安裝內核,通過光盤啟動,進入救援模式。1.進入救援模式(1)華為服務器沒有光驅,通過mgmt管理

CentOS 7在grub rescue模式修復系統

安裝完CentOS 7後 修改硬碟分割槽後,系統重啟後,無法正常啟動,進入grub rescue模式;  網上大多數centos grub rescue的資料應該是Centos 7之前的,其中提到的命令很多使用的目錄是grub,而在7中,這裡應該替換成grub2; 另外no

visio開啟提示上一次開啟失敗,需在安全模式啟動解決方案

  今天visio不知道怎麼了,之前好好的,突然不能用了,提示需要在安全模式下啟動。點選了是也還是沒有啟動,修復和重新安裝了幾次也不行。 後面百度到解決“WORD上次啟動時失敗,以安全模式啟動”方法 這篇文章解決了問題。   解決方案: 使用everythin

如何在救援(單使用者模式)/緊急模式啟動 Ubuntu 18.04/Debian 9 伺服器 | Linux 中國...

將 Linux 伺服器引導到單使用者模式或救援模式是 Linux 管理員在關鍵時刻恢復伺服器時通

IDEA Debug模式啟動慢的解決辦法

工程沒有做什麼大的改動,近期Idea在debug模式下啟動耗時800s +,run模式下200s。Idea debug模式啟動的時候會有這樣的提示: 方法斷點會戲劇性的降低debug的速度。當時並沒有在意,因為並不清晰這個方法斷點是個什麼概念。。。。。看

Tomcat在debug模式啟動,使用eclipse監聽

在tomcat的startup.bat下面,用文字編輯器開啟在if "%OS%" == "Windows_NT" setlocal 下面加入如下程式碼SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NON

tomcat在debug模式啟動超時的解決辦法

打好斷點之後debug模式啟動,過去10分鐘遲遲沒有啟動成功 經過百度: eclipse和tomcat 啟動之後 讀取檔案失敗,or,eclipse自動設定斷點(或者以前打的斷點沒取消影響了啟動) 解決辦法: 在debug頁面 ,右上角的介面, 開啟breakpo

Ubuntu系統開機進入grub rescue模式解決辦法

Ubuntu系統開機後進入"grub rescue>"模式?肯定是grub開機管理程式出問題了,出現這種問題也不用急著重灌系統,還有解救辦法。下面我就描述下自己的經歷吧。 我們有10臺普通PC機用作伺服器(OS為Ubuntu 12.04 LTS),之前安裝系統的時候沒

Grub Rescue修復Ubuntu引導新增window 7啟動

背景:最早安裝的win7,然後通過wubi安裝的Ubuntu。 前天,中秋節,突然發現win7的啟動項沒有了,於是開始查詢如何在/boot/grub/menu_lst檔案中,新增啟動項,無奈各種不好使。 不過現在好使了。。。 sudo gedit /boot/grub/me

grub legacy練習 之破壞MBR中的Bootloader,而後在救援模式修復

修復centos啟動1. 用dd命令對grub進行破壞2.然後重啟,鏡像位置選擇正確後,會出現下圖界面,點擊Rescue救援模式進行救援;3.跳過網卡設置,直接選擇Continue選項進行救援;4.點擊OK5.點擊OK5.然後出現下邊的命令行,輸入命令之後,如圖(quit錯誤,是exit)6.出現如圖所示開

安裝glibc錯誤鏈接導致系統崩潰,u盤啟動緊急救援模式修復系統。

-bash 回車 符號 根目錄 image ali 崩潰 mbo config Sln 命令 創建動態符號鏈接 用法 sln source dest 故障案例:一個誤操作 導致了一個不小的故障,輸入所有命令都無效,直接系統無法啟動。 故障描述 sln /

Ubuntu 開機出現 grub rescue> 終端模式修復方法

1.  先使用ls命令,找到Ubuntu的安裝在哪個分割槽:      grub rescue>ls      會羅列所有的磁碟分割槽資訊,比方說:      (hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1) 2. 然後依次呼

Centos 6中模擬破壞MBR救援模式修復

mbr 救援模式 破壞 MBR(Master Boot Record,主引導記錄),它的前446字節存放Boot Loader啟動管理程序,由Boot Loader去識別、加載操作系統中的核心文件,並向使用者提供不同的啟動項目,來加載不同的操作系統。所以,若是我們破壞了MBR,也就意味著沒有了引導

Windows安裝啟動mongodb

mon custom out install 自定義 path 管理器 unit window 一、Windows下mongodb的安裝 MongoDB 提供了可用於 32 位和 64 位系統的預編譯二進制包,你可以從MongoDB官網下載安裝,MongoDB 預編譯二進制

win10安裝啟動zookeeper

mod null ren per ons form jline Opens mysq   下載直接到zk的官網(zookeeper.apache.org)即可,點擊右邊的Releases,在Download下再點Download進入鏡像下載頁面,在給出的鏈接列表裏選擇一個鏡