无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 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 修复。

点评

不止显示分辨率的BUG,而且启动停留在GRUB版本字符上面不动了,进 不了PE的启动页面了!9月4号的版本正常  详情 回复 发表于 2014-9-6 08:46
回复

使用道具 举报

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/

收藏这个地址吧。

点评

谢谢。已经下载了。  详情 回复 发表于 2014-9-8 17:56
回复

使用道具 举报

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 命令,这样就没问题了。

点评

逗号是笔误, 拷贝到帖子上时笔误。实际没有。否则也出不了上图。 意思是grub.exe 无法想grldr 一样 传递 当前 根分区信息。 可惜啊。  详情 回复 发表于 2014-10-8 15:05
回复

使用道具 举报

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 去解决了。

点评

没问题,肯定可以屏蔽。 是mdyblog第二行: map /IMG/SSHYDOS.IMG (fd0) >nul && set ok=1 笔误了。  详情 回复 发表于 2014-10-9 11:08
如 382# 图所示, "debug off" “>nul” 都用上了。 还是有漏出来的信息提示。  详情 回复 发表于 2014-10-8 15:33
回复

使用道具 举报

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, 2024-6-29 09:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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