免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1019 | 回复: 0
打印 上一主题 下一主题

修复grub [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-03 23:02 |只看该作者 |倒序浏览
Grub是Ubuntu的系统引导程序,NTLoader则是XP的。由于重装XP时,XP霸道地将Grub驱逐出境,因此,为了启动Ubuntu,首先需要恢复Grub。
恢复Grub的方法网上有很多,我只使用也只会使用其中最简单有效的一种。
1、使用LiveCD引导进入Ubuntu。
2、在终端输入:
sudo grub
输入管理员密码,然后就看到了grub>这样的提示。
3、在终端输入(看完这段再输入,别急):
root(hdX,Y)
该语句指示Ubuntu的/boot目录在第几块硬盘的第几个分区。其中hd表示硬盘,X是一个数字,表示第几块硬盘(从0起计数的)。hd0即表示第一块硬盘。我的双系统是安装在 同一块硬盘上的,所以我输入的是hd0。Y也是一个数字,表示第几分区(也是从0起计数的)。要注意,Y可能不是连续的0、1、2、3、4……这点在我操 作的时候着实困惑了我许久。后来发现,可能由于我多年前曾用PQManager对硬盘进行过手动分区操作,在Grub中的分区号实际为:0、4、5、6、 7、8、9、10、11,而不是逻辑上的0、1、2、3、4、5、6、7、8。
如果你不知道你用的是哪个分区,没关系,按照如下方式操作。
在终端输入:
root (hd0,
然后按下Tab键,Ubuntu就会把当前所有分区都列出来供你判断了。千万注意,root和(之间有一个空格,否则不会有任何提示的。这点我也是摸索了很久才发现的。但无论是否有空格,完整的root命令都能被执行。
以下是我的反馈结果
grub> root (hd0,
Possible partitions are:
Partition num: 0,   Filesystem type unknown, partition type 0x7
Partition num: 4,   Filesystem type is fat, partition type 0xb
Partition num: 5,   Filesystem type is fat, partition type 0xb
Partition num: 6,   Filesystem type is fat, partition type 0xb
Partition num: 7,   Filesystem type unknown, partition type 0x7
Partition num: 8,   Filesystem type unknown, partition type 0x7
Partition num: 9,   Filesystem type is ext2fs, partition type 0x83
Partition num: 10,   Filesystem type unknown, partition type 0x82
Partition num: 11,   Filesystem type is fat, partition type 0xb
从中可以看出,Grub只能列出Windows的Fat(32)分区名和Linux的系统分区ext2fs。对于Windows的NTFS分区和Linux的SWAP分区都显示为unknown。不过这已经足够了,可以得知第9分区正是我要的。于是将root命令补全:
root(hd0,9)
4、在终端输入:
setup(hd0)
表示设置Grub到第一块硬盘。
5、在终端输入:
quit
表示退出Grub。然后重启就行了。
由于Grub启动会检查主板,速度比NTLoader慢不少,所以我还是倾向于用NTLoader来引导双系统。
1、在设备管理器(硬件信息)中查到我的Ubuntu被安装在/dev/sda10上(和Grub的计数方式不同,是从1起计数的)。
2、在终端输入:
dd if=/dev/sda10 of=/ubuntu.lnx bs=512 count=1
dd命令使用来复制文件的。if=/dev/sda10表示输入。of=/ubuntu.lnx表示输出。bs表示文件大小为512字节。count=1表示块数目为1。这样就会把系统分区前512字节写入文件ubuntu.lnx中了(输出的文件名是可以任意取的)。
3、将ubuntu.lnx复制到Windows的C盘根目录下。
4、修改Windows的C盘根目录下的boot.ini,在最后加入
C:\ubuntu.lnx="Ubuntu Linux"
以下是我的boot.ini。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\ubuntu.lnx="Ubuntu Linux"
5、最后在Windows下使用Fixmbr命令将Grub再次驱逐出境。。。这样,下次开机时,NTLoader就会停留30秒让你选择是进入XP还是Ubuntu了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/76292/showart_1358773.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP