npcomet
发表于 2007-8-27 14:38:13
呵呵
任何linux发行版本都不敢默认往NTFS写文件的(即使FAT32也不会去改写其他的系统的文件)
所以最好的方案还是让安装程序自己去写mbr实现自身的引导 ,然后在本系统的内实现对其他系统的引导,2.1测试版不能发现硬盘上已经存在的winodows版本这是一个bug,下个版本会修复的
doczx
发表于 2007-8-27 15:08:53
2.0版本可以的,为什么2.1反而不行呢?瞎问的,您已经说了是Bug了,只是觉得首先不应该有这样的Bug,呵呵。
“让安装程序自己去写mbr实现自身的引导 ,然后在本系统的内实现对其他系统的引导”
现实中比较可行。只是普通用户再想恢复XP的MBR时会有一些麻烦,方法并不简易。不过网上有好多恢复的方法了,用XP光盘恢复模式或者小软件testdisk-5.9-WIP-win都可以了。
折腾了几天,大有所获:-D
[ 本帖最后由 doczx 于 2007-8-27 15:10 编辑 ]
npcomet
发表于 2007-8-27 15:12:31
还好了 任何系统间的过渡都是有痛苦的
如果你原来电脑上只有linux 然后再安装winodws你就更能体会什么是痛苦了
痛并快乐着 哈哈
lanzinc
发表于 2007-8-27 15:30:59
安装的时候分区管理那一步可以改变活动分区
lanzinc
发表于 2007-8-27 15:47:42
fans的要求并不高,至少Lz就是一个fans.
虽然有抱怨,但还是努力解决问题.
linux社区就是这样,一边发现问题,一边抱怨,但更重要的是不断前进.
如果有一个比较周全的方案,修改安装程序因该并不困难.
关键是一个周全的方案,要平衡很多东西.
有争议所以有争论.(但不要有攻击).
就这个问题我觉得目前的方案还是比较合理的,
一般放在mbr;为其他需要保留安张到分区的功能,自行修改分区active标记.
也许需要的是在合适位置放一些警告和提示.
[ 本帖最后由 lanzinc 于 2007-8-27 15:59 编辑 ]
doczx
发表于 2007-8-27 16:50:24
就这个问题我觉得目前的方案还是比较合理的,
一般放在mbr;为其他需要保留安张到分区的功能,自行修改分区active标记.
也许需要的是在合适位置放一些警告和提示.
您说得很有道理。
我刚刚又耐着性子装了一次,还是MGC2.0,光盘安装,把Resier分区设为Boot标志,并选择重新格式化,冒险把第一主分区就是XP的NTFS分区的Boot去掉。安装顺利完成,启动的时候,呵呵
TestDisk
1234F:
按任意键都是这个信息。
无法启动系统,XP也进不去了。
还好,用MGC2.0的盘重新启动,到了分区管理这一步,把Resier分区去掉Boot标志,XP的NTFS分区设为Boot,可惜不能保存,只好让他一直到安装包的时候,强行重启,XP重新启动了,天下太平。
看来为其他需要保留安装到分区的功能,自行修改分区active标记,实际上是行不通的。
至少在我的机器上是这样。仅供参考。
lanzinc
发表于 2007-8-27 17:04:08
这个问题,有机会我用虚拟机试一下。现在的mgc,连同/boot目录是装在sda5的,没办法直接用grub-install 来安装。
sda3我记得应该是没问题的呀,不过当时用的是EXT3
如果真的不行,那要谢谢你纠正我的一个错误记忆了。
设置active用dos的fdisk就可以了。
# fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks IdSystem
/dev/sda1 * 1 1020 8193118+ 7HPFS/NTFS
/dev/sda2 1021 9728 69947010 fW95 Ext'd (LBA)
/dev/sda5 1021 1785 6144831 83Linux
/dev/sda6 1786 1818 265041 82Linux swap / Solaris
/dev/sda7 1819 3093 10241406 7HPFS/NTFS
/dev/sda8 3094 8192 40957686 7HPFS/NTFS
/dev/sda9 8193 9728 12337888+ bW95 FAT32
[ 本帖最后由 lanzinc 于 2007-8-27 17:24 编辑 ]
doczx
发表于 2007-8-27 18:22:56
好不容易找了一张番茄花园的98se启动盘,里面有一个Fdisk,的确可以,也很方便。重新设置第三主分区Resier为活动,结果一样,testdisk 1234f:。
反正已经有2.1了,就不再2.0上折腾了。
linux下设置活动分区的命令我回头再练习一下。
谢谢指导。
jiangtao9999
发表于 2007-8-27 18:31:00
这个问题归根结底在于: GRUB 根本不需要激活分区的功能,你把他安装到 / 分区,那就意味着你不用他作为系统的主引导程序,既然不作为主引导程序,你为什么还要要求安装程序激活 / 分区?
而且,我记得 GRUB 支持非主分区的启动,非主分区是不能被激活的………………
PS:我记得某些系统(很久没装 ML 了…………:oops: )在设置挂载点的时候,有一个激活分区的功能,把钩打上就行了。
doczx
发表于 2007-8-27 19:16:02
这个问题归根结底在于: GRUB 根本不需要激活分区的功能,你把他安装到 / 分区,那就意味着你不用他作为系统的主引导程序,既然不作为主引导程序,你为什么还要要求安装程序激活 / 分区?
而且,我记得 GRUB 支持非主分区的启动,非主分区是不能被激活的………………
我并不同意这样的说法。
GRUB 当然支持非主分区的启动。问题在于你既然提供了将GRUB引导器安装在linux主分区,并且在分区管理将linux主分区设为活动分区,之后也提供了默认由linux优先启动,那么顺序应为BIOS--MBR--活跃的linux主分区--GRUB--linux。事实上,MGC2.0按以上顺序安装,电脑根本无法启动,只好用DOS启动盘把活动分区改回XP主分区才可以使用。既然这样,提供这样的选项有什么意义?
PS:我记得某些系统(很久没装 ML 了………… )在设置挂载点的时候,有一个激活分区的功能,把钩打上就行了。
我就是这样把Resier主分区激活的,结果就像上面说的。
我们并不是讨论做法的对错,而是MGC2.0的安装程序不安装在MBR中就无法启动的问题,当然我不知道别人是否也是这样。既然有这样的安装设置,就有可能有人会这样做,当然就会产生误解,安装都能这样,下面的就不用说了。2.1大家都知道不能双启动XP的问题,但毕竟是测试,而且已经事先说明了。
[ 本帖最后由 doczx 于 2007-8-27 19:41 编辑 ]
lanzinc
发表于 2007-8-28 03:52:03
对于引导过程我的理解:
1:
hda1 (hd0,0) xp
hda2 (hd0,1) linux root & boot
Grub 装在mbr
menu.lst:
#1
titleLoad HardDisk0 MBR
chainloader (hd0)+1
rootnoverify (hd0)
#2
title Linux
root (hd0,1)
kernel /boot/vmlinuz26 root=/dev/hda2 ro vga=773
initrd /boot/kernel26.img
#3Windows
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
启动时,bios加载MBR( 即加载grub),grub显示菜单,当选择第一项时重新加载MBR即grub
当选择第二项是,加载linux内核,当选择第3项,加载hd0,0上的dos/windows引导程序,改程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
这时谁是active分区都无关紧要。
2:
hda1 (hd0,0) xp
hda2 (hd0,1) linux root & boot
Grub 装在 hda2
MBR为dos的MBR程序
menu.lst:
#1
titleLoad HardDisk0 MBR
chainloader (hd0)+1
rootnoverify (hd0)
#2
title Linux
root (hd0,1)
kernel /boot/vmlinuz26 root=/dev/hda2 ro vga=773
initrd /boot/kernel26.img
#3Windows
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
启动时,bios加载MBR,MBR根据 分区表的active分区标记,加载该分区的引导程序
2.1 active的是hda2,则加载的是grub(位于hda2的fbr):
当选择第一项时重新加载MBR,很快MBR又加载grub
当选择第二项是,加载linux内核,
当选择第3项,加载hd0,0上的dos/windows引导程序,该程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
2.2active的是hda1(hd0,0)。MBR加载的是hda1上fbr的引导程序即os/windows引导程序,该程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
这时谁active就有关系了。
当然grub的完整部分因该不全部在MBR 或 FBR还有一部分在boot & root 分区,但都要由MBR或FBR 的部分加载。
不同的安装,MBR和FBR里面的东西是不一样的。
另外要重新写MBR为DOS的MBR程序,可以用dos的fdisk /mbr
或xp 安装盘的fixmbr
Grub可以在非主分区启动是因为他可以加载非主分区中的内核。
但grub自身无法由MBR从一个非主分区加载到内存
也就是说Grub的管理程序,就是我们在linux里运行的grub程序可以在非主分区
但引导过程中接过接力棒的那部分程序是没办法从文件系统中直接载入的,必须安装到mbr或fbr
总的就是接力棒的传递 :
可以有多种多样:
例如:
bios ---MBR---FBR----文件系统中的文件
bios ----mbr----文件系统中的文件
bios----mbr----文件系统中的文件-----fbr-----文件系统中的另一个文件
bios ----mbr----fbr----另一个fbr-----文件系统中的文件
一旦加载了文件系统中的某个文件,如内核,或ntloader程序的那个文件,就能一个一个文件的把系统引导起来。
[ 本帖最后由 lanzinc 于 2007-8-28 04:30 编辑 ]
lanzinc
发表于 2007-8-28 04:55:08
TestDisk
1234F:
这样的提示应该是grub的提示,应该不是bios或mbr(Microsoft的)的提示
应该是grub要载入文件系统中的特定文件时出现了问题。
doczx
发表于 2007-8-28 08:48:27
原帖由 lanzinc 于 2007-8-28 04:55 发表 http://www.linuxfans.org/bbs/images/common/back.gif
应该是grub要载入文件系统中的特定文件时出现了问题。
我模糊的记得GRUB4dos是支持fat1632NTFSext23 垡的确不支持Resier格式,可能是这个原因。有时间我会再试一下,您也可以看看。
我想您已经很详尽的说明了启动过程,而我想说这可能是MI的问题,即使将GRUB安装在active的linux主分区的PBR,他也无法成功引导linux系统。当然,要等着排除了不支持Resier格式这个原因。会不会MGC2.0 自带的GRUB0.97不支持Resier造成的。
doczx
发表于 2007-8-28 22:51:31
今天装了红旗,兼容模式,SATA Pri PATA Sec,顺利安装,直接认出SDA,芯片组。一样的问题,只要不安装MBR,同样没有添加引导菜单。
npcomet
发表于 2007-8-28 23:29:13
原帖由 doczx 于 2007-8-28 22:51 发表 http://www.linuxfans.org/bbs/images/common/back.gif
今天装了红旗,兼容模式,SATA Pri PATA Sec,顺利安装,直接认出SDA,芯片组。一样的问题,只要不安装MBR,同样没有添加引导菜单。
如果你不安装到mbr 任何一个版本的linux都不会添加引导菜单到windows