XP+UBUNTU双系统上重装XP后修复GRUB方法

重装xp后,mbr被xp写入信息导致grub无法工作解决方法 
从CD-ROM启动,从Live CD启动进入桌面。 
打开终端或者切换到一个tty(Ctrl+Alt+F1)。 
输入:sudo grub 
输入:find /boot/grub/stage1 ##有人说这一步不用,不过个人感觉还是应该加上这一步 
输入:root (hd0,x) ##输入find命令反馈的数据 
输入:setup (hd0) ##如果想用xp进行多系统引导就写(hd0,x) 
输入:quit ##退出grub。 
重新启动,不出意外的话,那么恭喜,呵呵,可以看到XP和UBUNTU的双系统引导咯^_^ 
--------------------------------------------------------------------------- 
重装windows XP 后怎样找回Ubuntu 
首先下载GRUB for Dos 
并安装下载Ext3分区访问软件(有Ext2Fsd 或explore2fs) 
运行后将ubuntu根目录下的Boot文件夹里全部复制到C盘. 
重启后在开机菜单里选择GRUB就可进入ubuntu. 
要点:ubuntu linux 需要GRUB for Dos来引导,所以C:\BOOT.INI里,会有这一行: 
C:\GRLDR="GRUB"ext3 
分区下的boot文件夹里面放了可以引导的文件,需将其放在c盘根目录. 
------------------------------------------------------------------------------------------------------- 
1.用livecd(强烈推荐) 
2.用安裝cd 
3.使用grub4dos 
4.使用grub軟盤 
1,使用livecd(强烈推荐) 
使用任何你喜歡的linux livecd(比如,ubuntu 6.06的desktop cd) 
在终端下输入: 
代码: 
sudo su 
grub 
代码:grub> 
接着输入: 
代码: 
root (hdx,y) 
setup (hdx) 
请不要完全照样输入!请弄懂这些命令的含义。 
hd表示硬盘,格式是 
(hd硬盘号,分区号) 
从零开始计算。 
所以(按照日常的习惯,从1开始数), 
(hd0,0)表示第一个硬盘的第一个分区, 
(hd0,1)表示第一个硬盘的第2个分区, 
(hd1,4)表示第2个硬盘的第5个分区。 
(注意,linux系统里是用hda1表示第一个硬盘的第一个分区,不要把它和grub中的表示混起来。) 
root (hdx,y)这里的(hdx,y) 是/boot 目录所在的分区 
(通常情况下,也就是你装ubuntu系统的分区,除非你安装的时候把/boot分出去了。) 
如果你不知道你把ubuntu装在第几个分区,可以在输入root (hd0, 时按Tab键来补全。 
(假设你把ubuntu装在第一块硬盘上)按了tab后,你将看到一些有关各个分区的信息。 
通常你可以通过分区的大小和格式看出你把ubuntu系统装在哪里了。 
setup (hdx) 通常情况下,是setup (hd0)。(多半你把ubuntu装在第一块硬盘上。) 
要注意的是,不要输入setup (hd0,0)。我曾经犯过这个错误。 
(如果你没把命令抄下来,凭记忆操作的话,可能会犯这种错误。) 
最後,用 
代码: 
quit 
退出grub,重啟系統。 
好了,总结一下用到的命令 
(建议你把下面的代码抄在纸上。如果你对(hdx,y)表示的含义还感觉模糊,最好把上面几段解释也抄下来。) 
代码: 
sudo su 
grub 
root (hdx,y) 
setup(hdx) 
quit 
很简单吧?关键只要理解grub中硬盘分区的表示法就行了。 
2,使用ubuntu安裝cd恢复 
ubuntu desktop-cd可能用不起来。你可能需要7.10的alternative cd。 
1. 用 Ubuntu 安装 CD 开机 
2. 在 "boot:" 提示号出现时, 键入 "rescue" 当作开机参数 
boot: rescue 
3. 顺着屏幕上的指示跟着作 
4,例如 假设 /boot 磁碟分区位在 /dev/hda 
代码: 
#grub-install /dev/hda 
下面是另外一种方法。firehare 写道: 
1. 启动系统到 Ubuntu 安装CD 
2. 沿着屏幕上的命令直到 (千万不要超过这一步) 
[!!] Fdisk disks 
3. 按 'Ctrl + Alt + F2' 
4. 按 'Enter' 进入终端 
5. 
~ # mkdir /ubuntu 
~ # fdisk -l /dev/discs/disc0/disc 
~ # mount Ubuntu根设备所在位置> /ubuntu/ 
~ # chroot /ubuntu/sh-2.05b# 
6. 假设 /dev/hda1 是 /boot 分区的地址 
7. sh-2.05b# grub 
grub> root (hd0,0) 
grub> setup (hd0) 
grub> quit 
1. 用 Ubuntu 安装 CD 开机 
2. 在 "boot:" 提示号出现时, 键入 "rescue" 当作开机参数 
boot: rescue 
3. 顺着屏幕上的指示跟着作 
4,例如 假设 /boot 磁碟分区位在 /dev/hda 
代码: 
#grub-install /dev/hda 
3,使用 grub for dos 
在沒有ubuntu安裝盤或livecd的情況下,你可以使用grub4dos重新安裝grub。 
你甚至可以用grub4dos代替grub來引導系統。 
3.1使用grub4dos重新安裝grub 
下載http://www.ubuntu.org.cn/download/installformharddisk/grldr 
oneleaf 写道:将 grldr 复制到 C:\,编辑C:\BOOT.INI,加入一行: 
C:\GRLDR="GRUB" 
再手工输入启动命令 
例如:root (hd0,0) 
kernel /vmlinuz-2.6.10-5-686 root=/dev/hdb5 ro quiet splash 
initrd /initrd.img-2.6.10-5-686 
savedefault 
boot 
进入后,重新安装grub就好了。 
重新安裝grub: 
例如 假设 /boot 磁碟分区位在 /dev/hda 
代码: 
# grub-install /dev/hda 
3.2用grub4dos代替grub來引導系統 
yonsan 写道: 
(凭记忆写的,如有不完善请指正) 
如果你的系统现在正在使用grub引导方式,请在操作之前查看一下/boot/grub/menu.lst的内容, 
建议将/boot/grub/menu.lst拷贝一份以备用(将它拷到fat32分区中存放就可以)!进入window环境下 
1) 下载grub020p.zip并解压到C盘根目录下,打开C盘查看一下是否有以下文件 
C:\boot (文件夹) 
C:\ChangeLog.txt 
C:\compile 
C:\COPYING 
C:\grldr 
C:\grub4lin 
C:\grub-0.95-patch1-startups 
C:\grub-0.95-patch2-findroot 
C:\grub-0.95-patch3-ntfs 
C:\grub-0.95-patch4-emulation 
C:\grub-0.95-patch5-splash 
C:\grub-0.95-patch6-scdrom 
C:\grub-0.95-patch7-bioscdrom 
C:\grub.exe 
C:\grub.pif 
C:\README.txt 
C:\robin.xpm.gz 
C:\scratchpad.txt 
2) 修改C:\boot\grub\menu.lst ,用你刚才从linux系统中拷贝的menu.lst覆盖C:\boot\grub\menu.lst 
3) 进入grub命令行方式 (出现grub引导菜单时按c键) 
> root (hd0,0) 
> setup (hd0) 
4) 重启计算机 
4.使用grub軟盤很簡單,只要用grub軟盤啟動机器就行了。 
如何制作grub軟盤? 
如果你沒做過grub軟盤,想在用安裝cd恢复的時候順便做一個,那就試試下面這個: 
youngong 写道: 
用安装CD启动电脑,输入rescue回车 
启动后执行"grub- install /dev/hda3"重新安装grub到ubuntu分区上 
再用"grub-install /dev/fd0"制作一张启动软盘 
(如果你打算将grub安装在MBR上可就更简单了,只需要grub-install /dev/hda)。 
再用刚才制作的软盘重启电脑,就可以进入ubuntu linux了。 
为了还原我原来的NT Loader启动linux的方式,再提取hda3分区的引导记录 
即“dd if=/dev/hda3 of=/linux.lnx bs=512 count=1", 
并将生成的linux.lnx文件复制到C区根目录下, 
修改boot.ini加入“c:\linux.lnx=Ubuntu linux 5.04", 
就可以在硬盘引导时选择启动ubuntu了。 
其实整个过程中制作引导软盘只起了个过渡作用,但同时也方便以后维护系统。 
zhan 写道: 
今天重装了windows系统,将原来的xp装为2003 
装完后用ubuntu的安装盘grub-install /dev/hda 将linux恢复了 
但是启动时只有一个winxp的选项,进入时说不能识别文件系统,不能启动 
然后出现一个GRUB 就停住了,不过linux系统是还可以用. 
各位大侠有没有什么好办法,我不想再重装了!! 
启动win时的显示见下: 
Booting 'microsoft windows xp professional' 
root (hd0,0) 
Filesystem type unkown ,partition type 0x7 
savedefault 
makeactive 
chainloader+1 
GRUB 
到这里就不动了,按键基本都没用,不过,ctrl+alt+delete能重启 
yonsan 写道: 
用以下方式引导windows 
代码: 
# Windows 
title Windows 
rootnoverify (hd0,0) 
chainloader +1 
------------------------------------------------------------------------------------------------------- 
重装Windows后 无法进入ubuntu 的修复方法 
如果你的电脑是Win和Ubuntu双系统的,可能会遇到这样的问题。 
就是重装Win之后将无法进入Ubuntu了。一般情况下遇到这样的问题,我们有两种方法解决! 
最简单的方法: 
1.利用另外的一个LiveCD盘进入后把所有的盘都挂载。 
2.拷贝原Ubuntu下的/boot/grub到Win的C盘。 
3.修改Win的C盘里的boot.ini文件。它可能隐藏和只读 需要自己改下属性! 
4.在这个文件最后加入一句C:\grldr=ubuntu 
5.重启选择Ubuntu。 
第二种方法: 
注意此种方法只能在重装WIN之前到Ubuntu下操作!!! 
首先确定你的grub正常,并能启动linux 
然后启动到Ubuntu如果你的是IDE硬盘 
请运行: 
sudo dd if=/dev/hda of=/media/linux.lnx bs=512 count=1 
如果你硬盘的被识别为sda ,请运行 
sudo dd if=/dev/sda of=/media/linux.lnx bs=512 count=1 
然后你可以到/media找到linux.lnx这个文件 
将它拷贝到你的win根目录,一般是C:\然后重启Win,修改根目录下的boot.ini 文件。 
在这个文件最后增加: 
C:\linux.lnx=”linux 
OK,重启,选择Ubuntu吧。 
注意:你需要将这个文件备份,可以备份到网络硬盘或者U盘内。 
这样你重装Win之后,只需要将这个文件拷贝到Win的根目录,修改boot.ini 就可以了! 
总结:相比较而言,第一种方法更简单一点,但是我觉得第二种方法更一劳永逸。 
当然,你可以选择利用重装grub来恢复对Ubuntu的引导。但是我不觉得那对于新手会简单! 
感谢提供这两种方法的sun391和enjoyforfun 
------------------以上内容转自某个网页------------------------------------ 
补充: 用GhostXP的安装盘安装Windows 可能不存在这个问题(至少本人用深度白金珍藏版5.7.1是这样的) 
------------------------------------------------------------------------------------------------------- 
当我们的脆弱的Windows定期瘫痪,无法修复只能重新安装的尴尬时刻,我们发现“霸道”的Windows 在安装时丝毫没有顾及在硬盘的MBR上还存在操作系统的引导程序(grub),直接删除,只写入Windows的引导信息。 
不管微软这样是不是有意而为,这都看出Windows的陋习和微软的强盗行径。我们怎么办,放弃Windows?但是我们还要我们心爱的游戏,反正Windows已经是我硬盘上的一个因为游戏还存在的附属系统,我们忍了。 
发扬Linux人的DIY精神,我们自己动手找回丢失的Linux引导程序。 
1,使用Ubuntu live关盘引导进入 Ubuntu live 模式 
2,在Ubuntu中运行终端,执行下列命令: 
$sudo grub 
其实,grub不仅只在我们引导时候出现在我们眼前,我们平时也可以直接运行grub命令进入模拟grub引导程序。 
3,之后,我们在grub 命令行模式下接着执行 
root (hdx,y) 
注意:其中x为硬盘号,数字 “ 0 ”指我们机器上的第一块硬盘,grub的排列顺序是从 “ 0
”开始的。同理,如果你的系统在第二个硬盘上则是1,依次类推。另外,其中的“ y ”表示前面所指硬盘的 /boot
所在分区号,如果实在不知道,后面信息怎么填,你可以在输入逗号后按Tab键,这样可列出硬盘的分区信息。 
4,安装 grub ,执行命令: 
setup (hdx) 
setup (hdx)就是把GRUB写到"x"硬盘的MBR上。如果成功会有一个successful...... 
5,安成安装后,退出 grub 。 
quit 
6,重启机器,重新引导Linux。 
$sudo reboot 
备注:其实,当我们安装完毕grub之后,还需要检查 grub 的配置文件信息是否正确,方法是在 Ubuntu live 模式下利用 mount 命令加载原来ubuntu 的分区,在原 /boot 目录下的 grub/menu1.st 文件中的信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值