无忧启动论坛

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

支持含有碎片的文件仿真

    [复制链接]
361#
 楼主| 发表于 2014-9-5 09:45:09 | 只看该作者
grub4dos-0.4.6a-2014-09-03已解决此问题,无此提示了。

grub4dos-0.4.6a-2014-09-04怎样?
回复

使用道具 举报

362#
发表于 2014-9-5 10:49:10 | 只看该作者
本帖最后由 jianliulin 于 2014-9-5 10:56 编辑

grub4dos-0.4.6a-2014-09-05 graphicsmode -1 600:800 > nul 分辨率变成最大的了,而grub4dos-0.4.6a-2014-09-04正常
回复

使用道具 举报

363#
 楼主| 发表于 2014-9-5 11:08:41 | 只看该作者
grub4dos-0.4.6a-2014-09-05

从哪里下载的?
回复

使用道具 举报

364#
发表于 2014-9-5 12:36:21 | 只看该作者
chenall.net
回复

使用道具 举报

365#
 楼主| 发表于 2014-9-5 15:26:30 | 只看该作者
我这里刚看到更新的grub4dos-0.4.6a-2014-09-05.
回复

使用道具 举报

366#
发表于 2014-9-5 19:07:13 | 只看该作者
英文论坛也报告了 9月5日 的 bug。我猜可能是某个地方的疏忽引起的。

改动太大了,难免有错漏之处。大家可以详细报告一下,让 chenall 知道问题在哪里,然后大家等待 chenall 修复。

回复

使用道具 举报

367#
发表于 2014-9-6 08:46:12 | 只看该作者
不点 发表于 2014-9-5 19:07
英文论坛也报告了 9月5日 的 bug。我猜可能是某个地方的疏忽引起的。

改动太大了,难免有错漏之处。大家 ...

不止显示分辨率的BUG,而且启动停留在GRUB版本字符上面不动了,进 不了PE的启动页面了!9月4号的版本正常
回复

使用道具 举报

368#
发表于 2014-9-6 10:12:16 | 只看该作者
上面的报告都太过于笼统,无法判断原因.

英文论坛的BUG已经确认修复(未上传).

上面的问题的可以直接试试这个看看是不是一样的问题.

https://grub4dos-chenall.googlec ... f9Q%3A1409969468960

这个BUG应该只影响到压缩文件(GZ/LZMA).

点评

google被墙上不去。9月2日以后的版本下载不到。 请问什么时候一楼可以再更新一下,更新到9月4日5日的?  详情 回复 发表于 2014-9-8 12:17
map能不能提供这样的仿真硬盘功能: map --in-situ (hd1)102400+102400 (hd0) map --rehook (hd1)102400+102400 处有一文件系统,但不在分区表中。 一般能够仿真软盘: map (hd1)102400+102400 (fd0)  详情 回复 发表于 2014-9-6 12:59
回复

使用道具 举报

369#
发表于 2014-9-6 12:59:21 | 只看该作者
本帖最后由 mdyblog 于 2014-9-8 10:26 编辑

----
回复

使用道具 举报

370#
发表于 2014-9-8 12:17:34 | 只看该作者
chenall 发表于 2014-9-6 10:12
上面的报告都太过于笼统,无法判断原因.

英文论坛的BUG已经确认修复(未上传).

google被墙上不去。9月2日以后的版本下载不到。
请问什么时候一楼可以再更新一下,更新到9月4日5日的?

点评

下载地址是这里: http://grub4dos.chenall.net/ 收藏这个地址吧。  详情 回复 发表于 2014-9-8 12:52
回复

使用道具 举报

371#
发表于 2014-9-8 12:52:31 | 只看该作者
2011niumao 发表于 2014-9-8 12:17
google被墙上不去。9月2日以后的版本下载不到。
请问什么时候一楼可以再更新一下,更新到9月4日5日的?

下载地址是这里:

http://grub4dos.chenall.net/

收藏这个地址吧。
回复

使用道具 举报

372#
发表于 2014-9-8 17:56:48 | 只看该作者
不点 发表于 2014-9-8 12:52
下载地址是这里:

http://grub4dos.chenall.net/

谢谢。已经下载了。
回复

使用道具 举报

373#
 楼主| 发表于 2014-9-23 15:58:13 | 只看该作者
使用 bootlace.com 安装 grldr.mbr 到 gpt 分区类型的设备。

点评

是否意谓着在gpt分区单硬盘上,不借助xorboot工具,用bootlace工具就可将grub4dos的启动代码头部即grldr.mbr安装在gpt分区的0扇区或某指定扇区,并由其搜索gpt分区根目录下的grldr即可启动grub4dos的菜单。 但不  详情 回复 发表于 2014-9-24 11:44
回复

