无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 8822|回复: 43

[求助] 不使用外部命令,如何使用Grub4DOS获取分区容量?

[复制链接]
发表于 2020-3-17 12:21:02 | 显示全部楼层 |阅读模式
RT,使用find和ls dev分别可以列出分区和磁盘,但如果想要显示容量该怎么做?
 楼主| 发表于 2020-3-17 13:28:26 | 显示全部楼层
BaiduShurufa_2020-3-17_13-28-5.png

ls 和 find 结果怎么不一样???
回复

使用道具 举报

发表于 2020-3-17 15:24:58 | 显示全部楼层
ls dev是用于显示设备列表(更新说明上说的)
然后find查找所有设备的所有分区
还有,貌似没有显示容量的语句。。。

点评

1.你说的我知道,但二者显示的不一样你没发现么? 2.没有么?  详情 回复 发表于 2020-3-17 15:40
回复

使用道具 举报

 楼主| 发表于 2020-3-17 15:40:42 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 15:24
ls dev是用于显示设备列表(更新说明上说的)
然后find查找所有设备的所有分区
还有,貌似没有显示容量的 ...

1.你说的我知道,但二者显示的不一样你没发现么?
2.没有么?
回复

使用道具 举报

发表于 2020-3-17 16:43:58 | 显示全部楼层
获取当前分区的大小。
cat --length=0 ()-1

点评

按理说()代表当前设备,但是我换成(hd0)(电脑上有这个设备),就显示不了,说Filename must be either an absolute pathname or blocklist,这是什么鬼,而且,我用cat --length=0 ()-1显示Filesize is 0x100000,  详情 回复 发表于 2020-3-17 18:56
只适用于当前分区??? 另外你发现没有,ls dev 和 find执行结果有区别,PXE启动不应该是(pd)么?  详情 回复 发表于 2020-3-17 16:54
回复

使用道具 举报

 楼主| 发表于 2020-3-17 16:54:39 | 显示全部楼层
chenall 发表于 2020-3-17 16:43
获取当前分区的大小。
cat --length=0 ()-1

只适用于当前分区???

另外你发现没有,ls dev 和 find执行结果有区别,PXE启动不应该是(pd)么?

点评

