ubuntu 13.04 找回丢失的grub2

先恶补一下grub知识:
启动过程 计算机启动后,BIOS将寻找第一个可启动的设备(通常为硬盘),而后从MBR中载入启动程序,然后把控制交给这段代码。MBR位于硬盘的前512字节内。 GRUB 第一版本 GRUB的步骤1包含在MBR中。由于受MBR的大小限制,步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载步骤2,也可以装载步骤1.5:GRUB的步骤1.5包含在MBR后面的30千字节中。步骤1.5载入步骤2。 当步骤2启动后,它将呈现一个界面来让用户选择启动的操作系统。这步通常采用的是图形菜单的形式,如果图形方式不可用或者用户需要更高级的控制,可以使用GRUB的命令行提示,通过它,用户可以手工指定启动参数。GRUB还可以设置超时后自动从某一个内核启动。 GRUB 第二版本 与GRUB 第一版相似的是,boot.img像步骤1一样在MBR或在启动分区中,但是,它可以从任何LBA48地址的一个扇区中读取,它(boot.img)将读取core.img(产生于diskboot.img)的第一个扇区以用来后面读取core.img的剩余部分。core.img正常情况下跟步骤1.5储存在同一地方并且有着同样的问题,可是,当他被移动到一个文件系统或一个纯粹的分区时会比在步骤1.5移动或删除引起更少的麻烦。 一旦完成读取,core.img会读取默认的配置文件和其他需要的模块。 当GRUB启动后 一旦选择了启动选项,GRUB把选择的内核载入内存并把控制交给内核。在此步骤中,对于Windows之类不支持多启动标准的操作系统,GRUB也可以通过链式启动把控制传给其它启动器。在这种情况下,其它操作系统的启动程序被GRUB保存了下来;与内核不同,其它操作系统如同直接自MBR启动。类似Windows的启动菜单,也许是另一个启动管理器,它允许在多个不支持多启动的操作系统中做进一步的选择。(在已有Windows的系统上面,或者包含多个Windows版本的系统上安装现代的Linux而不修改原操作系统,即属于这类情况。)  
GRUB2 下一代 GRand Unified Bootloader (GRUB)。 GRUB2 来自下一代 GRUB 研究项目 PUPA,代码全部重写,实现了模块化和增强了移植性。 简单的说,启动引导器是电脑启动时第一个运行的程序。负责装载内核并将控制权转入。内核再初始化操作系统的其它部分。 GRUB 和 GRUB2 的内置命令有所不同(例如 "find" 已经变成 "search") GRUB2 已经模块化,不再需要"stage 1.5"。所以,启动引导器可以变得很小 -- 模块按需从硬盘导入以扩展功能。(例如LVM 或 RAID 支持)。 GRUB 和 GRUB2 的分区命名有变化。分区从 1开始编号,并以分区类型开始,原来是从 0 开始编号。注意:磁盘还是从 0 编号。例如,/dev/sda1应该是 (hd0,msdos1) (用于MBR) 或 (hd0,gpt1) (用于 GPT)。
········································可爱的分隔线···············································································

前面说了这么多,其实就是一句话:grub是在硬盘的第一个扇区放系统引导的,不管你有多少个系统,首先由它引导才行。好比一个小区有很多单元门,但是必须先进小区大门(大门上写着单元的地址)才行。grub经过升级,现在ubuntu 13.04用的事第二代。

情景是这样的: 我原来电脑系统是win7,我把D盘用强大的Acronis Disk Director 软件分出来30G,用来安装ubuntu,安装方法是U盘安装,软件是Universal USB Installer。由于原装电脑厂商为了防止用户系统崩溃,留了13G用来恢复系统(这个分区是隐藏的,而且在磁盘第一个分区,这种做法真是脑残),所以我安完ubuntu后,看着13G无法使用,感觉浪费,把这个分区删了。结果是系统启动不了了。 解决办法: U盘进去liveCD 终端输入:
sudo -i //获取root权限
fdisk -l // 查看分区信息,一般后面写着linux等字样,看好分区大小就知道你的linux在哪里了
mount /dev/sda9 /mnt    //挂载你的boot分区
grub-install --root-directory=/mnt /dev/sda //修复grub
如果出现bootlist is unreliable字眼,就加上--force参数 输入完之后如果出现no error report,就已经成功了,现在重新就会看到熟悉的grub启动。 最后,进入ubuntu后记得更新一下grub,打开终端,输入
sudo update-grub
这样子才能从grub启动windows,不然会出现no such devices。 参考: [1].  http://blog.csdn.net/xanxus46/article/details/7764630 [2]. http://zh.wikipedia.org/wiki/GNU_GRUB [3].  https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

转载于:https://my.oschina.net/itfanr/blog/358427

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值