无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

支持含有碎片的文件仿真

    [复制链接]
331#
发表于 2014-8-20 18:12:06 | 只看该作者
作为批处理标识,批处理文件内容要以
!BAT
开头吧。而你用
#
开头。

点评

请教, G4D 有alilias 之类的命令吗? alias cmda=(md)0x200+1 以后直接用 有意义点的名字: cmda 不用没什么意义的: (md)0x200+1  详情 回复 发表于 2014-8-20 18:22
谢谢!!! 犯了低级错误。 LINUX习惯了(#!开头)。 没有复查资料。 可以了。 [attachimg]198295[/attachimg] 再次感谢!!  详情 回复 发表于 2014-8-20 18:20
回复

使用道具 举报

332#
发表于 2014-8-20 18:20:02 | 只看该作者
pseudo 发表于 2014-8-20 18:12
作为批处理标识,批处理文件内容要以
!BAT
开头吧。而你用

谢谢!!!
犯了低级错误。
LINUX习惯了(#!开头)。 没有复查资料。
可以了。

再次感谢!!

回复

使用道具 举报

333#
发表于 2014-8-20 18:22:22 | 只看该作者
pseudo 发表于 2014-8-20 18:12
作为批处理标识,批处理文件内容要以
!BAT
开头吧。而你用


请教, G4D 有alilias 之类的机制吗?
alias cmda=(md)0x200+1
以后直接用 有意义点的名字:  cmda
不用没什么意义的: (md)0x200+1

点评

有幸目睹grub4dos的变量、批处理从无到有的发展过程,印象中没有这样的机制。 不过可以试试 set cmda=(md)0x200+1 %cmda% command %cmda% call %cmda% call %^cmda% 是否接近你的意图。  详情 回复 发表于 2014-8-21 15:53
回复

使用道具 举报

334#
发表于 2014-8-20 18:35:21 | 只看该作者
很抱歉,批处理功能是 chenall 开发的,我只是猜测应该这样运行。

我真的没有研究过它启动的细节。

不过我仍旧可以猜测一下出错的原因。可能是文件长度不精确造成的。

如果你的硬盘上的某个批处理文件能够正常运行(举例来说,假定它的长度是 137 字节,不足一个扇区),那么,当你把它放在内存扇区 (md)0x200+1 中的时候,它只占用扇区开头的 137 字节,而后续字节是没有占用的。

而 (md)0x200+1 表示的是整个扇区,它的大小是 512 字节。

所以,应该限定文件的字节数为 137,这样才准确表示该文件。怎么来表示它呢?这样:

(md)0x200+1,137

就是,在原来的表达式后面接着一个逗号,再接着文件的字节数。中间不要插入空格,因为它们合在一起才成为一个文件名。

回复

使用道具 举报

335#
发表于 2014-8-21 15:53:21 | 只看该作者
mdyblog 发表于 2014-8-20 18:22
请教, G4D 有alilias 之类的机制吗?
alias cmda=(md)0x200+1
以后直接用 有意义点的名字:  cmda
...

有幸目睹grub4dos的变量、批处理从无到有的发展过程,印象中没有这样的机制。

不过可以试试
set cmda=(md)0x200+1
%cmda%
command %cmda%
call %cmda%
call %^cmda%
是否接近你的意图。
回复

使用道具 举报

336#
发表于 2014-8-21 16:52:15 | 只看该作者
不点 发表于 2014-8-20 18:35
很抱歉,批处理功能是 chenall 开发的,我只是猜测应该这样运行。

我真的没有研究过它启动的细节。

谢谢!
回复

使用道具 举报

337#
发表于 2014-8-22 15:42:11 | 只看该作者
今天使用2014-08-19版grldr, map不了,情况如下图。

回复

使用道具 举报

338#
发表于 2014-8-22 18:05:07 | 只看该作者
本帖最后由 mdyblog 于 2014-8-22 18:17 编辑
不点 发表于 2014-7-26 19:16
估计是你搞错了,造成莫名其妙的错觉。
你可以看看 asm.S 开头的那些变量,尤其是 install_partition 和 boot_drive 变量。
传入的 DL 的值会被 0000:8200 处的代码自动存入到 boot_drive 变量中。
但 DH 值不会被自动存入 install_partition 的位 16 - 位 24 的字节上,你必须在传递控制之前修改好,即,你需要自己把 DH 的值存入 install_partition 的位 16 - 位 24 的字节上,然后再把控制转移到 0000:8200 处的代码。
同时,如果 0000:7C00 处含有合法的 BPB 引导扇区,则 grub4dos 有可能会利用这个 BPB 表来确定启动盘的信息。
就是说,在传递控制之前,如果能保证 0000:7C00 处含有某个主分区的引导扇区(或者碰巧是这样),则这个主分区就可能被 grub4dos 当作 boot 设备(以及当前 root 设备)。


你是说这些变量(尤其红色)需要初始化,是吗?0000:8208  我必须先写入实际DH值。

有正确DL,故 可不初始化0000:8280。


0000:8208  4字节(即双字) 启动分区号 install_partition (the boot partition)
0000:8280  4字节(即双字) 启动驱动器号(boot_drive)
0000:829C  4字节(即双字) 当前根分区号(current root partition)
0000:82A0  4字节(即双字) 当前根所在的驱动器(current root drive)



点评

建议你不要切掉开头 16 扇区,不要把事情复杂化。恕我直言,我看不到复杂化以后有什么好处。  详情 回复 发表于 2014-8-22 18:31
回复

使用道具 举报

339#
发表于 2014-8-22 18:31:46 | 只看该作者
mdyblog 发表于 2014-8-22 18:05
你是说这些变量(尤其红色)需要初始化,是吗?0000:8208  我必须先写入实际DH值。

有正确DL,故 可 ...

建议你不要切掉开头 16 扇区,不要把事情复杂化。恕我直言,我看不到复杂化以后有什么好处。

回复

使用道具 举报

340#
 楼主| 发表于 2014-9-1 17:06:04 | 只看该作者
今天使用2014-08-19版grldr, map不了,情况如下图。

有碎片时,不能使用 0.4.5c 版本。0.4.6a 版本不会出现那样的错误提示。
回复

使用道具 举报

341#
 楼主| 发表于 2014-9-2 10:16:19 | 只看该作者
更新:
ext4 分区支持 64 位功能,支持元块组。
grldr头部、grldr.mbr 支持搜索 gpt 分区的 grldr。
修正了 bootlace,修正了 find。
回复

使用道具 举报

342#
 楼主| 发表于 2014-9-2 10:24:48 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-9-2 10:27 编辑

不能使用以下更新代码
    git fetch grub4dos
    git rebase grub4dos/0.4.6

也不能使用以下在本地端下载自己的grub4dos代码
    git clone git@github.com:yaya2007/grub4dos.git grub4dos

进入 https://github.com/yaya2007/grub4dos 没有“设置”按钮了。

如何在grub4dos项目中设置一个webhook?点 https://github.com/yaya2007/grub4dos/settings/hooks 出现404提示界面:
"this is not the veb page you are looking for"

在那里添加一个webhook参数?

点评

有没有具体的错误提示? 设置webhook的问题,估计是你没有登录  详情 回复 发表于 2014-9-2 17:52
回复

使用道具 举报

343#
发表于 2014-9-2 16:25:28 | 只看该作者
反馈一下,是否有bug:
在我的电脑上,使用grub4dos-0.4.6a-2014-09-02版,出现“Begin PXE Scan...”的提示,足足等了近10分仲,都没能进入grub4dos菜单界面。用U盘启动换为grub4dos 4.5c 2014-8-22版的grldr后,无此提示,很快就进入了grub4dos菜单界面。
回复

使用道具 举报

344#
发表于 2014-9-2 17:52:04 | 只看该作者
本帖最后由 chenall 于 2014-9-2 17:53 编辑
2011yaya2007777 发表于 2014-9-2 10:24
不能使用以下更新代码
    git fetch grub4dos
    git rebase grub4dos/0.4.6


有没有具体的错误提示?我试了正常的呀,是不是你的网络有问题.

设置webhook的问题,估计是你没有登录
回复

使用道具 举报

345#
 楼主| 发表于 2014-9-2 21:54:34 | 只看该作者
是没有登录。已经设置webhook。
以后在本地更新源码后,推送到服务器上,我再做什么?

点评

另外代码库有修改,具体请看一下这里 http://bbs.wuyou.com/forum.php?mod=redirect&goto=findpost&ptid=327458&pid=2956570&fromuid=1025  详情 回复 发表于 2014-9-2 23:03
只要你记得在修改代码之前先从主库同步一下源码 然后修改代码,确认无误之后推送到服务器上。 如果一切正常的话你过一会去主库看一下就会发现主库的代码已经自动同步更新了,并且同时自动编译上传(grub4dos.che  详情 回复 发表于 2014-9-2 23:00
回复

使用道具 举报

346#
发表于 2014-9-2 23:00:05 | 只看该作者
2011yaya2007777 发表于 2014-9-2 21:54
是没有登录。已经设置webhook。
以后在本地更新源码后,推送到服务器上,我再做什么?

只要你记得在修改代码之前先从主库同步一下源码
然后修改代码,确认无误之后推送到服务器上。

如果一切正常的话你过一会去主库看一下就会发现主库的代码已经自动同步更新了,并且同时自动编译上传(grub4dos.chenall.net可以看到新版本下载)。
回复

使用道具 举报

347#
发表于 2014-9-2 23:03:19 | 只看该作者
2011yaya2007777 发表于 2014-9-2 21:54
是没有登录。已经设置webhook。
以后在本地更新源码后,推送到服务器上,我再做什么?


另外代码库有修改,具体请看一下这里

http://bbs.wuyou.net/forum.php?m ... 70&fromuid=1025
回复

使用道具 举报

348#
发表于 2014-9-3 22:03:50 来自手机 | 只看该作者
本帖最后由 shan 于 2014-9-3 22:05 编辑
qj_tzy 发表于 2014-9-2 16:25
反馈一下,是否有bug:
在我的电脑上,使用grub4dos-0.4.6a-2014-09-02版,出现“Begin PXE Scan...”的提 ...


我这里也是这个提示,换回Grub4dos0.46a 2014. 8.19版本就正常了,应该是BUG吧,我确认自己没有按键啊。

点评

麻烦有这个问题的朋友试一下grub4dos.chenall.net的最新版本. 可能是由于我上一个版本修改了变量的地址引起的(暂未整合本贴最新补丁)  详情 回复 发表于 2014-9-3 22:27
回复

使用道具 举报

349#
发表于 2014-9-3 22:27:28 | 只看该作者
shan 发表于 2014-9-3 22:03
我这里也是这个提示,换回Grub4dos0.46a 2014. 8.19版本就正常了,应该是BUG吧,我确认自己没有按键啊 ...

麻烦有这个问题的朋友试一下grub4dos.chenall.net的最新版本.

可能是由于我上一个版本修改了变量的地址引起的(暂未整合本贴最新补丁)

点评

使用grub4dos0.46a -2014-9-3反馈: 调用存放在gpt分区的xorboot_0.73生成的图形菜单文件*.bin时,不能启动,出现“Loading,please Wait...”的提示后就没有反应了。换为grub4dos0.45c-2014-8-22后,无此问题。  详情 回复 发表于 2014-9-4 14:33
请问 setlocal的问题。 setlocal 和 endlocal 我相临时设置一下 系统变量怎么写?  详情 回复 发表于 2014-9-4 11:13
换了0.46a 2014.09.03 无此提示了。  详情 回复 发表于 2014-9-4 09:10
回复

使用道具 举报

350#
发表于 2014-9-4 09:10:18 | 只看该作者
chenall 发表于 2014-9-3 22:27
麻烦有这个问题的朋友试一下grub4dos.chenall.net的最新版本.

可能是由于我上一个版本修改了变量的地 ...

换了0.46a 2014.09.03 无此提示了。
回复

使用道具 举报

351#
发表于 2014-9-4 10:30:09 | 只看该作者
请教一下:

我看您在介绍中说明“修正了 bootlace”,是否意谓着,您在C大2014-9-3版基础上再发新版(不知何时能发布?)后,该版启动代码可用bootlace安装到gpt分区,以搜索启动gpt分区中的grldr了,若如此,那就是大大的福音了,因我目前采用的是xorboot搜索启动gpt分区中的grldr来实现grub4dos菜单的。

若如此,想请您对用bootlace安装grub4dos启动代码到gpt分区的方法作一个介绍,谢谢!
回复

使用道具 举报

352#
发表于 2014-9-4 11:13:10 | 只看该作者
本帖最后由 mdyblog 于 2014-9-4 11:31 编辑
chenall 发表于 2014-9-3 22:27
麻烦有这个问题的朋友试一下grub4dos.chenall.net的最新版本.

可能是由于我上一个版本修改了变量的地 ...


请问 setlocal的问题。
setlocal  和 endlocal之间,
我想临时设置一下 系统变量怎么写?
  1. setlocal
  2. set aa=111
  3. ... ...
  4. ###我想这里要设置 系统变量ss为%aa%_sys
  5. ##后面aa等局部变量还要用
  6. ... ...
  7. endlocal
复制代码





还有个麻烦, endlocal 后, 前面设置的 root 也作废了。

点评

需要明白的是 setlocal相当于一个新的环境(包括变量路径等设置) endlocal用于恢复之前的环境 如果需要使用到setlocal里面的变量则可以这样. setlocal set aa=1234 root (hd0,5) endlocal && set root=%@r  详情 回复 发表于 2014-9-4 11:56
回复

使用道具 举报

353#
发表于 2014-9-4 11:14:35 | 只看该作者
修复的是 bootlace 里面的 bug,不是增强了 GPT 安装功能。

有人报告 0.4.6 的 bootlace 无法在 Linux 下正常运行,所以,yaya 就来解决这个 bug。

至于说 GPT,我猜本次并未涉及。

回复

使用道具 举报

354#
发表于 2014-9-4 11:56:47 | 只看该作者
mdyblog 发表于 2014-9-4 11:13
请问 setlocal的问题。
setlocal  和 endlocal之间,
我想临时设置一下 系统变量怎么写?

需要明白的是
setlocal相当于一个新的环境(包括变量路径等设置)
endlocal用于恢复之前的环境

如果需要使用到setlocal里面的变量则可以这样.

setlocal
set aa=1234
root (hd0,5)
endlocal && set root=%@root% && set aa=%aa%

也就是在endlocal后面接上你需要保存的变量.

GRUB4DOS的批处理机制是参考WINDOWS的CMD批处理来的,使用方法一样.

点评

谢谢!!!! 原来写在一行啊!怪不得怎么都不成功。 试试。。。  详情 回复 发表于 2014-9-4 12:02
回复

使用道具 举报

355#
发表于 2014-9-4 12:00:02 | 只看该作者
qj_tzy 发表于 2014-9-4 10:30
请教一下:

我看您在介绍中说明“修正了 bootlace”,是否意谓着,您在C大2014-9-3版基础上再发新版(不 ...

应该是指可以用GPT分区的NTLDR启动加载GRLDR吧.
回复

使用道具 举报

356#
发表于 2014-9-4 12:02:59 | 只看该作者
chenall 发表于 2014-9-4 11:56
需要明白的是
setlocal相当于一个新的环境(包括变量路径等设置)
endlocal用于恢复之前的环境

谢谢!!!!
原来写在一行啊!怪不得怎么都不成功。
试试。。。
回复

使用道具 举报

357#
发表于 2014-9-4 14:33:20 | 只看该作者
chenall 发表于 2014-9-3 22:27
麻烦有这个问题的朋友试一下grub4dos.chenall.net的最新版本.

可能是由于我上一个版本修改了变量的地 ...

使用grub4dos0.46a -2014-9-3反馈:

调用存放在gpt分区的xorboot_0.73生成的图形菜单文件*.bin时,不能启动,出现“Loading,please Wait...”的提示后就没有反应了。换为grub4dos0.45c-2014-8-22后,无此问题。
回复

使用道具 举报

358#
 楼主| 发表于 2014-9-4 16:27:35 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-9-4 17:14 编辑

修复的是 bootlace 里面的 bug,不是增强了 GPT 安装功能。

可以用GPT分区的NTLDR启动加载GRLDR,这与 bootlace 没有关系,是修改了 grldrstart.S 。

已经正式上传成功!
回复

使用道具 举报

359#
 楼主| 发表于 2014-9-4 20:24:11 | 只看该作者
反馈一下,是否有bug:
在我的电脑上,使用grub4dos-0.4.6a-2014-09-02版,出现“Begin PXE Scan...”的提示,足足等了近10分仲,都没能进入grub4dos菜单界面。
我这里也是这个提示,换回Grub4dos0.46a 2014. 8.19版本就正常了

请使用grub4dos-0.4.6a-2014-09-03版,grub4dos-0.4.6a-2014-09-04版在原环境分别测试。如果03版正常,04版失败,则是我引进的bug。
回复

使用道具 举报

360#
发表于 2014-9-5 08:57:12 | 只看该作者
2011yaya2007777 发表于 2014-9-4 20:24
请使用grub4dos-0.4.6a-2014-09-03版,grub4dos-0.4.6a-2014-09-04版在原环境分别测试。如果03版正常, ...

grub4dos-0.4.6a-2014-09-03已解决此问题,无此提示了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-2 06:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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