找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wangjg

[原创]U盘USB-HDD方式启动不成功一个很重要原因初探

  [复制链接]
发表于 2008-1-6 16:02:22 | 显示全部楼层
谢谢!我的USB-hdd启动提示:分区格式错
回复

使用道具 举报

发表于 2008-1-7 08:58:50 | 显示全部楼层
我试了,情况还是和以前样,可启动的机子OK,不能启动的照旧不行。
但是不能启动的机子提示不一样了,屏幕出现GRUB光标闪烁后,就死机了。还有一个机子是没有一点提示就直接从硬盘启动了,这台机子用USB-ZIP方式可以启动,但FDD和HDD都没成功过,主板是GA-P31-DS3L。

我的操作是:(先用00H填充U盘的所有扇区)

1、u-1ght.GHO文件
由于镜像文件太大了,我先用WinImage调整大小后,GHOST到128M的U盘,然后在虚拟机中用CentOS 5.1的将分区类型调整为0xe,步骤是:fdisk /dev/sdb----->t----->"e"---->w(说明一下:存盘时没有再出现51楼中的提示)。

2、U-1gboot.img文件
我1g的U盘只有956个扇区,用WinHEX(工具--->磁盘工具--->克隆磁盘)写入镜像文件中的前956个扇区。


请楼主看看操作过程是否有问题?谢谢!
回复

使用道具 举报

 楼主| 发表于 2008-1-7 15:31:33 | 显示全部楼层

回复 #63 fdd_ds 的帖子

To fdd_ds:

操作过程没错。这个镜像文件和我提出的制作方法稍有不同---我除了在MBR中安装了GRUB以外,在分区引导扇区也安装了一份。
你提到:
但是不能启动的机子提示不一样了,屏幕出现GRUB光标闪烁后,就死机了。

联想到你以前提过:
我又重作了N遍,还是部分机子可以,不行的提示:
This is not a bootable disk。Please insert a bootable floppy and press amy key to try again...

这明显是因为不知为何,分区引导扇区的代码得到了执行机会。这个现象很奇怪,我也无法解释。莫非被第50楼的laozhao言中了?
fdd_ds的u盘非hdd格式,首扇区是dos boot record而非main boot record,而且里面无引导代码,所以u盘被联想机当作了fdd或zip了,且无法引导。
联想的机器bios问题多多。

分析
如果分区引导扇区中的GRUB stage1被执行了,它将首先显示GRUB字符串,然后去读取并执行1扇区开始的stage1.5,如果由于某种原因读取不到stage1.5那么就会出现你说的现象。至于为何读取不到stage1.5,我只能猜测是BIOS屏蔽了头63个扇区,所以GRUB stage1去读取并执行1扇区开始的stage1.5时,实际上是读取了紧随着分区引导扇区的文件分配表并加以执行,造成死机。这只是我的猜测,有待证实,大胆假设,小心求证嘛,欢迎大家指正。

求证:
如果按照这样思路的话,可以做如下尝试解决这一问题:
制作一个启动盘,在10楼帖子的基础上,格式化FAT文件系统时设置保留扇区为足以容纳下stage1.5的值,16个扇区就够了,然后把stage1.5手工复制到FAT文件系统的保留扇区区域。把grub同时安装到MBR和分区引导扇区。这样如果BIOS真的屏蔽了头63个扇区,那么GRUB stage1去读取并执行1扇区开始的stage1.5时刚好读到位于FAT文件系统的保留扇区区域的stage1.5。至于stage1.5能否识别FAT文件系统并进而加载stage2那就再看吧。这种特殊的格式化操作可以使用linux中的mkdosfs加上适当的参数来进行。

最近比较忙,这一两天我就试一下,做好后发上来,你也可以按照这一思路自己先试一下。

不好意思,刚刚把保留扇区误写成隐藏扇区,特此更正。睡觉去了

[ 本帖最后由 wangjg 于 2008-1-8 07:43 AM 编辑 ]
回复

使用道具 举报

发表于 2008-1-10 20:12:12 | 显示全部楼层
需要 更多 实践 证明。
回复

