Chinaunix

标题: 请教下 双硬盘grub的问题 [打印本页]

作者: delphis    时间: 2006-12-31 11:21
标题: 请教下 双硬盘grub的问题
我现在机器上是2块硬盘
第一块
hdc
c: d: e: f: g: h:
winxp安装在c: 里,hdc上不再有其他系统

第二块
hdd1     /boot
hdd5     /
hdd6     /home
hdd7     swap
只装有ubuntu 6.06

最近winxp有点慢了所以ghost(当时只有hdc,xinxp)还原了下,发现双系统没有出现任何问题
本以为ubuntu会起不来...



对grub这块儿一直不是很理解,上面的结果是因为grub安装在hdd的mbr上了吗?
高手们解释下吧
作者: delphis    时间: 2006-12-31 11:37
我现在要是把hdc或hdd拆下来 机器还能正常启动吗
作者: zd724    时间: 2006-12-31 11:44
楼主把你的GRUB文件贴出来看一下 这样才能知道
作者: delphis    时间: 2006-12-31 11:51
标题: 回复 3楼 zd724 的帖子
title           Ubuntu, kernel 2.6.15-27-686
root            (hd1,0)
kernel          /vmlinuz-2.6.15-27-686 root=/dev/hdd5 ro quiet splash
initrd          /initrd.img-2.6.15-27-686
savedefault
boot

title           Ubuntu, kernel 2.6.15-27-686 (recovery mode)
root            (hd1,0)
kernel          /vmlinuz-2.6.15-27-686 root=/dev/hdd5 ro single
initrd          /initrd.img-2.6.15-27-686
boot

title           Ubuntu, kernel 2.6.15-27-server
root            (hd1,0)
kernel          /vmlinuz-2.6.15-27-server root=/dev/hdd5 ro quiet splash
initrd          /initrd.img-2.6.15-27-server
savedefault
boot

title           Ubuntu, kernel 2.6.15-27-server (recovery mode)
root            (hd1,0)
kernel          /vmlinuz-2.6.15-27-server root=/dev/hdd5 ro single
initrd          /initrd.img-2.6.15-27-server
boot

title           Ubuntu, kernel 2.6.15-23-server
root            (hd1,0)
kernel          /vmlinuz-2.6.15-23-server root=/dev/hdd5 ro quiet splash
initrd          /initrd.img-2.6.15-23-server
savedefault
boot

title           Ubuntu, kernel 2.6.15-23-server (recovery mode)
root            (hd1,0)
kernel          /vmlinuz-2.6.15-23-server root=/dev/hdd5 ro single
initrd          /initrd.img-2.6.15-23-server
boot

title           Ubuntu, memtest86+
root            (hd1,0)
kernel          /memtest86+.bin
boot

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hdc1
title           Microsoft Windows XP Professional
root            (hd0,0)
savedefault
makeactive
chainloader     +1





请大虾分析下  非常感谢
ps 升级过内核 所以菜单有点乱.........

[ 本帖最后由 delphis 于 2006-12-31 11:58 编辑 ]
作者: kirkcolors    时间: 2006-12-31 12:15
grub里已经明确区分了hd0和hd1阿
相信mbr是写在了hd1上 所以你重装windows也没有影响到grub
作者: delphis    时间: 2006-12-31 12:23
那就是说我现在把hd1拆下来 winxp也照样起来,hd0拆下来ubunut也照样可起来?

还是征求下各位的理论解释再动手~  哈哈
作者: colddawn    时间: 2006-12-31 12:50
个人观点:
1,启动过程是bios完成自检后调用第一个硬盘MBR中的启动代码完成的。
2,bios中会给硬盘分配一个设备号,例如C,D,E等(注意这里的设备号虽然与windows盘符命名方式一样,但一个设备号就代表一个硬盘,而不是分区),如果bios调整启动硬盘的顺序,则这个设备号也会改变,最优先启动的硬盘被命名为C。
3,Windows的ntloader是按照bios的设备顺序来寻找硬盘的。但Windows本身在ntloader之后加载的分区盘符则不一定。一般安装windows时将Windows所在盘的第一个分区命名为C,然后依次将其他硬盘的第一个分区命名为D,E等等,再其次是其他分区。但是命名也可能有其他顺序并且是可修改的。
4,Linux则忽略bios的设备号,按照IDE设备号和主从关系来决定dev编号。
5,grub依赖bios的设备号来决定hd0,1等顺序

根据以上观点,结合lz的例子,可得出以下可能:

lz的机器没有设置bios启动盘顺序或者是按照正常ide设备顺序启动,则bios的C,D,E和我们认为的硬盘1,2,3顺序相同。则此时从第一块盘的MBR启动,Grub顺序也是hd0,1,2,Grub安装在hd0上,Windows也是按照正常顺序安装。出现LZ所说的状况为LZ仅仅ghost还原了第一块硬盘的第一个分区,因此没有牵扯到MBR,Grub不受影响。
lz的机器改变了硬盘启动顺序,从第二个硬盘启动,则第二个硬盘为bios的C,grub也是安装在第二个硬盘的MBR上,但Windows本身还是将第一个硬盘命名为C的。因此ghost还原第一个硬盘后并未对第二个硬盘的MBR造成任何影响。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2