无忧启动论坛

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

支持含有碎片的文件仿真

    [复制链接]
31#
发表于 2014-7-11 14:02:40 | 显示全部楼层
另外如果你不需要0.4.5的代码是可以直接删除的,这样会比较省事,避免分心.

执行以下命令就会删除服务器上的master分支.这样就只有0.4.6代码了.

git push origin :master
回复

使用道具 举报

32#
发表于 2014-7-16 11:34:02 | 显示全部楼层
jack95 发表于 2014-7-15 12:59
gcc: 4.8x
os: centos 7
编译:

估计是有一些需要的组件没有安装上去.

可以参考这里

http://chenall.net/post/grub4dos_dev/

具体的可以查看一下编译目录下生成的那个log文件
回复

使用道具 举报

33#
发表于 2014-7-16 11:34:53 | 显示全部楼层
527104427 发表于 2014-7-16 09:53
新版在XP下不能编译了,grub4dos_dev_2014-06-25   +   grub4dos-0.4.5c-2014-07-11源码

不管 grub4do ...

你的源码是如何下载的?看起来是权限错误.

建议使用git下载源码.

你可以试试清空掉然后重新下载.
回复

使用道具 举报

34#
发表于 2014-7-16 18:27:22 | 显示全部楼层
527104427 发表于 2014-7-16 14:43
用git下载可以了,原来是用IE下载的不行。

用IE下载,我估计你是直接下载的ZIP然后在WINDOWS下解压的吧.所以丢失了文件属性.

在LINUX下解压就不会有这个问题了.
回复

使用道具 举报

35#
发表于 2014-7-25 13:00:42 | 显示全部楼层
不点 发表于 2014-7-25 09:25
@chenall,

你的这个 grub4dos_dev 已经无法下载了。是删除了?还是挪动到别处了?从你的 Blog 上也找 ...

移了一个位置,前面加上dl就行了.
http://dl.grub4dos.chenall.net/grub4dos_dev_2014-06-25.7z
回复

使用道具 举报

36#
发表于 2014-7-25 16:39:22 | 显示全部楼层
我回头把这个编译环境资料放到grub4dos.chenall.net上
回复

使用道具 举报

37#
发表于 2014-8-6 13:53:28 | 显示全部楼层
为了方便管理代码,

在github上重新建了一个0.4.6a的分支,之前的0.4.6我准备删掉, 请使用0.4.6a分支进行开发.
直接使用以下代码切换
git fetch grub4dos
git checkout grub4dos/0.4.6a -b 0.4.6a

首次更新请使用以下命令上传新的分支.
git push origin 0.4.6a
回复

使用道具 举报

38#
发表于 2014-8-7 14:18:17 | 显示全部楼层
2011yaya2007777 发表于 2014-8-7 09:59
知道了。

grub4dos-0.4.5c-2014-08-06.7z 更新了。没有同步更新 0.4.6a?

源码已经同步了,现在源码同步比较方便,git merge就行了.

是自动编译发布的问题,我一会处理下.

你有空的话可以顺便在你的grub4dos项目中设置一个webhook

https://github.com/yaya2007/grub4dos/settings/hooks

添加一个webhook参数如下.

Payload URL: http://hooka.chenall.net/grub4dos.php
Content type: application/json
Just the push event.

我在服务器上设置一下,这样以后你就可以只管更新源码,

不需要在push request,我让系统自动处理.

当然了一个重要的步骤别忘了,在每次修改代码之前先同步一下主库代码(当前假设在0.4.6a分支下)
git fetch grub4dos
git merge grub4dos/0.4.6a 或 git rebase grub4dos/0.4.6a
回复

使用道具 举报

39#
发表于 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的问题,估计是你没有登录
回复

使用道具 举报

40#
发表于 2014-9-2 23:00:05 | 显示全部楼层
2011yaya2007777 发表于 2014-9-2 21:54
是没有登录。已经设置webhook。
以后在本地更新源码后,推送到服务器上,我再做什么?

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

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

使用道具 举报

41#
发表于 2014-9-2 23:03:19 | 显示全部楼层
2011yaya2007777 发表于 2014-9-2 21:54
是没有登录。已经设置webhook。
以后在本地更新源码后,推送到服务器上,我再做什么?


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

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