使用道具 举报

374#
发表于 2014-9-24 11:44:47 | 只看该作者
2011yaya2007777 发表于 2014-9-23 15:58
使用 bootlace.com 安装 grldr.mbr 到 gpt 分区类型的设备。

是否意谓着在gpt分区单硬盘上,不借助xorboot工具,用bootlace工具就可将grub4dos的启动代码头部即grldr.mbr安装在gpt分区的0扇区或某指定扇区,并由其搜索gpt分区根目录下的grldr即可启动grub4dos的菜单。

但不知 bootlace怎样用,我在win7_x64的cmd窗口,发bootlace64 ? 以求帮助,提示与windows系统不兼容,还望指点,谢谢!
回复

使用道具 举报

375#
 楼主| 发表于 2014-9-24 12:11:23 | 只看该作者
在win7_x64的cmd窗口,使用 bootlace.com,执行:
bootlace --gpt 0x80
grldr.mbr安装在gpt分区的某间隙处。
回复

使用道具 举报

376#
发表于 2014-9-24 16:01:24 | 只看该作者
本帖最后由 不点 于 2014-9-24 18:41 编辑

bootlace 是 DOS 格式,我听说 64 位的 Windows 不再支持 16 位的 DOS 程序了。

因此,yaya 所提到的办法,应该是行不通的。

即使在 32 位的 XP 时代,bootlace 也不支持直接读写物理硬盘。这是因为 XP 已经禁止了 16 位 DOS 程序访问物理硬盘扇区的能力。只能通过一个文件来使用 bootlace。

首先用 dd for windows 把物理硬盘开头的 64 个扇区截获,放在一个文件中,比如文件名叫做 MBRfile。
第二步,运行 bootlace MBRfile 就把引导代码安装到 MBRfile 上了。
最后再用 dd for windows 把 MBRfile 写回到硬盘上。

yaya 所提到的用法,只适用于纯 DOS 或者 Win98 的 DOS 窗口,不能用于 NT 系列的 “命令提示符” 窗口。

可以从 grub4dos 进入一个 DOS 环境,然后再使用 yaya 的方法。不过,需要提醒的是,现在 BIOS 本身毛病很多,导致 DOS 不可靠,因此,DOS 下运行 bootlace 也就不可靠了。“不可靠” 的意思是说,bootlace 有可能写入到错误的扇区上,导致硬盘开头部分的扇区数据被覆盖掉,使整个硬盘都无法被操作系统识别,需要重新格式化才能解决。所以,通常我们建议尽量不要在 DOS 下运行 bootlace。

有人曾经建议,把 bootlace 移植到 grub4dos 环境,在 grub4dos 环境执行这个操作,就比较可靠了。其实也并不十分可靠。因为 grub4dos 的环境也照样是基于 BIOS 的,对于那些有毛病的 BIOS,照样容易出错。一般来说,如果 BIOS 支持 LBA,则通常可以认为是 100% 可靠的。而那些只支持 CHS 的 BIOS,则是非常不可靠的。即使 BIOS 支持 LBA,它也可能出现问题,因为 BIOS 可能仅仅支持 LBA 的读操作,而不支持 LBA 的写操作。如果 BIOS 不支持写入,则 bootlace 无法把启动代码写入到硬盘。我们看到,由于 BIOS 本身存在各种各样的毛病,在 BIOS 之下执行 bootlace 的操作,已经保证不了较高的可靠性了。这对于需要高可靠性的 bootlace 操作来说是致命的。大家都不希望 bootlace 失败,更不希望 bootlace 会造成破坏。也因此,把 bootlace 移植到 grub4dos 的工作,就没有必要再去做了。

综合一下,前面提到了两点:

其一,bootlace 在基于 BIOS 的环境不可靠。建议不要采用这种方式。
其二,bootlace 在 WIndows NT 系列下只能间接进行安装,不能直接进行安装,需要拐个弯,通过 dd for windows 来实现。不过,这种方法倒是可靠的,因为这不再使用主板本身的 BIOS 了,而是使用 Windows NT 所提供的虚拟 DOS 服务。注意,这里的 “可靠” 不等于 “安全”。“可靠” 是指 bootlace 不会犯错,不会出现莫名其妙的错误了。“安全” 是指当你使用 dd for windows 写盘时,你需要保证不写入到错误的盘上。如果你写入到错误的盘上,那就直接毁了这个被写的盘。因此,安全性与 bootlace 无关,而与操作者有关。这就解释了 “可靠” 不等于 “安全”。

