Ubuntu——grubrescue主引导修复

橙子系统为您提供长期使用windows和ubuntu双系统的人,很有可能碰到重装某一个系统,或者另外添加分区,导致系统重启出现:
GRUBloading
error:unknowfilesystem
grubrescue>
一.概念
BIOS:"BasicInputOutputSystem",中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
MBR:“MasterBootRecord”硬盘的物理扇区,也叫主引导记录!因为BIOS很小无法承载启动的运行程序,所以在bios检测到一个硬盘后,将硬盘的0柱面、0磁头、1扇区的内容经过简单判断后,至内存中的指定位置,然后跳转至这个位置,开始从这个位置运行,大小为512个byte,其中主要存放引导程序和该硬盘的分区表。
GRUB:“GRandUnifiedBootloade”多重操作系统启动管理器,就是运行这个GRUB之后可以通过它来引导进入其它的系统,包括window以及linux
上面三个概念,从字面意思上应该能明白他们的流程,大体是:
PC首先启动到BIOS,然后检测硬盘的MBR,将MBR这块扇区的内容(也就是写在上面的GRUB)装入内存运行,再通过运行GRUB得到的结果实现新的跳转启动!
二.Ubuntu的grub2修复
当PC是先装windows后装ubuntu或者只有一个ubuntu系统,是将ubuntu系统自带的grub2引导程序写在了MBR上的话,那么开机的主引导程序就是grub2!(ubuntu自9.10之后就全部使用的grub2)
而grub2分为两部分,其中一部分写入MBR,其中一部分存在与ubuntu的/boot/grub目录下。
而出现grubrescue>就是代表MBR部分的无法正常运作grub程序,启动grub救援模式,因为无法找到/boot/grub部分。
grubrescue下可用命令:
set,ls,insmod,root,prefix(设置启动路径)
首先通过ls查看所有的分区,会列出:
(hd0),(hd0,msdos8),(hd0,msdos7),(hd0,msdos6),(hd0,msdos5),(hd0,msdos3),(hd0,msdos1)
需要找到ubuntu的安装分区,通过ls(hd0,msdos*)/boot直到不出现:error:unknownfilesystem
如果知道开始安装ubuntu在哪个分区的话,比如sda7那么这里就是msdos7,如果是在ubuntu硬盘空间之前的地方进行了添加分区,那么就把ubuntu的分区序号往后移!变成msdos8
找到之后通过如下命令设置设置一次性启动参数:
grubrescue>setroot=(hd0,msdos8)
grubrescue>setprefix=(hd0,msdos8)/grub
grubrescue>insmod/grub

rmal.mod
grubrescue>normal就会出现boot/grub中的启动界面了!
如果/boot/grub没有损坏,就能进入ubuntu系统啦,如果grub启动ubuntu的部分损坏了,就需要手动引导了:
进入grub命令行:
grub>root(hd0,8)##指定包含vmlinuz-2.6.18-274.7.1.el5和initrd-2.6.18-274.7.1.el5.img的partition
grub>kernel/boot

mlinuz-2.6.18-274.7.1.el5roroot=/dev/sda8##root=是指定包含/sbin/init的partition,即挂载/的partition(以Linux的角度)
grub>initrd/boot/initrd-2.6.18-274.7.1.el5.img##据说这项可以省略
grub>boot
在正确进入了ubuntu之后,需要更新MBR的grub部分来适应新的分区情况:
终端输入:
sudoupdate-grub2
sudogrub-install/dev/sda
更新到/boot/grub/grub.cfg中!然后再把grub安装到主硬盘的MBR
有遇到过这样安装不成功的,在GRUB2手册中有另外的重装grub2到MBR的方法,记录一下:
此方案安裝會使用chroot指令來存取受損系統的檔案。
一旦執行了chroot指令,LiveCD會將損壞系統的/(根目錄)當作是目前自己所使用的。
在chroot環境中執行的指令會影響受損系統的檔案系統,而不是LiveCD的。
1.開機進入LiveCD桌面(Ubuntu9.10或更新版)。注意此LiveCD必須要與您現在欲修復系統的版本相同-無論32-bit或是64-bit(否則chroot會失敗)。
2.開啟終端機-應用程式,附屬應用程式,終端機。
3.確認您的標準系統分割區-(選項是小寫的「L」)
sudofdisk-l
若您不確定,執行
df-Th
找到正確的磁碟容量及ext3或ext4格式。
4.掛載您的標準系統分割區
用正確的分割區替換:sda1,sdb5等等。
sudomount/dev/sdXX/mnt#範例:sudomount/dev/sda1/mnt
5.若您有獨立的/boot分割區:
sdYY是/boot分割區的位置(例如sdb3)
sudomount/dev/sdYY/mnt/boot
6.掛載重要的虛擬檔案系統:
sudomount–bind/dev/mnt/dev
sudomount–bind/dev/pts/mnt/dev/pts
sudomount–bind/proc/mnt/proc
sudomount–bind/sys/mnt/sys
7.Chroot至您的標準系統裝置:
sudochroot/mnt
8.若系統中沒有/boot/grub/grub.cfg或其內容不正確,使用以下指令重建
update-grub
9.重新安裝GRUB2:
以正確裝置替換-sda,sdb,等等。不要指定分割區號碼。
grub-install/dev/sdX
10.驗證安裝(使用正確的裝置,例如sda。不要指定分割區):
sudogrub-install–recheck/dev/sdX
11.退出chroot:按下鍵盤之CTRL-D
12.卸載虛擬檔案系統:

sudoumount/mnt/dev/pts
sudoumount/mnt/dev
sudoumount/mnt/proc
sudoumount/mnt/sys
若您有掛載獨立的/boot分割區:
sudoumount/mnt/boot
13.卸載LiveCD的/usr目錄:
sudoumount/mnt/usr
14.卸載最後的裝置:
sudoumount/mnt15.重新開機。sudoreboot  
  
以上就是橙子系统给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击橙子系统官网吧。

本文来自橙子系统http://www.czgho.com/如需转载请注明!推荐:win7纯净版

© 版权声明
THE END
喜欢就支持一下吧
点赞36 分享