[问题]准备在Ubuntu系统下全新安装XP双系统……求高人指点Grub设置

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
AlbertNi
帖子: 9
注册时间: 2008-01-15 6:18

[问题]准备在Ubuntu系统下全新安装XP双系统……求高人指点Grub设置

#1

帖子 AlbertNi » 2008-01-16 11:37

嗯……预计划出一块区来装Windows XP。但是据说XP安装时会覆盖MBR导致引导问题。
上网搜索了一下,都是关于XP下安装Ubuntu或者是重装XP的方案,没有见到在Ubuntu下全新安装XP的先例。再加上我是新手……因此Grub设置估计不能靠自己搞定……
主要担心的是,因为是全新安装XP(而不是双系统下重装XP),Grub中没有任何关于XP的信息。因此需要完全重写一段引导至XP的代码。不知道哪位高人能指点一二?

希望不要遇到非得先装XP再装Ubuntu这样的郁闷事情……要真得这样我还得全部备份好资料和软件包,卸掉Ubuntu,装XP,重装Ubuntu,恢复数据,重新设置好两套系统……想想都觉得太低效了……

PS,目前的分区情况如下:
主分区
hda1 ext3 200MB /boot
hda2 ext3 7GB /(根目录)
hda3 ntfs 7GB 闲置(预计为系统分区C:)
扩展分区:
hda7 ntfs 5GB 闲置(预计为程序分区D:)
hda8 ntfs 5GB 闲置(预计为数据分区E:)
hda9 ntfs 1GB 闲置(预计为虚拟内存/临时数据分区F:)
hda6 ext3 5GB /home
hda5 swap 1GB
还有就是我的电脑主板比较老,不能引导到一定扇区(似乎是512M)以后……经典的ERROR 5……所以还担心装了XP以后会出现无法引导的尴尬……

不知道各位有何看法?关于分区,关于装系统,关于GRUB,或者其他可能有用的内容都欢迎。提前谢过了。
头像
ffsxsy
帖子: 779
注册时间: 2007-11-04 16:32

#2

帖子 ffsxsy » 2008-01-16 12:16

我也不确定,有一篇教程,希望对你有用,http://www.linuxsir.org/main/?q=node/129
先装ubuntu再装xp,一定会重写mbr,但是ubuntu的数据不会丢失,就是说直到你找到方法,数据中会找回来!
amd x2 250
amd 785g主板
2g ddr3 1333内存
mudinlove
帖子: 19
注册时间: 2008-01-16 10:37

#3

帖子 mudinlove » 2008-01-16 14:03

感觉LZ和我遇到的情况有点像, 不过我是先安装xp的, 只是在安装ubuntu的时候没有安装引导...

先说说我具体操作的情况吧:
安装xp, 然后从网上下载引导文件(参考以下链接):
[原创]长期提供从硬盘启动Desktop ISO的引导文件

然后是按照上面教程中的步骤引导iso文件并安装ubuntu, 但是安装时没有选择安装引导程序, 所以安装完成后还要xp的引导...这时想到修改menu.lst(这个文件在xp的c盘/boot/grub中的)来引导安装好的ubuntu...

哦, 忘了说我的分区表:
c 2g fat16 (安装xp时特地分的, 不过好像设置太小了, xp把个格式化成fat16了...)
d 10g ntfs (xp系统)
(linux1) ext3 256M /boot
(linux2) jfs xxg(忘了) /
(linux3) swap - - (后面3个linux的分区都是在安装ubuntu的过程中创建的)

然后就是修改刚才说的menu.lst文件, 首先把引导iso文件的几行备份了, 然后修改成:
root (hd0,5)
kernel /vmlinuz root=/dev/sda7 ro quiet splash vga=769
initrd /initrd

这几行是在我第一次成功进入后, 在/boot中增加了2个link来简化等到到:
ln -s initrd.img-2.6.22-14-generic initrd
ln -s vmlinuz-2.6.22-14-generic vmlinuz

对上面3行代码的简单解释:
这里首先引入一个/etc/fstab文件, 可以使用cat查看一下:
里面显示的内容(省略一部分):
/dev/sda7 jfs /
/dev/sda6 ext3 /boot
/dev/sda1 vfat c盘
/dev/sda5 ntfs d盘
/dev/sda8 swap swap分区

我很笨, 是从类型判断是哪个分区的...

root (hd0,5) 好像就是把/移动到硬盘0(就是第1个硬盘)的第6个分区(对应/dev/sda6), 这是为了找到kernel的位置(在/boot中), 所以要修改后面的(hd0,5)找到LZ的boot分区

kernel /vmlinuz root=/dev/sda7 ro quiet splash vga=769
上面这个是指定kernel的位置和一些启动参数, 后面ro quiet splash是照搬的, 不明所以然, 还望大家指点一下, 先谢.../vmlinuz是指定kernel是那个文件, 因为我手动加了link, 未加link前, 我是用这句的, 效果一样:
kernel /vmlinuz-2.6.22-14-generic root=/dev/sda7 ro quiet splash vga=769

root=/dev/sda7 就是指定root的路径(所谓的 / 在哪个盘吧), 根据上面的fstab可以看到是/dev/sda7, 这里也要改成LZ的分区

