修复Ubuntu linux启动项 - zhaozidong86的专栏 - 博客频道 - CSDN.NET

  |   0 评论   |   1,030 浏览

From Evernote:

修复Ubuntu linux启动项 - zhaozidong86的专栏 - 博客频道 - CSDN.NET

Clipped from: http://blog.csdn.net/zhaozidong86/article/details/6699653

 

在之前使用双系统的时候,常常会遇到这样的问题。我的Windows崩了,但是系统又没做gho备份,那怎么办呢,我想只有重装这条路了。重装后windows正常了,心里美滋滋的。可是突然发现我的linux的启动项不见了,这下子我们不就悲催了么?

遇到这种情况,通常人们会选择重新安装linux。其实大可不必,因为我们的linux系统还是完好的,只是由于重装了windows导致我们linux的启动项grub2受损。我们要做的只是修复启动项而已。

修复启动项的方法其实很多,在这里我给大家介绍一种最常用的一种方法——通过liveCD来修复。

今天就用Ubuntu 11.04的LiveCD的来修复grub2的引导。

启动Ubuntu 11.04光盘,选择LiveCD模式,进入之后选择进入终端(Ctrl+Alt+T),先在终端输入如下命令:

sudo fdisk -l (注意是小写的L,不是数字的1)

此步骤用于确定电脑中安装 Ubuntu11.04 的所在分区的位置,输入以后会得到类似如下信息,找到ID为83的那行,记住/dev/sdaX的情况,比如本人的电脑是/dev /sda7,以下就以此为例。

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x624aa2e0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1388 11149078+ 7 HPFS/NTFS
/dev/sda2 1389 3825 19575202+ 7 HPFS/NTFS
/dev/sda3 3826 9729 47423880 f W95 Ext’d (LBA)
/dev/sda5 3826 5851 16273813+ b W95 FAT32
/dev/sda6 5852 8323 19856308+ b W95 FAT32
/dev/sda7 8324 9598 10241406 83 Linux
/dev/sda8 9599 9729 1052226 82 Linux swap / Solaris

然后再输入
sudo -i
此步用于得到root权限,方便以下操作

接着输入

mkdir /media/tempdir

这里用于创建一个文件夹tempdir,用于挂载刚才的sda7,也就是你的Ubuntu的“/”的挂接硬盘分区。此文件夹名称你可以依个人爱好而定,没有太多要求

再输入

mount /dev/sda7 /media/tempdir

将sda7挂载于tempdir文件夹下

如果你单独挂载了Ubuntu的boot、home等分区,那怎么操作呢?

这是我电脑的分区表:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf0b1ebb0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
/dev/sda2 13 6375 51103744 7 HPFS/NTFS
/dev/sda3 6376 38914 261362638 f W95 Ext’d (LBA)
/dev/sda5 6376 15298 71672942 7 HPFS/NTFS
/dev/sda6 15298 25497 81920000 7 HPFS/NTFS
/dev/sda7 25497 35696 81920000 7 HPFS/NTFS
/dev/sda8 35696 35708 96256 83 Linux
/dev/sda9 35708 35770 498688 82 Linux swap / Solaris
/dev/sda10 35770 36144 2999296 83 Linux
/dev/sda11 36144 38914 22249472 83 Linux

大家可以看到,我除了/和swap,我还单独挂载了两个文件系统。我挂载了/boot和/home。
那么需要做如下操作:

mount /dev/sda11 /media/tempdir (我的/分区是sda11)
mount /dev/sda8 /media/tempdir/boot (我的boot分区是sda8)

下面进入了本次恢复最为关键和激动人心的时刻,在终端输入以下命令:

grub-install –root-directory=/media/tempdir /dev/sda

此步骤用于来重新安装grub2到硬盘的主引导记录【MBR】里面,十分关键!

输入以后如果出现“Installation finished.No Error Reported.”字符的时候,就表示操作成功了。但是现在只成功的一半,还有以下操作才能够完全成功。

这时重新启动你的电脑,就能看到grub2的引导界面了,但是这时只能用来引导Ubuntu 10.04,还暂时无法引导Windows 7,这时选择进入Ubuntu 11.04,再找到并启动终端,在终端输入如下命令:

sudo update-grub2

按照提示输入密码,如果顺利的话,会出现如下类似语句,那就表示成功了。

grub.cfg …
Found Debian background: moreblue-orbit-grub.png
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/initrd.img-2.6.31-15-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

如果没有出现以上类似语句的话,那就在新立得里面搜索grub,可以安装带有Ubuntu标志的那个grub-pc,安装之后,再输入

sudo update-grub2

更新一下grub2就可以了。

这样一来,我们就大功告成了。在开机的时候,是不是看到了熟悉的画面?激动吧,哈哈!

现在,还有一种比较流行的方法,是借助某些grldr工具软件恢复ubuntu启动项的,这种方法相对比较简单,不需要太多的命令行操作,也不需要liveCD。我把这种方法分享给大家,大家也可以参考一下。

grldr是grub里面的一个文件,对grub不熟悉的朋友可能不知道,但是如果你用过一键GHOST、MAXDOS、矮人DOS工具箱等等软件,你就应该知道这个名字:这些软件无一例外都是使用grub或者grldr引导他们保存在你硬盘的软盘镜像或者系统引导文件的。没有grub和grldr(包括avldr、isomenu等等都是由grub或者grldr派生出来的,也是你自己派生出一个个性化硬盘引导文件的方法和途径。),就不会由上述这些软件的存在。

第一步:下载grldr
下载地址:http://forum.ubuntu.org.cn/download/file.php?id=79193
下载解压后把g2ldr.mbr和g2ldr放在第一个磁盘的根目录下
(一般情况下是C盘,倘若你安装的是Win7的话,有系统保留分区则放在系统保留分区)

第二步:新建一个boot.ini文件
写入如下内容:
C:\g2ldr.mbr=”ubuntu11.04″

第三步:重启
重启后就可以看到ubuntu11.04的启动项
选择ubuntu11.04启动项进入ubuntu

第四步:用ubuntu的引导器来引导回win7
$sudo grub-install /dev/sda
$sudo update-grub

成功后你就重启进入win7,把C盘里刚放的g2ldr.mbr,g2ldr和boot.ini删除掉就OK了

到此就顺利的引导回你的ubuntu11.04了

评论

发表评论

validate