使用道具 举报

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

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

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

使用道具 举报

43#
发表于 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批处理来的,使用方法一样.
回复

使用道具 举报

44#
发表于 2014-9-4 12:00:02 | 显示全部楼层
qj_tzy 发表于 2014-9-4 10:30
请教一下:

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

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

使用道具 举报

45#
发表于 2014-9-6 10:12:16 | 显示全部楼层
上面的报告都太过于笼统,无法判断原因.

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

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

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

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

使用道具 举报

46#
发表于 2014-10-11 10:46:22 | 显示全部楼层
mdyblog 发表于 2014-10-11 09:16
谢谢!
下面测试 set 命令不翻译\x20

变量需要前导空格的可以加引号,例子

set "str=    cmd"
echo %str%

点评

我实验怎么无效啊?str没有被赋值啊? [attachimg]200774[/attachimg]  详情 回复 发表于 2014-10-11 11:09
回复

使用道具 举报

47#
发表于 2014-11-1 18:08:02 | 显示全部楼层
mdyblog 发表于 2014-11-1 17:49
mkisofs 弄了个小的grub.iso



首先需要确认执行map命令时的文件是否和你存的文件一致

使用cat --hex命令可以看到文件内容。
简单一点可以直接使用crc32命令检验一下。


使用qemu测试的话,有时候会有一个延迟,即刚在windows下写入的文件,并不能立即使用。
回复

使用道具 举报

48#
发表于 2014-11-1 19:06:19 | 显示全部楼层
mdyblog 发表于 2014-11-1 18:34
文件没问题的。
因为如果有问题, --mem模式也会有问题的, 分析对吗?
下面是对比图:

我用qemu测试了下,没有发现问题。

也许是和文件系统有关系?

不能mount你可以用类似如下命令看一下内容是否有问题。
cat --hex (hd32)+10
回复

使用道具 举报

49#
发表于 2014-11-2 00:00:26 | 显示全部楼层
关于in-situ的用法我也不是很了解,之前我还曾经想使用这个功能来实现一键GHOST(DOS版的)..

在GRUB4DOS中,通过map功能,把要恢复/备份的分区固定映射为(hd0),来源GHO文件分区固定为(hd1)..

这样就不管什么样的分区方案不管是多硬盘还是单硬盘,都可以使用一个通用的IMG文件来实现恢复/备份了.

甚至是目前所有基于DOS版的GHOST无法解决的 GPT分区,都是可能的(我有尝试过,可以用,但不是很完美).
回复

使用道具 举报

50#
发表于 2014-11-2 09:05:34 | 显示全部楼层
测试了一下,确实是BUG

看以下我测试截图,映射的起始扇区多加了一次,具体要怎么解决就等不点了,这个map的命令比较复杂,我还是看得不太明白.

回复

使用道具 举报

51#
发表于 2014-11-2 09:29:45 | 显示全部楼层
不点 发表于 2014-11-2 09:12
解释一下 --in-situ

它的字面含义是 “在原地”。如果把一个 volume 卷进行 “原地” 仿真,那么仿真 ...

谢谢,这样子就比较清楚了..

另外能不能麻烦再解释一下另一个 --in-place的用途,和--in-situ的区别
回复

使用道具 举报

52#
发表于 2014-11-2 10:45:00 | 显示全部楼层
不点 发表于 2014-11-2 10:38
geometry --lba127sector 后面可以跟着一个盘号,比如 (hd0) 或 (fd0) 之类的。如果不跟参数,那就对当 ...
有一个专门讨论的帖子,谈到 geometry --lba1sector 命令应该总是放在内置菜单的开头,只不过默认时自动跳过,而在有问题的电脑上,开机启动 grub4dos 时按下某个热键(可以与 C 键和 Insert 键放在一起进行处理,比如,按 S 键表示慢速 Slow、安全 Secure、单扇区 Single Sector 启动),可以让 geometry --lba1sector 真的起作用,这样,皆大欢喜,都没问题了。希望 chenall 抽时间把这个细致的工作做好。


这个主意不错,这样不需要修改内置菜单,总是能起作用(因为内置菜单经常会被修改),我今天抽空处理下.
回复

使用道具 举报