至于vga=769是因为机子显卡差, 只能这样强制分辨率为640*480*256色才能进系统, 可以不加这个参数...

initrd /initrd
这个是指定初始化的引导文件吧, 未加link前是:
initrd initrd.img-2.6.22-14-generic

因此简单讲就是:
root </boot的位置>
kernel <kernel文件名> root=</的位置> ro quiet splash
initrd <initrd引导文件名>

以上2个文件名可以在ubuntu下通过ls /boot查看, 不过一般ubuntu好像都是按照内核版本来命名的, 至于/boot和/的位置根据分区表改就好了...

希望对LZ有帮助, 如有错漏, 欢迎指正, 谢谢.

补充一个: 对于initrd.img-2.6.22-14-generic和vmlinuz-2.6.22-14-generic文件的命名...坦白讲, 我是在另一台机子上因为安装了ubuntu的grub引导, 所以对着改过来的...不过其实根据ubuntu的命名规则可以猜一下嘛, 反正不行就继续改...我也试了10多次才进去的...我是笨菜鸟嘛...

首先我安装的是7.10, 从网上下载的是bhd_i386_2.6.22-14g-ntfs.tar.gz, 其实可以这样猜ubuntu安装完成后的kernel文件名和initrd文件名:

首先前缀不会改:
vmlinuz和initrd.img

然后是内核version
根据bhd_i386_2.6.22-14g-ntfs.tar.gz得到2.6.22-14

所谓14g的g就是generic的意思...因为我笨, 后来才想到的...

上面的用 - 拼凑起来就得到
vmlinuz-2.6.22-14-generic
initrd.img-2.6.22-14-generic

因此我使用的启动行最开始(未加link简化时)是这样的:
root (hd0,5)
kernel /vmlinuz-2.6.22-14-generic root=/dev/sda7 ro quiet splash vga=769
initrd /initrd.img-2.6.22-14-generic

至于/dev/sda7我是试过同事提供的/dev/hda6不行改的, 碰巧能启动...
AlbertNi
帖子: 9
注册时间: 2008-01-15 6:18

#4

帖子 AlbertNi » 2008-01-17 21:32

好,谢谢大家。我试一下吧XD
希望能够成功。如果败了只好再麻烦各位了……
Joshua_Zhan
帖子: 155
注册时间: 2008-01-04 20:57

#5

帖子 Joshua_Zhan » 2008-01-18 17:18

学习了
头像
qianwx
帖子: 730
注册时间: 2006-07-08 14:41

#6

帖子 qianwx » 2008-01-19 22:53

如果先装的Ubuntu,想要后装XP,那么我想你需要一个可启动的Fat或者NTFS主分区才可后装XP。。。因为XP安装时候无论主体安装在哪个分区,但都会在可启动主分区中安装一些引导文件,而这些文件是必须放在FAT或NTFS分区中的。。因此,LZ你必须先把某个FAT或NTFS分区设为可启动主分区才可以
忘了说,这个情况仅适用于想用XP安装光盘进行全新安装的第二系统下的状况。而如果使用Ghost来直接把XP恢复入某个fat或ntfs分区内的话,就无需这么设置了,只需要在glub中设置引导磁盘即可。。。
原因是glub可以接管两个系统的引导而无需XP的系统引导程序,所以Ghost恢复的XP系统就不需要原来必须在Win系统主分区中拷贝的那些引导文件了。
AlbertNi
帖子: 9
注册时间: 2008-01-15 6:18

#7

帖子 AlbertNi » 2008-01-20 0:42

hda3不就是主分区么……
但是我安装win的时候显示找不到hda3(就是C盘),试图用工具重新分区格式化也无效……
于是这个周末准备把整个硬盘格光先XP再ubuntu了……
头像
qianwx
帖子: 730
注册时间: 2006-07-08 14:41

#8

帖子 qianwx » 2008-01-20 11:38

必须是被激活的主分区,系统可不会把未激活的主分区认成C盘的!!!
光盘安装的时候,被激活的主分区一定要是fat或ntfs格式。。。。而如果你未激活XP系统的主分区或激活的是linux主分区。。。那么从XP光盘依然无法安装。。。。
顺带说一下,安装XP的时候你最好保证只有XP的主分区是被激活的,而其他主分区都处于未激活状态。。分区软件内可以修改的。。。
上次由 qianwx 在 2008-01-20 11:41,总共编辑 1 次。
头像
sevk
帖子: 2060
注册时间: 2007-05-08 16:26
系统: arch
来自: 火星内核某分子内某原子核内
联系:

#9

帖子 sevk » 2008-01-20 11:41

有99.9%的机率,安装了xp或vista后,造成Linux引导不了,可以手工安装grub(WINGRUB或maxdos或矮人DOS) 。但我个人建议事先备份LINUX的引导程序,这样就不怕了: http://hi.baidu.com/sevk/blog/item/769b ... 3fa44.html
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
头像
qianwx
帖子: 730
注册时间: 2006-07-08 14:41

#10

帖子 qianwx » 2008-01-20 11:43

Ubuntu如果是LiveCD安装的,在安装好XP之后可以用LiveCD去改写grub!!!!
回复