使用道具 举报

 楼主| 发表于 2008-1-12 23:46:59 | 显示全部楼层
To fdd-ds:
仔细想了一下,我之前猜测的BIOS会隐藏若干个扇区的可能性很小,因为这样一来整个LBA地址空间全变了,就一定无法启动了。
我觉得还有一种可能性,需要实践来证实。
我又制作了一版,还是上传到置顶贴子里,你按照这个方法再试试:
原帖由 fdd_ds 于 2008-1-7 08:58 AM 发表
2、U-1gboot.img文件
我1g的U盘只有956个扇区,用WinHEX(工具--->磁盘工具--->克隆磁盘)写入镜像文件中的前956个扇区。

如果不能启动,注意一下屏幕显示GRUB字符串的瞬间,硬盘指示灯是否极快地闪一下。
回复

使用道具 举报

发表于 2008-1-13 15:11:58 | 显示全部楼层
还好我的可以USB CDROM启动了.
回复

使用道具 举报

发表于 2008-1-13 22:51:21 | 显示全部楼层
不错,支持,谢谢
回复

使用道具 举报

发表于 2008-1-14 09:41:16 | 显示全部楼层
还是不能启动,屏幕出现“GRUB"字符串后,硬盘灯闪烁一下,紧接着U盘灯闪烁几下后就一直常亮,机器就没反映了。
另外,我在这台机器上试过用U盘(HDD方式)分别以MSDOS和DRDOS启动,MSDOS不行,而DRDOS可以启动,并能加载grub.exe(grub4dos)引导IMG和ISO文件。
回复

使用道具 举报

 楼主| 发表于 2008-1-14 14:28:57 | 显示全部楼层
原帖由 fdd_ds 于 2008-1-14 09:41 AM 发表
还是不能启动,屏幕出现“GRUB"字符串后,硬盘灯闪烁一下,紧接着U盘灯闪烁几下后就一直常亮,机器就没反映了。
另外,我在这台机器上试过用U盘(HDD方式)分别以MSDOS和DRDOS启动,MSDOS不行,而DRDOS可以启动 ...

硬盘指示灯正常情况下是不应该闪一下的,实际上出现GRUB字符后,stage1要去读取驱动器0x80的第一扇区来加载stage1.5,在USB-HDD方式下驱动器0x80应该是U盘,只有某种因素影响下,0x80驱动器变成了本机硬盘,硬盘灯才会闪烁一下。
你看一下DRDOS启动后把U盘认成A盘还是C盘就知道了。
同时再试一下:使用winhex打开我上传的镜像文件,把从偏移004B开始的2个字节从原来的9090改为EB07,从偏移7E4B开始的2个字节从原来的9090改为EB07再试试。改了之后stage1就不会强制把启动驱动器设为0x80,而是使用BIOS传下来的DL寄存器的值。
另外,能把你用的DRDOS传上来一份吗?

[ 本帖最后由 wangjg 于 2008-1-14 02:50 PM 编辑 ]
回复

使用道具 举报

发表于 2008-1-14 15:30:22 | 显示全部楼层
好的,我再试试,有结果了再告知。我先把DRDOS传上来。真麻烦你了!

DRDOS.ima我是用WinImage写入U盘,然后仅保留COMMAND.COM、IBMBIO.COM、IBMDOS.COM这几个文件,再将GRUB4DOS(2008-01-03版)中的grub.exe拷入U盘,然后重启加载成功。

我刚试过还是不行,改了哪两处后,现象是一样的,出现"GRUB "(后跟一个空格然后是光标),U盘灯闪几下后常亮。
另外,改后在我本机上也不能启动了,本机屏幕上连光标都没有,整个黑屏,U盘灯常亮。

DRDOS启动后,识别为A:(可在XP下为磁盘1),这台机器的BIOS启动菜单中只识别为USB设备,而没分具体类别。

[ 本帖最后由 fdd_ds 于 2008-1-14 05:54 PM 编辑 ]

DRDOS.rar