我这么想: ls 与 find,为什么要显示相同的信息呢?两条命令,各有自己的目的。 显示不同,是正常的。 ls dev,我猜它的意思,就是显示设备。 find 是寻找符合条件的设备。find 不搜索 pd 设备(除非 p  详情 回复 发表于 2020-3-19 18:39
我这么理解:chenall 给出的,是一个思路,只是举例罢了。 实际应用的范围,有可能很大。你可以试试: cat --length=0 (hd0,6)-1 之类的用法。  详情 回复 发表于 2020-3-19 18:20
ls dev只获得设备列表,就是 假设电脑上有1个硬盘,3个分区 ls dev只显示(hd0),find显示(hd0,0)(hd0,1)(hd0,2)  详情 回复 发表于 2020-3-17 18:34
回复

使用道具 举报

发表于 2020-3-17 18:34:43 | 显示全部楼层
本帖最后由 dsfgamesky 于 2020-3-17 18:40 编辑
邪恶海盗 发表于 2020-3-17 16:54
只适用于当前分区???

另外你发现没有,ls dev 和 find执行结果有区别,PXE启动不应该是(pd)么?

ls dev只获得设备列表,就是
假设电脑上有1个硬盘,3个分区
ls dev只显示(hd0) (rd)(随机存储的地方),find显示(hd0,0)(hd0,1)(hd0,2)

点评

你说的我都知道,我不知道你们看不看得到我发的图...  详情 回复 发表于 2020-3-17 18:39
回复

使用道具 举报

 楼主| 发表于 2020-3-17 18:39:35 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 18:34
ls dev只获得设备列表,就是
假设电脑上有1个硬盘,3个分区
ls dev只显示(hd0),find显示(hd0,0)(hd0,1 ...

你说的我都知道,我不知道你们看不看得到我发的图,很明显的差异...

点评

ls dev的rd,就是random drive,至于有什么用……我忘了,pd就是 PXE drive,hd0就是hard drive 0 find出来的(hd0)和上面的一样(不应该是(hd0,0)么?),但是(wd)……我也不知道  详情 回复 发表于 2020-3-17 18:45
回复

使用道具 举报

发表于 2020-3-17 18:45:48 | 显示全部楼层
邪恶海盗 发表于 2020-3-17 18:39
你说的我都知道,我不知道你们看不看得到我发的图,很明显的差异...

ls dev的rd,就是random drive,至于有什么用……我忘了,pd就是 PXE drive,hd0就是hard drive 0
find出来的(hd0)和上面的一样(不应该是(hd0,0)么?),但是(wd)……我也不知道

点评

rd 不是 “随机驱动器”,而是 ram-drive(内存盘)。此 rd 内存盘只在 grub4dos 环境下是可见的,在 DOS 层面是不可见的。这是因为,rd 是 grub4dos 的内部盘号,不是 bios 盘号,它没有挂到 BIOS 的 int13 钩子上  详情 回复 发表于 2020-3-19 18:14
SO...  详情 回复 发表于 2020-3-17 18:52
回复

使用道具 举报

 楼主| 发表于 2020-3-17 18:52:57 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 18:45
ls dev的rd,就是random drive,至于有什么用……我忘了,pd就是 PXE drive,hd0就是hard drive ...

SO...

点评

So...I don't now...  详情 回复 发表于 2020-3-17 18:57
回复

使用道具 举报

发表于 2020-3-17 18:56:00 | 显示全部楼层
chenall 发表于 2020-3-17 16:43
获取当前分区的大小。
cat --length=0 ()-1

按理说()代表当前设备,但是我换成(hd0)(电脑上有这个设备),就显示不了,说Filename must be either an absolute pathname or blocklist,这是什么鬼,而且,我用cat --length=0 ()-1显示Filesize is 0x100000,我这个8G优盘……才这么点儿吗(((φ(◎ロ◎;)φ)))

点评

0x1000000 个扇区 = 0x1000000 * 512 = 8G 因此,你应该是漏掉了一个 0,它应该显示 Filesize is 0x1000000 (有 6 个 0)。  详情 回复 发表于 2020-3-19 18:29
[attachimg]413715[/attachimg] 我这运行结果更怪...  详情 回复 发表于 2020-3-17 23:12
回复

使用道具 举报

发表于 2020-3-17 18:57:40 | 显示全部楼层

So...I don't now...
回复

使用道具 举报

 楼主| 发表于 2020-3-17 23:12:11 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 18:56
按理说()代表当前设备,但是我换成(hd0)(电脑上有这个设备),就显示不了,说Filename must be either a ...

BaiduShurufa_2020-3-17_23-11-40.png
我这运行结果更怪...

点评

可以向 chenall 报告 bug。  详情 回复 发表于 2020-3-19 18:32
回复

使用道具 举报

发表于 2020-3-19 18:14:59 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 18:45
ls dev的rd,就是random drive,至于有什么用……我忘了,pd就是 PXE drive,hd0就是hard drive ...

rd 不是 “随机驱动器”,而是 ram-drive(内存盘)。此 rd 内存盘只在 grub4dos 环境下是可见的,在 DOS 层面是不可见的。这是因为,rd 是 grub4dos 的内部盘号,不是 bios 盘号,它没有挂到 BIOS 的 int13 钩子上。

点评

感谢不点大的讲解,应该是我记错了。 sratlf的帮助手册上是这么写的然后我就这样说了。  详情 回复 发表于 2020-3-19 19:40
回复

使用道具 举报

发表于 2020-3-19 18:20:22 | 显示全部楼层
邪恶海盗 发表于 2020-3-17 16:54
只适用于当前分区???

另外你发现没有,ls dev 和 find执行结果有区别,PXE启动不应该是(pd)么?

我这么理解:chenall 给出的,是一个思路,只是举例罢了。
实际应用的范围,有可能很大。你可以试试:

cat  --length=0   (hd0,6)-1

之类的用法。

回复

使用道具 举报

发表于 2020-3-19 18:29:35 | 显示全部楼层
dsfgamesky 发表于 2020-3-17 18:56
按理说()代表当前设备,但是我换成(hd0)(电脑上有这个设备),就显示不了,说Filename must be either a ...

0x1000000 个扇区 = 0x1000000 * 512 = 8G

因此,你应该是漏掉了一个 0,它应该显示 Filesize is 0x1000000 (有 6 个 0)。



点评

[attachimg]413932[/attachimg]  详情 回复 发表于 2020-3-19 23:18
回复

使用道具 举报

发表于 2020-3-19 18:32:36 | 显示全部楼层
邪恶海盗 发表于 2020-3-17 23:12
我这运行结果更怪...

可以向 chenall 报告 bug。
回复

使用道具 举报

发表于 2020-3-19 18:39:12 | 显示全部楼层
邪恶海盗 发表于 2020-3-17 16:54
只适用于当前分区???

另外你发现没有,ls dev 和 find执行结果有区别,PXE启动不应该是(pd)么?

我这么想:

ls 与 find,为什么要显示相同的信息呢?两条命令,各有自己的目的。

显示不同,是正常的。

ls dev,我猜它的意思,就是显示设备。

find 是寻找符合条件的设备。find 不搜索 pd 设备(除非 pd 是当前设备)。

点评

我估计你跟他们一样没看图,我说的不是真正的 ls 和 find 命令,而是特定情况下的结果...  详情 回复 发表于 2020-3-19 22:51
回复

使用道具 举报

发表于 2020-3-19 19:40:04 | 显示全部楼层
不点 发表于 2020-3-19 18:14
rd 不是 “随机驱动器”,而是 ram-drive(内存盘)。此 rd 内存盘只在 grub4dos 环境下是可见的,在 DOS ...

感谢不点大的讲解,应该是我记错了。
sratlf的帮助手册上是这么写的
(md)     内存驱动器,实现了将整个内存作为一个磁盘驱动器来访问。(预留驱动器号 0xffff )
(rd)     随机存贮驱动器。(md) 设备访问内存是从物理地址 0 开始,而 (rd) 可以访问起始于任何基地址的内存。
然后我就这样说了。

点评

哦,明白了。把 RAM 说成 “随机存储器”,也是没问题的。但一般都会把它说成 “内存” 吧。 因此,通俗地说,RAM Drive 就是 “内存盘” 了。如果说成 “随机存储器驱动器”,感觉不太容易理解。  详情 回复 发表于 2020-3-20 15:20
回复

使用道具 举报

 楼主| 发表于 2020-3-19 22:51:12 | 显示全部楼层
不点 发表于 2020-3-19 18:39
我这么想:

ls 与 find,为什么要显示相同的信息呢?两条命令,各有自己的目的。

我估计你跟他们一样没看图,我说的不是真正的 ls 和 find 命令,而是特定情况下的结果...

点评

我已经有很认真的看图了 是什么意思啊? 特定又是什么意思?  详情 回复 发表于 2020-3-20 15:02
回复

使用道具 举报

 楼主| 发表于 2020-3-19 23:18:22 | 显示全部楼层
不点 发表于 2020-3-19 18:29
0x1000000 个扇区 = 0x1000000 * 512 = 8G

因此,你应该是漏掉了一个 0,它应该显示 Filesize is 0x10 ...

BaiduShurufa_2020-3-19_23-20-31.png

点评

find查找的是文件,而不是磁盘名称  详情 回复 发表于 2020-3-20 15:05
回复

使用道具 举报

发表于 2020-3-20 08:40:31 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2020-3-20 08:50 编辑

cat --length=0 ()-1
返回当前分区起始(字节)
对于光盘来说,就是0。

cat --length=0 ()
返回当前分区尺寸(字节)

点评

"()"换成"(hd0,0)"为什么用不了?  详情 回复 发表于 2020-3-21 08:39
回复

使用道具 举报

发表于 2020-3-20 15:02:20 | 显示全部楼层
邪恶海盗 发表于 2020-3-19 22:51
我估计你跟他们一样没看图,我说的不是真正的 ls 和 find 命令,而是特定情况下的结果...

我已经有很认真的看图了
真正的 ls 和 find 命令
是什么意思啊?
而是特定情况下的结果...
特定又是什么意思?

点评

就是我这个示例中的结果...  详情 回复 发表于 2020-3-20 21:58
回复

使用道具 举报

发表于 2020-3-20 15:05:03 | 显示全部楼层
本帖最后由 dsfgamesky 于 2020-3-20 15:07 编辑

find查找的是文件,而不是磁盘名称

点评

反正磁盘名称出来了就行了  详情 回复 发表于 2020-3-20 21:57
回复

使用道具 举报

发表于 2020-3-20 15:20:18 | 显示全部楼层
dsfgamesky 发表于 2020-3-19 19:40
感谢不点大的讲解,应该是我记错了。
sratlf的帮助手册上是这么写的然后我就这样说了。

哦,明白了。把 RAM 说成 “随机存储器”,也是没问题的。但一般都会把它说成 “内存” 吧。

因此,通俗地说,RAM Drive 就是 “内存盘” 了。如果说成 “随机存储器驱动器”,感觉不太容易理解。

点评

一个随机存储/内存区域可能比较准确,md才是内存盘吧?  详情 回复 发表于 2020-3-20 21:58

评分

参与人数 1无忧币 +5 收起 理由
dsfgamesky + 5 感谢

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-3-20 21:57:09 | 显示全部楼层
dsfgamesky 发表于 2020-3-20 15:05
find查找的是文件,而不是磁盘名称

反正磁盘名称出来了就行了
回复

使用道具 举报

 楼主| 发表于 2020-3-20 21:58:00 | 显示全部楼层
不点 发表于 2020-3-20 15:20
哦,明白了。把 RAM 说成 “随机存储器”,也是没问题的。但一般都会把它说成 “内存” 吧。

因此,通 ...

一个随机存储/内存区域可能比较准确,md才是内存盘吧?
回复

使用道具 举报

 楼主| 发表于 2020-3-20 21:58:41 | 显示全部楼层
dsfgamesky 发表于 2020-3-20 15:02
我已经有很认真的看图了
是什么意思啊?
特定又是什么意思?

就是我这个示例中的结果...

点评

我的结果和你示例中的结果一样,抱歉,我实在理解不了你的意思。 [attachimg]414012[/attachimg]  详情 回复 发表于 2020-3-21 08:47
回复

使用道具 举报

发表于 2020-3-21 08:39:32 | 显示全部楼层
2011yaya2007777 发表于 2020-3-20 08:40
cat --length=0 ()-1
返回当前分区起始(字节)
对于光盘来说,就是0。

"()"换成"(hd0,0)"为什么用不了?
回复

使用道具 举报

发表于 2020-3-21 08:47:22 | 显示全部楼层
邪恶海盗 发表于 2020-3-20 21:58
就是我这个示例中的结果...

我的结果和你示例中的结果一样,抱歉,我实在理解不了你的意思。
捕获.PNG

点评

我指的是那个(wd)...  详情 回复 发表于 2020-3-21 16:39
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 22:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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