好了,该说说第三种方法了。那就是,使用 Linux,它也是可靠的方法。使用 Linux 之所以可靠,是因为 Linux 也不使用主板 BIOS。与 Windows NT 相比,使用 Linux 的好处是不用拐弯了,因为 Linux 下的 bootlace 支持直接写入物理硬盘。当然了,由于不再拐弯,所以,安全性也算是比较好了。

最后再总结一下,推荐的可靠方法只有两种:

1、使用 Windows NT,但需要 “拐弯” 经由 dd for windows 实现安装。
2、使用 Linux,直接安装。

具体使用方法,可以参考 grub4dos 软件包里面的 README 文件。


最后再补充强调一点。Windows NT 的 “命令提示符” 之下所运行的 DOS 程序,可以调用 DOS 服务,即 int21,这是由 NT 系统所提供的虚拟 DOS 服务。当然,其他相关的 DOS 服务也会由 NT 系统来提供。但是,NT 系统不提供 int13 这个 BIOS 服务。所以,INT13 方式的读写磁盘,都会返回失败信息。这就是为什么不能在 NT 的 “命令提示符” 下使用 bootlace 0x80 的原因,只能使用 bootlace MyFile 的方式,这种方式使用的是虚拟 DOS 的 int21 磁盘服务,而不是使用 BIOS 的 int13 磁盘服务。

严格来说,bootlace 支持三种运行环境:

1、带有 BIOS 的 DOS 环境。例如,实模式下的 DOS 环境,使用主板提供的 BIOS。再比如,Win98 的 DOS 窗口,既含有虚拟的 DOS 服务,也含有虚拟的 BIOS 服务。bootlace 既可以使用 int13 BIOS 服务,也可以使用 int21 DOS 服务。
2、不带 BIOS 的 DOS 环境。Windows NT 的命令提示符就是这样的环境,它阉割掉了 BIOS 的 int13 磁盘服务,只能使用虚拟的 DOS 磁盘服务 int21。
3、Linux 32 位(或 64 位)环境,bootlace(或 bootlace64)使用 Linux 的系统调用进行磁盘的读写。
回复

使用道具 举报

377#
 楼主| 发表于 2014-9-25 12:54:39 | 只看该作者
不点分析得很透彻。以前使用 bootlace 安装 exfat 引导代码到 u 盘,测试启动情况,记不清是在 win 98 还是 win xp(按不点的指点,应当是在 win 98),是成功的。只是第一次执行 int 13/42 读返回失败,然后执行 int 13/00 磁盘复位后再次读,成功。
后来测试 bootlace,都是在 windows 系统下写入文件,在 VM 虚拟环境的 linux 系统下写入虚拟磁盘。
看来 bootlace 的作用越来越小了。

点评

按照 不点 大师 的说法,要安全地写入到gpt分区的某间隙处,是否是比较难了。 若真如此,看来要再等等其他工具的出现,就暂时不使用bootlace来写入gpt分区了。  详情 回复 发表于 2014-9-25 15:22
回复

使用道具 举报

378#
发表于 2014-9-25 15:22:16 | 只看该作者
2011yaya2007777 发表于 2014-9-25 12:54
不点分析得很透彻。以前使用 bootlace 安装 exfat 引导代码到 u 盘,测试启动情况,记不清是在 win 98 还是 ...

按照 不点 大师 的说法,要安全地写入到gpt分区的某间隙处,是否是比较难了。

若真如此,看来要再等等其他工具的出现,就暂时不使用bootlace来写入gpt分区了。
回复

使用道具 举报

379#
发表于 2014-9-26 16:54:19 来自手机 | 只看该作者
bootice 写扇区很厉害啊  可以搞定GTP下的扇区写入
回复

使用道具 举报

380#
发表于 2014-10-8 10:17:23 | 只看该作者
本帖最后由 mdyblog 于 2014-10-8 15:03 编辑

这个不知道是否是个grub.exe的BUG?
本来的root分区为(cd). wee63 如下代码启动 grub.exe, grub.exe的root分区并没有更新为(hd0,0)
  1. root (hd0,0)
  2. command /boot/grub/grub.exe --config-file="echo root=[%@root%]; pause --wait=30 "
复制代码
显示的root=[(cd)]
而不是 root=[(hd0,0)]

上面 root (hd0,0)生效了, 因为(cd)没有 /boot/grub/grub,.exe,只有 (hd0,0)有。
最新 0.45出0.46都如此。

回复

使用道具 举报

381#
发表于 2014-10-8 11:27:06 | 只看该作者
你的命令行敲错了,grub.exe 中间插入了一个多余的逗号。

根据你的描述,目前我初步认为,这不是 bug。

你这个用法是把 grub.exe 当作 Linux 内核格式来执行。Linux 内核格式是不接受外面传来的 grub 信息的。