114.83 KB, 下载次数: 156

回复

使用道具 举报

发表于 2008-1-14 16:47:31 | 显示全部楼层
写的很详细,学习一下,谢谢
回复

使用道具 举报

 楼主| 发表于 2008-1-14 22:12:34 | 显示全部楼层

回复 #70 fdd_ds 的帖子

按照我这些天的试验,bios对于启动U盘会读取U盘的首扇区来判断应该仿真成ZIP还是HDD。对于我的磐正主板,如果在首扇区找到BPB表,那么会仿真成USB-ZIP,并把驱动器号设为0;如果找到分区表,那么仿真成USB-HDD,并把驱动器号设为0x80,我的BIOS还会进一步按照BPB或分区表的参数来设置U盘的CHS参数(甚至你的BIOS还会越俎代庖地绕过MBR加载了分区引导扇区并执行)。据syslinux的作者说还有的bios会按照特定的分区格式来识别USB-ZIP,比如分区号必须为4,磁头数必须为64,每磁道扇区数必须为32等等。你的DRDOS.ima是一个软盘镜像,首扇区含有BPB,所以bios很可能将仿真模式设置为USB-ZIP,这就可以解释U盘识别为A:盘的现象。

对于这个问题:
另外,改后在我本机上也不能启动了,本机屏幕上连光标都没有,整个黑屏,U盘灯常亮。

据GRUB 0.97 stage1的源码,某些bios存在bug,bios并不把正确的启动驱动器号通过dl寄存器传给mbr代码,而是传回0或1(第一软驱或第二软驱),所以如果stage1安装到硬盘时会强制指定后续的stage1.5所在的驱动器号为0x80,这是GRUB0.97新增的。
按照我提供的方法修改后,stage1不作此强制动作,所以如果遇到这样的bios,stage1就会去软驱而不是U盘上读取stage1.5,导致错误。出错的时候如果有软驱,应该会看到软驱灯闪了一下。
不过就算这样,启动时也不应该“连光标都没有,整个黑屏”,至少应该出现GRUB字符串,请核实是否更改正确,即“使用winhex打开我上传的镜像文件,把从偏移004B开始的2个字节从原来的9090改为EB07,从偏移7E4B开始的2个字节从原来的9090改为EB07”。注意两处都是EB07而不是E807,即JMP $+7指令的机器码。


DRDOS启动后,识别为A:(可在XP下为磁盘1)

如前所述,这是因为bios和WindowsXP对U盘的识别方法不同造成的。


这台机器的BIOS启动菜单中只识别为USB设备,而没分具体类别。

如果bios对USB-HDD没有很好的支持的话,按USB-HDD启动设计的U盘无法启动成功也是很正常的。

