Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4741351
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2008-11-03 23:02:49

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了。
阅读(639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~