更新:由于windows出错,重装,安装ghost版总失败,后安装安装版,成功,修复grub启动。结果windows盘自动挂载失败,发现原因是盘符变更,fstab使用盘符挂载,进入后更改fstab成功,后发现ubuntu不稳定,偶然间发现swap区没有挂载。查看原因,结果swap分区无法识别。多方寻求未果,直接格式化swap分区,发现swap分区的uuid也改变了。并且多出了几个错误分区,好在windows,ubuntu都不报错,只是用磁盘工具才能看到,不影响使用,改动swap的uuid,重启挂载成功。可能下次安装系统还会干扰吧。分析原因,可能安装windows时,windows占用一小部分swap分区从而导致分区表出错。只是猜测,毕竟安装windows时费了一些周折,改了很多东西,具体是谁导致的不能确定。有待更新。
不用光驱,不用u盘的方法ubuntu版本9.10以上:去http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=245472&start=0下载附件,将 grub2 、g2ldr 和 g2ldr.mbr 解压到C盘根目录;再在 boot.ini 里添加一行
即 可。(最好在 window 里操作,因为 window 要求的换行符和 linux 不太一样。)
如果C盘没有 boot.ini 文件,就手动创建一个,内容如下:
timeout=9
default=C:/g2ldr.mbr
[operating systems]
C:/g2ldr.mbr="g2ldr.mbr"
sudo grub-install /dev/sda,将grub写入mbr,就和以前一样了。
附其他方法:双系统修复Ubuntu 9.10 GRUB 2引导的方法
|
|
Ubuntu 9.10的GRUB引导不在使用GRUB 1了,改用GRUB 2(其实是beta版本)。重装Windows系统后,用原来的Live CD方法无法再修复了。只能用下面的两个方法了。
方法1.有GRUB启动的光盘或U盘修复
如果手上有GRUB启动的工具盘,用工具盘启动,在GRUB菜单上按c进入命令行状态,
在grub>提示符下输入
|
grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)
(hdx,y) (显示查找到的分区号)
grub>root (hdx,y)
grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)
grub>boot
执行boot后能转入GRUB 2菜单,启动Ubuntu 后,再在Ubuntu 终端下执行
sudo grub-install /dev/sda (或sdb,sdc等,根据第几硬盘而定)修复GRUB。
注意:如果Ubuntu 的启动分区使用 ext4格式,要有支持ext4格式的grub才能修复。
方法2:使用liveCD修复grub (推荐)
用Ubuntu 9.10的Live CD试用Ubuntu启动后,打开终端
假如你的Ubuntu 的 / 分区是sda9,又假如 /boot分区是 sda6,在终端下输入
sudo -i
mount /dev/sda7 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt/ /dev/sda
和前面一样,要装入第二硬盘的把sda改为sdb。
我的文件系统为ext4,貌似U盘pe 的GRUB不支持,保险起见用Live CD修复的,修复后却无法引导Windows了。可以用下面的方法解决:
进入Ubuntu 系统,打开终端,
重建GRUB列表 sudo update-grub
重新写入第一分区mbr sudo grub-install /dev/sda
如果想修改启动顺序,可以修改/boot/grub目录下的grub.cfg文件。这里注意此文件不可写的,可以先运行一下命令
sudo chmod +w /boot/grub/grub.cfg
然后再运行sudo gedit /boot/grub/grub.cfg,就可以修改了,类似于GRUB 1的menu.lst修改。
其 他方法:
方法1:使用Ubuntu 9.10 LiveCD
首先,请从Ubuntu网站下载Ubuntu.在这里,我们假设Ubuntu的安装分区是/dev/sdc3,/boot分区是/dev /sdc2。
现在,使用LiveCD启动计算机,打开“应用程序”-》“附件”-》“终端”,输入下面的命令,以root身份登录,并执行下面的操作:
mount /dev/sdc3 /mnt
mount /dev/sdc2 /mnt/boot
grub-install –root-directory=/mnt/ /dev/sdc
如果你没有’grub.cfg’文件,请重新创建,内容如下:
mount –bind /dev /mnt/dev
mount –bind /sys /mnt/sys
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
方法2:使用Grub for Dos
首先下载Grub for Dos
对于XP操作系统:
把Grub文件拷贝到C盘根目录,并编辑c:/boot.ini文件(需要去掉隐藏、只读、系统属性),并加上一行:
c:/grldr=”grub4dos”
对于Windows 7/Vista用户:
同样拷贝文件到C盘根目录,建立boot.ini文件,内容如下并保存:
[boot loader]
timeout=0
default=c:/grldr.mbr
[operating systems]
C:/grldr.mbr=”Grub4Dos”
现在在C盘根目录建立文件(XP、Vista、Windows 7 均适用),内容如下:
timeout 0
default 0
title grub2
find –set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
现在重新启动,选择Grub4Dos启动,进入Ubuntu。
登录Ubuntu,以后使用下面的命令行,重建Grub:
sudo grub-install /dev/sda