[ 本帖最后由 wangjg 于 2008-1-14 10:22 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2008-1-14 22:36:40 | 显示全部楼层
有的BIOS不把正确的启动驱动器传给MBR这也是一个U盘无法启动的因素。而如果BIOS不提供这一信息,凭MBR或BOOT区的区区0.5K代码根本无法自行判断自己究竟是从哪里启动的,应到哪里继续加载后续的启动代码。关于这一点可以考虑启动时人工介入来提供这一信息。可以使用现成的:debain中的MBR包。这个包所安装的MBR代码可以在启动时提示用户输入后续启动代码的位置,可选位置包括硬盘各个分区及软驱。这样做出来的系统维护U盘应该可以克服这一问题。过1、2天我把这样的镜像传上来。
大家也可以自行制作:
在我制作的镜像文件基础上,做如下修改:
使用winhex打开我上传的镜像文件,把从偏移004B开始的2个字节从原来的9090改为EB07,从偏移7E4B开始的2个字节从原来的9090改为EB07。
然后用WinHEX(工具--->磁盘工具--->克隆磁盘)写入镜像文件中的尽可能多的扇区。
然后把U盘插入debain系统中,使用install-mbr命令加上如下功能的参数:
1、提示时间54,约3秒
2、提示的启动位置:1234AF
3、Ctrl-Shift热键中断
参数实现的功能就是这样了,具体参数忘记了,查一下联机帮助吧。这样就做好了。
使用时,如果不能启动,在出现MBR提示符时,按住Ctrl键,MBR会提示从何处启动,即1234AF,输入F或1尝试启动即可。

[ 本帖最后由 wangjg 于 2008-1-14 10:48 PM 编辑 ]
回复

使用道具 举报

发表于 2008-1-15 13:24:37 | 显示全部楼层
楼主的帖子实在是太好了,不过我没用过linux,正在补习中……
回复

使用道具 举报

 楼主| 发表于 2008-1-15 23:51:09 | 显示全部楼层
有的BIOS不把正确的启动驱动器传给MBR这也是一个U盘无法启动的因素。而如果BIOS不提供这一信息,MBR或BOOT区的代码根本无法自行判断自己究竟是从哪里启动的,应到哪里继续加载后续的启动代码。关于这一点可以考虑启动时人工介入来提供这一信息。可以使用现成的:debain中的MBR包。这个包所安装的MBR代码可以在启动时提示用户输入后续启动代码的位置,可选位置包括硬盘各个分区及软驱。这样做出来的系统维护U盘应该可以克服这一问题。

这一镜像使用时,如果不能启动,在出现MBR提示符时,3秒内按住Ctrl或Shift键,MBR会提示从何处启动,即1234AF,输入F或1尝试启动即可。

一点遗憾:这一MBR代码不像grub或syslinux那样,在BIOS不支持LBA模式时仅使用分区表中的扇区数结合BIOS提供的驱动器的CHS值来计算出引导扇区所在的CHS,而是直接使用分区表中记录的CHS信息来读取引导扇区,这一点不适合像U盘这种在各机器上识别到的CHS值不同的启动介质。当然,鉴于现在大部分BIOS对USB-HDD均支持LBA模式,所以在绝大多数机器上这种方法还是可用的,但毕竟是美中不足。

[ 本帖最后由 wangjg 于 2008-1-16 12:04 AM 编辑 ]

U1gboot1.part0001.rar

195.31 KB, 下载次数: 241

U1gboot1.part0002.rar

195.31 KB, 下载次数: 208

U1gboot1.part0003.rar

195.31 KB, 下载次数: 131

U1gboot1.part0004.rar

195.31 KB, 下载次数: 172

U1gboot1.part0005.rar

50.7 KB, 下载次数: 125

回复

使用道具 举报

发表于 2008-1-16 13:57:29 | 显示全部楼层
我试了还是不行 。
1、虚拟机中,一是把镜像文件直接加入软盘,启动后出现“MBR 1234FA:“,6个选项全试过,都不行;选F时,屏幕重复出“MBR 1234FA:“。二是写入U盘后,用U盘启动,屏幕出现”GURB “后,就没反映了。
2、两台真实机中,一台出现”GURB “,U盘灯闪几下后常亮,就没反映了。另一台,整个黑屏,U盘反映一样。

写入U盘是用WinImage,过程中出现“需重新调整大小”提示,选择是。写入后用WINHEX查看,发现扇区内容与你上传文件不同,现将U盘中的前500个扇区传上来,麻烦你给看看,谢谢了!

另外再问一下,GNU GRUB能否引导可启动的ISO文件?如果可以,menu.lst中应如何写?


使用winhex打开我上传的镜像文件,把从偏移004B开始的2个字节从原来的9090改为EB07,从偏移7E4B开始的2个字节从原来的9090改为EB07。
我是照作的,问题机中不行,其它机器可以。我现用U盘就是改过后的。

500扇区.rar

983 Bytes, 下载次数: 127

回复

使用道具 举报

 楼主| 发表于 2008-1-17 00:49:35 | 显示全部楼层

回复 #76 fdd_ds 的帖子

看了你的附件,首先可以肯定使用winimage写入U盘不行,正如你所说的:

写入U盘是用WinImage,过程中出现“需重新调整大小”提示,选择是。写入后用WINHEX查看,发现扇区内容与你上传文件不同,现将U盘中的前500个扇区传上来,麻烦你给看看


我提供的镜像应该使用winhex中的clone disk功能直接写入U盘,实际上写入4000个扇区就够了,后面全是00,我分区分了五百多兆,只要U盘大于528M即可使用。



我试了还是不行 。
1、虚拟机中,一是把镜像文件直接加入软盘,启动后出现“MBR 1234FA:“,6个选项全试过,都不行;选F时,屏幕重复出“MBR 1234FA:“。


这种方式肯定不行,对于软驱来讲BIOS一般不会支持LBA,在这种情况下MBR代码会出错,原因详见我75楼贴子中关于“一点遗憾”部分。如果使用一楼贴子的附件加上修改
使用winhex打开我上传的镜像文件,把从偏移004B开始的2个字节从原来的9090改为EB07,从偏移7E4B开始的2个字节从原来的9090改为EB07。

才有可能启动。

二是写入U盘后,用U盘启动,屏幕出现”GURB “后,就没反映了。
2、两台真实机中,一台出现”GURB “,U盘灯闪几下后常亮,就没反映了。另一台,整个黑屏,U盘反映一样。

重新按照正确方法制作U盘再试


另外再问一下,GNU GRUB能否引导可启动的ISO文件?如果可以,menu.lst中应如何写?

GNU GRUB没听说有这种功能。我觉得对于引导程序引导可启动的ISO文件还是不要抱有幻想了,如果是启动DOS还能实现,对于启动PE来讲目前可能性不大。

因为DOS使用软中断来访问磁盘,可以通过编写中断处理程序来把ISO文件或其中的一部分来模拟成磁盘。除此之外,还可以在保护模式下,通过编写异常处理程序截获低RING级下的IO端口访问来实现模拟磁盘。但对于保护方式的PE来说,首先它不使用软中断来访问磁盘,这样就无法通过截获中断来模拟光盘;其次它工作在保护模式,进行磁盘操作的驱动程序工作在RING0级,无法进行上述模拟。就连XEN也需要修改操作系统使其工作在RING1级才可以支持虚拟。

除非像当年的trw或现在的vmware那样对机器指令进行解释执行,才可以截获Ring0下的in、out指令来模拟出光盘实现PE启动。不过这样的功能对于boot loader来说有点太...那个了吧?与其虚拟光驱,同样的技术还不如虚拟硬盘及其他硬件,制作一个随身携带的XP虚拟机系统,这样PE就可以休矣。现在vmware 推出了一个叫ESX 3i 的东西,就是ESX Server的嵌入版,U盘启动后就可以直接使用虚拟机了。刀片服务器再密,密度也高不过这些小U盘吧,据说目前的数据中心将会因为这个东西发生翻天覆地的变化。越扯越远,跑题了。

对于boot loader来说,比较快速的做法是需要找到一个合适的、开源的虚拟机软件,比如virtual box,并作大量改造整合到boot loader里,对于grub4dos或syslinux而言就是要编写一个新的kernel模块---就像memdisk那样,就看有没有人愿意动手了。

[ 本帖最后由 wangjg 于 2008-1-17 01:45 AM 编辑 ]
回复

使用道具 举报

发表于 2008-1-18 16:33:49 | 显示全部楼层
学习学习  不错 3ks
回复

使用道具 举报

发表于 2008-1-19 00:13:22 | 显示全部楼层
我用winhex中的"克隆磁盘"重新写入U盘后,在那台问题机子中任然是出现”GURB “后,就没反映了,并没有出现“MBR 1234FA:“的选择提示。再次上传U盘的前500个扇区。
现在的Grub4dos就可以引导可启动的ISO文件了,用你提供的镜像文件配合NTLDR+GRUB或DOS+GRUB方式就可以。这两种方式我都试过了,但兼容性存在问题。

500扇区.rar

7 KB, 下载次数: 107

回复

使用道具 举报

发表于 2008-1-19 11:31:30 | 显示全部楼层
果然是'牛人..强啊..支持一个..
回复

使用道具 举报

 楼主| 发表于 2008-1-19 19:25:26 | 显示全部楼层
原帖由 fdd_ds 于 2008-1-19 12:13 AM 发表
我用winhex中的"克隆磁盘"重新写入U盘后,在那台问题机子中任然是出现”GURB “后,就没反映了,并没有出现“MBR 1234FA:“的选择提示。 再次上传U盘的前500个扇区。

上传的500扇区文件正确,考虑到:
DRDOS启动后,识别为A:(可在XP下为磁盘1),这台机器的BIOS启动菜单中只识别为USB设备,而没分具体类别。

这个问题应该很清楚了,这台机器对USB-HDD启动支持不良。可以使用USB-ZIP或USB-FDD方式。

原帖由 fdd_ds 于 2008-1-19 12:13 AM 发表
现在的Grub4dos就可以引导可启动的ISO文件了,用你提供的镜像文件配合NTLDR+GRUB或DOS+GRUB方式就可以。

1、PE的ISO或XP安装盘ISO恐怕是不行吧。
2、我不明白,我提供的镜像文件如何配合NTLDR+GRUB或DOS+GRUB方式?

[ 本帖最后由 wangjg 于 2008-1-19 07:31 PM 编辑 ]
回复

使用道具 举报

发表于 2008-1-20 12:19:50 | 显示全部楼层
这个问题应该很清楚了,这台机器对USB-HDD启动支持不良。可以使用USB-ZIP或USB-FDD方式。

好的,知道了,我就不在这批机子上费劲了。看样子想制作通用USB启动盘是不行了。谢谢楼主的指教!!!

1、PE的ISO或XP安装盘ISO恐怕是不行吧。2、我不明白,我提供的镜像文件如何配合NTLDR+GRUB或DOS+GRUB方式?

1、PE的ISO文件我用Grub4DOS测试成功,并且可以浏览网页,ISO文件我用的是老毛桃070911版。XP安装盘的ISO文件我用的是深度精简标准版V5.8测试,安装过程中出现07B蓝屏;原版的ISO没测试,Grub4DOS论坛上有人说通过修改后是可以的。
2、我的意思是说,用你提供的镜像文件克隆的U盘启动后,再以NTLDR或DOS方式加载Grub4DOS。
我的操作是:在boot\grub\中放入第一个menu.lst文件(GNU GRUB使用);在根目录上放入第二个menu.lst文件(Grub4DOS使用)和grldr(Grub4DOS中的)及XP的基本启动文件,编辑boot.ini写入“c:\grldr”;在boot\中放入一个DOS基本启动的dos.ima文件,ima中添加grub.exe(Grub4DOS中的)和第二个menu.lst文件。

第一个meun.lst文件
...    ...
title    【 A 】NTLDR引导Grub4dos
find --set-root /ntldr
chainloader /ntldr

title    【 B 】DOS引导Grub4dos
find --set-root /ntldr
map --mem /boot/dos.ima (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

boot.ini文件
[boot loader]
timeout=5
default=c:\grldr
[operating systems]
c:\grldr="启动grub4dos"

第二个menu.lst文件
...    ...
title    【 1 】加载可启动的ISO文件
find --set-root /ntldr
map --mem /boot/deepinxp.iso (0xFF)
(或map --mem /boot/pe.iso (0xFF))
map --hook
chainloader (0xFF)
boot

另外,在一此论坛有人提到u盘启动采用syslinux的兼容性较好,可本人对linux一点都不会,因此想请你帮助制作一个syslinux引导grub4dos的U盘镜像,谢谢了!!!
回复

使用道具 举报

发表于 2008-1-20 12:23:24 | 显示全部楼层
楼主高人啊,想学看不懂
回复

使用道具 举报

 楼主| 发表于 2008-1-21 03:02:26 | 显示全部楼层

回复 #82 fdd_ds 的帖子

1、PE的ISO文件我用Grub4DOS测试成功,并且可以浏览网页,ISO文件我用的是老毛桃070911版。XP安装盘的ISO文件我用的是深度精简标准版V5.8测试,安装过程中出现07B蓝屏;原版的ISO没测试,Grub4DOS论坛上有人说通过修改后是梢缘摹?/quote]
看来,使用RAMDISK方式启动的PE是可以内存映射仿真的,传统的,不使用RAMDISK的PE和XP安装盘ISO是不可以内存映射仿真的。总之,使用软中断方式访问光盘或是具备相应驱动程序的都是可以内存映射仿真的。

[quote]
2、我的意思是说,用你提供的镜像文件克隆的U盘启动后,再以NTLDR或DOS方式加载Grub4DOS。
我的操作是:在boot\grub\中放入第一个menu.lst文件(GNU GRUB使用);在根目录上放入第二个menu.lst文件(Grub4DOS使用)和grldr(Grub4DOS中的)及XP的基本启动文件,编辑boot.ini写入“c:\grldr”;在boot\中放入一个DOS基本启动的dos.ima文件,ima中添加grub.exe(Grub4DOS中的)和第二个menu.lst文件。

第一个meun.lst文件
...    ...
title    【 A 】NTLDR引导Grub4dos
find --set-root /ntldr
chainloader /ntldr

title    【 B 】DOS引导Grub4dos
find --set-root /ntldr
map --mem /boot/dos.ima (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

我觉得,这种方式走了弯路。其实无须NTLDR,grub.exe可以作为linux kernel加载,只要把grub.exe拷贝到根目录,在把你的第一个menu.lst文件改为这样:
  1. title    【 A 】引导Grub4dos
  2. find --set-root /grub.exe
  3. kernel /grub.exe

  4. title    【 B 】虚拟软盘DOS引导Grub4dos
  5. find --set-root /ntldr
  6. map --mem /boot/dos.ima (fd0)
  7. map (fd0) (fd1)
  8. map --floppies=2
  9. map --hook
  10. chainloader (fd0)+1
  11. rootnoverify (fd0)
  12. boot
复制代码
即可。
另外,在一此论坛有人提到u盘启动采用syslinux的兼容性较好,可本人对linux一点都不会,因此想请你帮助制作一个syslinux引导grub4dos的U盘镜像,谢谢了!!!

从我的经验来看,在U盘启动方面syslinux和gnu grub的兼容性差不多,在pxe网络启动方面和引导光盘方面syslinux兼容性要好于grub。其实,syslinux可以在windows下安装到U盘MBR里,它提供了一个叫syslinux.exe的工具。

不过,在我的机器上,grub4dos不论中文版还是英文版,不论是使用GNU GRUB还是SYSLINUX加载,只要以kernel方式加载,运行速度就很慢。不知你的是不是这样。附件中是SYSLINUX启动加载GRUB4DOS4.3中文版的磁盘镜像,这一次,磁盘后面是无用的、全0字节的部分我没有包含在镜像文件里,使用方法还是使用winhex的克隆功能复制到大于528M的U盘上。


磁盘镜像传错了,已删除。

[ 本帖最后由 wangjg 于 2008-1-21 11:46 PM 编辑 ]
回复

使用道具 举报

发表于 2008-1-21 17:41:18 | 显示全部楼层

回复 #84 wangjg

这么晚了,还在回我的贴子,真是太感谢了!

不过,在我的机器上,grub4dos不论中文版还是英文版,不论是使用GNU GRUB还是SYSLINUX加载,只要以kernel方式加载,运行速度就很慢。不知你的是不是这样。

我的也是一样,速度很慢,以kernel方式加载Grub4DOS来启动老毛的PE大概要4~5分钟,而用NTLDR或DOS方式加载Grub4DOS启动同一个PE也就不超过1分钟,这也就是我为什么要像82#里面那样转个弯啦!但是这样有个问题,那就是有的机子上不能用DOS引导Grub4DOS,像我现在这台子就会出现“Failure restore ROM INT 0x10 Vector. Unsupported DOS, device driver, or TSR “(DOS是基本启动,未加载任何设备和驱动),而用kernel方式加载grub.exe就可以,但速度较慢。

另外,你上传的镜像好像有问题,请检查一下!请将镜像文件调整到128m以内,谢谢!
回复

使用道具 举报

 楼主| 发表于 2008-1-21 23:40:33 | 显示全部楼层

回复 #85 fdd_ds 的帖子

不用谢,这是你要的128M以内镜像。83楼的镜像文件是错的,那是另一个U盘,我弄混了。

[ 本帖最后由 wangjg 于 2008-1-21 11:45 PM 编辑 ]

U1gboot3.part1.rar

195.31 KB, 下载次数: 215

U1gboot3.part2.rar

195.31 KB, 下载次数: 189

U1gboot3.part3.rar

164.08 KB, 下载次数: 224

回复

使用道具 举报

发表于 2008-1-22 21:30:19 | 显示全部楼层
教授与他的弟子们在交流
一群小学生在旁听
回复

使用道具 举报

发表于 2008-1-23 09:08:43 | 显示全部楼层

回复 wangjg

不用谢,这是你要的128M以内镜像。

      U盘启动syslinux成功!

      昨天我用家里E4500的CPU,1G内存,GA-P31-DS3L主板的机子上以syslinux--->gurb4dos--->pe方式测试起动老毛桃070911版PE,那个速度呀!45min还没完整进入桌面!
      换台联想机子用syslinux--->gurb4dos--->ntldr--->gurb4dos--->pe方式(没错是两次启动gurb4dos)速度能快不少。我家里的那台机子在syslinux--->gurb4dos--->ntldr时死机了,没法继续测试。

      现请问wangjg:
      1、syslinux对启动分区有无大小要求?
      2、能否syslinux-->ntldr,即syslinux能否直接引导XP的ntldr?如果可以,syslinux.cfg该如何编写?
                                                                 谢谢!!!
回复

使用道具 举报

发表于 2008-1-23 10:12:24 | 显示全部楼层
楼主认为最新版的GRUB4DOS 0.4.3安装到MBR,启动后的兼容性怎样?
回复

使用道具 举报

 楼主| 发表于 2008-1-23 14:02:32 | 显示全部楼层
原帖由 fdd_ds 于 2008-1-23 09:08 AM 发表
1、syslinux对启动分区有无大小要求?

syslinux本身对启动分区大小没有要求。但是我发现有bios(IBM X346服务器)不支持USB-HDD的LBA,只支持CHS,也就是说有1024柱面限制。可能还有不支持磁头数超过16的,为了保险起见,USB-HDD方式启动分区不要大于1023*16*63个扇区即528MB或508MiB。这个限制与syslinux无关。

原帖由 fdd_ds 于 2008-1-23 10:12 AM  发表
2、能否syslinux-->ntldr,即syslinux能否直接引导XP的ntldr?如果可以,syslinux.cfg该如何编写?

标准的syslinux无法直接引导XP的ntldr,有人做过这方面的补丁,但是syslinux版本更新很频繁,补丁跟不上。
最近还有一个叫SIBIO的syslinux变种,能够直接引导ntldr,但我觉得SIBIO还不成熟---它不能安装到MBR里。
我使用syslinux引导ntldr通常有2种方法:
1、制作一个启动grub4dos的软盘镜像,使用syslinux的memdisk从镜像文件启动,也就是你前面提到的dos+grub方式。这样的镜像文件你一定已经有了,可以参考我提供的U盘镜像里的syslinux.cfg文件中关于软盘镜像启动的例子。
就在LABEL windiag那一块。
2、使用其他的bootldr比如Gandalf的avlgomgr,即syslinux->avldr->ntldr。这时syslinux.cfg文件相应位置应为boot或bss /avldr
原帖由 原名丢了 于 2008-1-23 09:08 AM 发表
楼主认为最新版的GRUB4DOS 0.4.3安装到MBR,启动后的兼容性怎样?

0.4.3的我没试过,还不知道。试过0.4.2的,兼容性不佳。

[ 本帖最后由 wangjg 于 2008-1-23 04:20 PM 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-25 01:14

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表