无忧启动论坛

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

[求助] grub4dos 046a 如何设置变量为软盘(fd0)的大小?

[复制链接]
跳转到指定楼层
1#
发表于 2016-11-3 23:36:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
geometry (fd0)命令可以得到软盘的总扇区数和扇区大小,请问 如何存为变量?
2#
 楼主| 发表于 2016-11-3 23:39:58 | 只看该作者
有知道的大神吗?
回复

使用道具 举报

3#
发表于 2016-11-4 08:45:39 | 只看该作者
印像中cat命令可以获取某个分区或磁盘的总扇区数的,扇区大小都是512

点评

cat --length=0 (fd0)-1 这个命令不行的  详情 回复 发表于 2016-11-4 12:19
cat --length=0 (fd0)-1 这个命令不行的  详情 回复 发表于 2016-11-4 12:19
回复

使用道具 举报

4#
发表于 2016-11-4 11:41:46 | 只看该作者
本帖最后由 不知 于 2016-11-4 11:43 编辑

用了一种特别麻烦的方式,实现了字符串的提取。主要是cat --locate=String 命令不知怎么计算的(也有可能是我用的版本有问题),有时直接数的和命令运行结果不一样,有时又一样,重复多次才能得到正确的结果。

得到字符串后,用calc命令得到对应的数,如
得到size: calc %size%
得到count : calc %count%*%size%

应该有直接的方法,只是cat的问题没法直接复制。

getifo内容:

!BAT
set device=%1
if ""=="%device%" goto help

geometry %device%  > (md)0x80000+1
cat --locate=drive --replace=@@@@@@@@@@ (md)0x80000+1
cat --locate=: --replace=@@@@@@@@ (md)0x80000+1
cat --locate=, --replace=@@@@@@@@@@@@@@@@@@@ (md)0x80000+1

cat --locate== (md)0x80000+1 | set skip=
dd if=(md)0x80000+1 of=(md)0x80000+1 bs=1 skip=%skip%



cat --locate== (md)0x80000+1 | set skip=
dd if=(md)0x80000+1 of=(md)0x80000+1 bs=1 skip=%skip%



cat --locate== (md)0x80000+1 | set skip=
dd if=(md)0x80000+1 of=(md)0x80000+1 bs=1 skip=%skip%



cat --locate== (md)0x80000+1 | set skip=
dd if=(md)0x80000+1 of=(md)0x80000+1 bs=1 skip=%skip%
dd if=(md)0x80000+1 of=(md)0x80000+1 bs=1 skip=1



cat --locate=/ (md)0x80000+1 | set skip=
dd if=(md)0x80000+1 of=(md)0x80001+1 bs=1 skip=%skip%
dd if=(md)0x80001+1 of=(md)0x80001+1 bs=1 skip=1


cat (md)0x80000+1
cat (md)0x80001+1

cat (md)0x80000+1 | set count=
cat (md)0x80001+1 | set size=

echo Sector Count=%count%
echo Sector Size=%size%
















goto eof


:help
echo getifo device
echo such as getifo (fd0)


:eof

1.jpg (74.43 KB, 下载次数: 67)

1.jpg

getifo.7z

401 Bytes, 下载次数: 0, 下载积分: 无忧币 -2

回复

使用道具 举报

5#
 楼主| 发表于 2016-11-4 12:19:55 来自手机 | 只看该作者
chenall 发表于 2016-11-4 08:45
印像中cat命令可以获取某个分区或磁盘的总扇区数的,扇区大小都是512

cat  --length=0  (fd0)-1


这个命令不行的
回复

使用道具 举报

6#
 楼主| 发表于 2016-11-4 12:19:55 来自手机 | 只看该作者
chenall 发表于 2016-11-4 08:45
印像中cat命令可以获取某个分区或磁盘的总扇区数的,扇区大小都是512

cat  --length=0  (fd0)-1


这个命令不行的

点评

我也是在查cat的帮助,有一个定位字符串的功能,但是有时和预期的(自己数)不一样  详情 回复 发表于 2016-11-4 13:35
回复

使用道具 举报

7#
发表于 2016-11-4 13:35:45 来自手机 | 只看该作者
liuhuan22 发表于 2016-11-4 12:19
cat  --length=0  (fd0)-1



我也是在查cat的帮助,有一个定位字符串的功能,但是有时和预期的(自己数)不一样
回复

使用道具 举报

8#
发表于 2016-11-4 13:47:22 | 只看该作者
印像中是有的,
可以试试以下命令看看区别,具体的好久我也忘了^_^
root (fd0)
cat --length=0 ()+1
cat --length=0 ()-1