所以,root 的指定是无效的。

不过,你可以在命令行指定 root,就是在 echo 命令的前后执行 root 命令,这样就没问题了。

回复

使用道具 举报

382#
发表于 2014-10-8 15:00:55 | 只看该作者
请问,map 的信息如何完全屏蔽,又不丢失 条件码? 如图所示:

点评

debug off 也没屏蔽掉 map 的输出?不会吧?这大概得让 chenall、yaya 去解决了。  详情 回复 发表于 2014-10-8 15:23
回复

使用道具 举报

383#
发表于 2014-10-8 15:05:28 | 只看该作者
本帖最后由 mdyblog 于 2014-10-8 15:09 编辑
不点 发表于 2014-10-8 11:27
你的命令行敲错了,grub.exe 中间插入了一个多余的逗号。

根据你的描述,目前我初步认为,这不是 bug。
...


逗号是笔误, 拷贝到帖子上时笔误。实际没有。否则也出不了上图。

意思是grub.exe 无法像grldr 一样 传递 当前 根分区信息。
这和一般理解和习惯很不同啊!!
可惜啊。

还有,这个原因出在 调用者wee63 还是 被调用者grub.exe???
能出(cd), 说明还是传递了信息。 "(cd)"本身也是信息啊!

点评

我上载了一个版本,你看看有没有问题。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=342350&extra=page%3D1  详情 回复 发表于 2014-10-9 17:11
这个问题,简单说说吧,  详情 回复 发表于 2014-10-8 18:24
回复

使用道具 举报

384#
发表于 2014-10-8 15:23:46 | 只看该作者
mdyblog 发表于 2014-10-8 15:00
请问,map 的信息如何完全屏蔽,又不丢失 条件码? 如图所示:

debug off 也没屏蔽掉 map 的输出?不会吧?这大概得让 chenall、yaya 去解决了。

回复

使用道具 举报

385#
发表于 2014-10-8 15:33:39 | 只看该作者
本帖最后由 mdyblog 于 2014-10-8 18:35 编辑
不点 发表于 2014-10-8 15:23
debug off 也没屏蔽掉 map 的输出?不会吧?这大概得让 chenall、yaya 去解决了。


如 382# 图所示,  "debug off"  “>nul” 都用上了。 还是有漏出来的信息提示。
  1. debug off
  2. map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1
复制代码


回复

使用道具 举报

386#
发表于 2014-10-8 16:34:35 | 只看该作者
map 的信息可用屏蔽。一点信息都不想显示。

点评

怎么屏蔽? 一点信息都不想显示。 同时 又不丢失条件码。 下面代码(或等价)能实现:  详情 回复 发表于 2014-10-8 18:34
回复

使用道具 举报

387#
发表于 2014-10-8 18:24:00 | 只看该作者
本帖最后由 不点 于 2014-10-8 18:34 编辑
mdyblog 发表于 2014-10-8 15:05
grub.exe 无法像grldr 一样 传递 当前 根分区信息。
这和一般理解和习惯很不同啊!!
可惜啊。

还有,这个原因出在 调用者wee63 还是 被调用者grub.exe???
能出(cd), 说明还是传递了信息。 "(cd)"本身也是信息啊!


我又考虑了一下,传递根分区的信息,应该也是可能的。稍后我看看能否解决这个问题。

回复

使用道具 举报

388#
发表于 2014-10-8 18:34:44 | 只看该作者
2011yaya2007 发表于 2014-10-8 16:34
map 的信息可用屏蔽。一点信息都不想显示。

怎么屏蔽? 一点信息都不想显示。
同时 又不丢失条件码。
下面代码(或等价)能实现:
  1. debug off
  2. map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1
复制代码
回复

使用道具 举报

389#
发表于 2014-10-9 11:08:28 | 只看该作者
不点 发表于 2014-10-8 15:23
debug off 也没屏蔽掉 map 的输出?不会吧?这大概得让 chenall、yaya 去解决了。

没问题,肯定可以屏蔽。
是mdyblog第二行:
map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1
笔误了。

点评

debug off map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1[/backcolor] map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1[/backcolor] 不知道 什么意思? 两行一样啊!只是字体不同, 用“搜索”能互相找到。 前  详情 回复 发表于 2014-10-11 08:54
回复

使用道具 举报

390#
 楼主| 发表于 2014-10-9 11:46:32 | 只看该作者
0.4.6a 的 map 在 “debug off ” 时显示信息,已经修正,从官网下载。

点评

好的, 我试试。 另外, 怎么生成空格前导的变量: 变量的前面好多空格。 下都丢了!!!!  详情 回复 发表于 2014-10-10 14:11
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-15 21:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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