53#
发表于 2014-11-2 11:49:55 | 显示全部楼层
不点 发表于 2014-11-2 10:38
geometry --lba127sector 后面可以跟着一个盘号,比如 (hd0) 或 (fd0) 之类的。如果不跟参数,那就对当 ...
可以在 init_bios_info() 函数里面直接添加并处理 geometry --lba1sector,无需更改现有的内置菜单。


是的,这是比较好的方案.

另外当用户按了S之后应该要暂停并给一个提示.
这个提示的内容要怎么写才好?
回复

使用道具 举报

54#
发表于 2014-11-2 14:15:14 | 显示全部楼层
不点 发表于 2014-11-2 12:49
不用任何提示。就像 C 键与 Insert 键一样,都没有提示。如果你想给 S 键一个提示,也是可以的。比如, ...

那就是说把这个信息放在geometry命令里面了.,我觉得是应该要给一个提示,

你们英文比较好,麻烦提供一句比较恰当的句子,这样只要执行 geometry --lba1sector就会给出该信息,提醒用户.
回复

使用道具 举报

55#
发表于 2014-11-2 14:16:56 | 显示全部楼层
不点 发表于 2014-11-2 12:41
请 mdyblog 试试这个版本,估计问题应该解决了。如果解决,就可以提交。

更新:刚刚改正了错误,请下载 ...

我这里测试了一下,现在正常了.应该是没有问题了.
回复

使用道具 举报

56#
发表于 2014-11-3 16:04:59 | 显示全部楼层
mdyblog 发表于 2014-11-3 14:48
>>常规内存顶部的一些空间,grub4dos 的内核不用,
谢谢。
能给出准确的地址(md)XX+YY码?

这是DEBUG调试信息,主要是调试批处理脚本使用的.
显示的是要执行的命令行.

用debug 3时才会出现.
回复

使用道具 举报

57#
发表于 2014-11-3 17:13:01 | 显示全部楼层
本帖最后由 chenall 于 2014-11-3 17:19 编辑
mdyblog 发表于 2014-11-3 16:30
谢谢!
那还是试试这个:“1。映射的虚拟内存盘,是 BIOS 级的”
怎快速 用(fd20)锁定一段4K内存(被fd ...


还真有这个功能,很早就实现了的..^_^,不过好像没有公开, 只是我自己有在用.

map --mem (md)+8 (20)
map --hook
map --status=20
set /a buf_var=%?%<<9


map --status=NUM  这个NUM是个映射的盘符

map --status=20

返回fd20的起始扇区start_sector,(有可能是内存的,也有可能是硬盘的),和扇区数量(sector_count),%?%是start_sector,%@retval%也就是运行的返回值是数量

map --mem 就是内存的了,如果是map (hd0,x)/xxx.img (fd20) ,则得到的是硬盘的.
回复

使用道具 举报

58#
发表于 2014-11-3 20:00:46 | 显示全部楼层
我测试了一下,是0.4.6a的问题..

0.4.6a的blocklist命令显示的数据不对,请yaya有空看一下,没空的话我明天再查一下.



回复

使用道具 举报

59#
发表于 2014-11-15 11:12:31 | 显示全部楼层
mdyblog 发表于 2014-11-15 10:37
直接 做个Mini测试包(19M) 给你们测试吧, 比码字强多了。
链接: http://pan.baidu.com/s/1bnjdvaR 密 ...

这个后面的map (hd1) (hd2)是多余的.

你这些命令执行之后第一条命令map (hd0,0)/HD.IMG  (hd0)是没有作用的.
被  map --in-situ (hd1,0)/PE.IMG  (hd0)覆盖了.

另外你这些命令执行最后的结果就是hd0和hd1,hd2都是一模一样的,除了hd0的MBR不一样,其它的都是一样的.

这种情况windows是不允许的.




回复

使用道具 举报

60#
发表于 2014-11-15 11:40:14 | 显示全部楼层
map 命令有bug,

map --in-situ (hd1,0)/PE.IMG  (hd0)
map (hd0)  (hd2)

两条命令换一下位置就行了.
map (hd0)  (hd2)
map --in-situ (hd1,0)/PE.IMG  (hd0)

估计是MAP命令里面有逻辑错误.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-14 11:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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