另外如果(fd0)不大的话可以用rd设备
map (fd0) (rd)
这样就可以通过rd-base和rd-size得到想要的结果。
关于rdbase和rdsize自己看一下readme,有具体的介绍。

点评

谢谢,不过我不敢这么写代码,稳定性不好说  详情 回复 发表于 2016-11-4 15:02
回复

使用道具 举报

9#
 楼主| 发表于 2016-11-4 15:02:45 来自手机 | 只看该作者
chenall 发表于 2016-11-4 13:47
印像中是有的,
可以试试以下命令看看区别,具体的好久我也忘了^_^
root (fd0)

谢谢,不过我不敢这么写代码,稳定性不好说

点评

确实,这只是试验而已,若有内存盘就不好说了。位置最好去查一下G4D说明,最主要是G4D没有好用的字符串处理命令。  详情 回复 发表于 2016-11-4 15:20
回复

使用道具 举报

10#
发表于 2016-11-4 15:20:19 来自手机 | 只看该作者
本帖最后由 不知 于 2016-11-4 15:25 编辑



确实,这只是试验而已,若有内存盘就不好说了。位置最好去查一下G4D说明,最主要是G4D没有好用的字符串处理命令。
回复

使用道具 举报

11#
发表于 2016-11-4 18:03:23 | 只看该作者
说说我的看法,说错了莫怪。

软盘这玩意,那可是不敢随便乱碰的,你碰它,就可能死机。记不记得?我们的 find 命令还得添上 --ignore-floppies 才敢用。为什么呢?不敢碰软盘啊!在那些 buggy 的电脑上,你一碰软盘,就死机了。就是说,不敢以任何方式去访问软盘、查看软盘;一碰它,就遭殃!

以上说的是 ROM BIOS 提供的软盘是不敢乱碰的。如果是 grub4dos 创建的虚拟软盘,那是可以碰的,不会有问题。然而,你的虚拟软盘在你创建它的时候,就知道它的大小了,你那时候早早记住它的大小不就 OK 了吗?根本不需要什么复杂的命令啊。


点评

f6img 创建的软盘,不知道多大。。。。。。  详情 回复 发表于 2016-11-5 10:44
回复

使用道具 举报

12#
 楼主| 发表于 2016-11-5 10:44:38 来自手机 | 只看该作者
不点 发表于 2016-11-4 18:03
说说我的看法,说错了莫怪。

软盘这玩意,那可是不敢随便乱碰的,你碰它,就可能死机。记不记得?我们的 ...

f6img 创建的软盘,不知道多大。。。。。。

点评

在 windows 上,鼠标指向这个 img 文件,点击右键,弹出菜单,再点击“属性”,即可看到它的大小了。  详情 回复 发表于 2016-11-5 13:34
回复

使用道具 举报

13#
发表于 2016-11-5 13:34:10 | 只看该作者
liuhuan22 发表于 2016-11-5 10:44
f6img 创建的软盘,不知道多大。。。。。。

在 windows 上,鼠标指向这个 img 文件,点击右键,弹出菜单,再点击“属性”,即可看到它的大小了。

点评

忘记进系统的方法了,谢谢大师提醒  详情 回复 发表于 2016-11-5 18:17
回复

使用道具 举报

14#
 楼主| 发表于 2016-11-5 18:17:02 来自手机 | 只看该作者
不点 发表于 2016-11-5 13:34
在 windows 上,鼠标指向这个 img 文件,点击右键,弹出菜单,再点击“属性”,即可看到它的大小了。

忘记进系统的方法了,谢谢大师提醒
回复

使用道具 举报

15#
 楼主| 发表于 2016-11-6 15:23:53 | 只看该作者
C:\>r:\dd  if=\\.\A:   of=z:\a.img
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.

2880+0 records in
2880+0 records out

C:\>r:\dd.exe  if=\\.\b:   of=z:\b.img
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.

2880+0 records in
2880+0 records out

C:\>sc qc firadisk
[SC] QueryServiceConfig 成功

SERVICE_NAME: firadisk
        TYPE               : 1  KERNEL_DRIVER
        START_TYPE         : 0   BOOT_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : \SystemRoot\system32\DRIVERS\firadisk.sys
        LOAD_ORDER_GROUP   : Boot Bus Extender
        TAG                : 8
        DISPLAY_NAME       : FiraDisk Driver
        DEPENDENCIES       :
        SERVICE_START_NAME :

C:\>
回复

使用道具 举报

16#
 楼主| 发表于 2016-11-8 16:56:57 | 只看该作者
map --mem /t.img (0)        
map --hook
       
read 0x8320
得到0x168000就是1440kb大小

评分

参与人数 1无忧币 +5 收起 理由
不点 + 5 工夫不负有心人。感谢您提供这样一个奇思妙.

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 12:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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