无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4405|回复: 11
打印 上一主题 下一主题

[求助] 有兴趣的朋友一起来学习chenall的GRUB4DOS ghostid命令

[复制链接]
1#
发表于 2016-10-23 19:33:48 | 显示全部楼层
我猜那是正常的。那个黑方块可能是 ghostid 弄出来的一个换行符,不影响程序的逻辑结构。

点评

问一下,ghostid命令执行后,得到的ID值可用dd命令从内存写入指定文件中 那么makeactive --status执行后,比如显示: (hd0,0) is active 是否也能把(hd0,0)用dd命令从内存写入指定文件中 如果不能,那么  详情 回复 发表于 2016-10-23 22:15
回复

使用道具 举报

2#
发表于 2016-10-23 22:23:02 | 显示全部楼层
当前盘号,当前分区号,都是 grub4dos 变量。你不妨先看看置顶的教程。关于如何写文件,也可看置顶教程。

点评

问一下grub4dos-help-2015-02-09.CHM文档中变量@retval 是不是有些命令执行后,如果执行失败,@retval值为0,如果执行成功,@retval值为1---------------------------------------------------------------------  详情 回复 发表于 2016-10-25 12:40
看了grub4dos-help-2015-02-09.CHM文档 内置变量四 @root ,用来保存当前root的驱动器号 内置变量六 内存变量 @retval (即 0x4cb00处值) ,获取命令的返回值或其他结果 我写了下列命令判断活动分区并用gh  详情 回复 发表于 2016-10-24 21:56
回复

使用道具 举报

3#
发表于 2016-10-25 14:38:06 | 显示全部楼层
本帖最后由 不点 于 2016-10-25 14:45 编辑

一般来说,@retval 为 “0” 或 “非0”,表示成功或失败(究竟 0 代表成功还是失败,恐怕也是不统一的)。但究竟是怎样的情况,还要看所执行的命令是哪个。具体究竟是怎样,还要看源代码,或者问问 chenall。

128 可能是指 0x80,表示的是 BIOS 第一个硬盘的号码。

(md) 设备确实也有个 “最大扇区号” 或 “总扇区数”。但是,由于各种主板的内存布局很不统一,所以,这里很可能只计算了第一个连续内存块,其它内存块都没统计上。

cat 命令好像无法表示出 (md) 的全部扇区。

但是,可以用 (rd) 来解决。(rd)+1 永远表示 (rd) 上的全部字节(就是说,甚至可以精确到字节,即,能够考虑到不足一个扇区的那些 “零头”)。

cat --hex (rd)+1 就可以了。不过,你需要事先定义 (rd) 的起始地址和长度。map --rd-base=... 和 map --rd-size=...  可以用来定义 (rd) 的起始地址和长度。

关于主板 BIOS 的内存布局,你可以搜索 Internet 查阅相关信息,或搜索 “int15, E820”。

grub4dos 的 displaymem 命令,可以显示出主板 BIOS 的内存布局。由于内存布局的复杂性(因主板的不同而不同),因此无法直接获取内存的 “总扇区数”。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-15 07:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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