无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 邪恶海盗
打印 上一主题 下一主题

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

[复制链接]
31#
发表于 2020-3-21 12:53:56 | 只看该作者
很可能,chenall 只是实现了当前盘 ()的处理,而没有实现(hdx,y)之类的处理。

那就曲径通幽,先把目标盘设为当前盘,计算完,再恢复原先的当前盘。

点评

这样我感觉容易出错啊,假如是这样: map---*** hd0=111 hd1=222 hd2=333 root--*** 后面还能保证上面的对应关系么?  详情 回复 发表于 2020-3-21 16:42
回复

使用道具 举报

32#
 楼主| 发表于 2020-3-21 16:39:28 | 只看该作者
dsfgamesky 发表于 2020-3-21 08:47
我的结果和你示例中的结果一样,抱歉,我实在理解不了你的意思。

我指的是那个(wd)...

点评

这个我也不知道……  详情 回复 发表于 2020-3-21 16:42
回复

使用道具 举报

33#
发表于 2020-3-21 16:42:06 | 只看该作者
邪恶海盗 发表于 2020-3-21 16:39
我指的是那个(wd)...

这个我也不知道……
回复

使用道具 举报

34#
 楼主| 发表于 2020-3-21 16:42:34 | 只看该作者
本帖最后由 邪恶海盗 于 2020-3-21 16:44 编辑
不点 发表于 2020-3-21 12:53
很可能,chenall 只是实现了当前盘 ()的处理,而没有实现(hdx,y)之类的处理。

那就曲径通幽,先把 ...

这样我感觉容易出错啊,假如是这样:
map---***root--***
hd0=111
hd1=222
hd2=333

root--***
后面还能保证上面的对应关系么?

点评

印像中 find 命令好像是可以加一个其它命令使用的。 意思就是find成功就运行该命令(并且运行该命令的root就是当前成功的磁盘) 使用这个就可以实现你想要的功能,并且不会影响到现有root 好久没有用了,也  详情 回复 发表于 2020-3-24 13:02
你在 map 之前,先用 root 命令切换当前分区,再用 chenall 的方法(以及前面 yaya 给出的说明),就可以搞定各个分区的起始位置和长度。 map 之后,虚拟盘里面还需要这些东西吗?不需要了吧? 虚拟盘里面的内  详情 回复 发表于 2020-3-24 10:23
回复

使用道具 举报

35#
发表于 2020-3-24 10:23:34 | 只看该作者
邪恶海盗 发表于 2020-3-21 16:42
这样我感觉容易出错啊,假如是这样:
map---***root--***
hd0=111

你在 map 之前,先用 root 命令切换当前分区,再用 chenall 的方法(以及前面 yaya 给出的说明),就可以搞定各个分区的起始位置和长度。

map 之后,虚拟盘里面还需要这些东西吗?不需要了吧?

虚拟盘里面的内容,你是完全知道的。在执行 map 之前,你都知道了即将进行虚拟的那个 img 的内容。

这么说来,就没有什么新问题了,全都能够搞定。只不过需要细致地学习、研究 grub4dos 的知识而已。
回复

使用道具 举报

36#
发表于 2020-3-24 11:16:46 | 只看该作者
本帖最后由 不点 于 2020-3-24 11:30 编辑

老眼昏花,居然没看见你们图片上的 (wd),还以为是 (ud)

这 (wd) 是哪个开发者增加的?

新版 grub4dos 会不会有这个 (wd)?

如果不是官方发布的 grub4dos,那有可能被第三方开发者修改了。你从哪里得到的 grub4dos,你就向哪里询问(询问其开发者)。

------------------------

md 和 rd 都是内存盘,只不过有差别。md 和 rd 是为了使用方便而设计的两个内存盘,各有用处。

印像中,md 起始于物理地址 0,终止于第一个连续内存块的结尾。BIOS 的内存块布局情况,可以用 displaymem 来显示。有些 BIOS,它的第一个连续内存块很小,那么,md 的容量也就会很小。(补充:所谓 “第一个连续内存块”,是指从 1M 开始的第一个连续的扩展内存块,不是指 0~640K 这段常规内存;我们假定 1M 以内没有内存盲区,即,全都是存在的,只不过 ROM 内存是只读的而已)

rd 是用户可以手动指定起始位置和长度的。这是长处,也是短处。用户如果指定的位置不合适(并且写入到不该写入的内存地址),就有可能对 BIOS 的整个内存系统造成破坏,甚至造成 BIOS 死机、失常、无法工作等问题。因为用户可以随意指定 rd 的起始位置和长度,所以,rd 还有可能被指定到一些不存在的内存区域,同样会出现各种故障或失败。

点评

[attachimg]414303[/attachimg] 测试(wd)还是有...  详情 回复 发表于 2020-3-24 13:08
回复

使用道具 举报

37#
发表于 2020-3-24 12:57:08 | 只看该作者
wd印像中应该是我添加的,主要用于ipxe启动,正常情况下不用理会。
我当时的思路应该是如下(有点记不太清楚了)
pd 使用grub4dos的方法来访问pxe服务器。
wd 使用ipxe的驱动来访问pxe服务器。

有兴趣的可以对比测试一下,相同的条件下,看看有没有什么区别,当时印像中好像是使用wd速度会快一些。

点评

快不快我不知道咋测,但至少这个wd的定义不太准确,我在本地PXE启动时没有这个,云端PXE启动时就有  详情 回复 发表于 2020-3-24 13:26
回复

使用道具 举报

38#
发表于 2020-3-24 13:02:36 | 只看该作者
邪恶海盗 发表于 2020-3-21 16:42
这样我感觉容易出错啊,假如是这样:
map---***root--***
hd0=111

印像中 find 命令好像是可以加一个其它命令使用的。

意思就是find成功就运行该命令(并且运行该命令的root就是当前成功的磁盘)

使用这个就可以实现你想要的功能,并且不会影响到现有root

好久没有用了,也不知记忆有没有出错。

点评

确实如此,find 找到文件后,就在那个分区上运行命令,所以,find 命令行里面的 () 就是那个分区。 比如 find /bootmgr /bootmgr 也可以写成 find /bootmgr ()/bootmgr 都是找到 /bootmgr 后,运行那  详情 回复 发表于 2020-3-24 15:50
find --set-root??? 0000:82B0 8字节(即四字) 最后访问的分区的扇区总数 说明里有个这个,暂时还不知道怎么用  详情 回复 发表于 2020-3-24 13:23
回复

使用道具 举报

39#
 楼主| 发表于 2020-3-24 13:08:18 | 只看该作者
不点 发表于 2020-3-24 11:16
老眼昏花,居然没看见你们图片上的 (wd),还以为是 (ud)

这 (wd) 是哪个开发者增加的?


测试(wd)还是有...
回复

使用道具 举报

40#
 楼主| 发表于 2020-3-24 13:23:26 | 只看该作者
chenall 发表于 2020-3-24 13:02
印像中 find 命令好像是可以加一个其它命令使用的。

意思就是find成功就运行该命令(并且运行该命令的 ...

find --set-root???

0000:82B0        8字节(即四字) 最后访问的分区的扇区总数
说明里有个这个,暂时还不知道怎么用
回复

使用道具 举报

41#
 楼主| 发表于 2020-3-24 13:26:08 | 只看该作者
chenall 发表于 2020-3-24 12:57
wd印像中应该是我添加的,主要用于ipxe启动,正常情况下不用理会。
我当时的思路应该是如下(有点记不太清 ...

快不快我不知道咋测,但至少这个wd的定义不太准确,我在本地PXE启动时没有这个,云端PXE启动时就有

点评

只有使用ipxe启动grldr才会有,之前的定义应该是 web drive 早期刚加上ipxe的时候有用到,因为当时还不能识别是pxe或ipxe环境,后面的版本有做了一些处理,应该就没有什么用了。  详情 回复 发表于 2020-3-24 13:43
回复

使用道具 举报

42#
发表于 2020-3-24 13:43:23 | 只看该作者
邪恶海盗 发表于 2020-3-24 13:26
快不快我不知道咋测,但至少这个wd的定义不太准确,我在本地PXE启动时没有这个,云端PXE启动时就有

只有使用ipxe启动grldr才会有,之前的定义应该是 web drive

早期刚加上ipxe的时候有用到,因为当时还不能识别是pxe或ipxe环境,后面的版本有做了一些处理,应该就没有什么用了。

点评

我本地也是iPXE启动的,就没有这个(wd)...  详情 回复 发表于 2020-3-24 14:04
回复

使用道具 举报

43#
 楼主| 发表于 2020-3-24 14:04:51 | 只看该作者
chenall 发表于 2020-3-24 13:43
只有使用ipxe启动grldr才会有,之前的定义应该是 web drive

早期刚加上ipxe的时候有用到,因为当时还 ...

我本地也是iPXE启动的,就没有这个(wd)...
回复

使用道具 举报

44#
发表于 2020-3-24 15:50:36 | 只看该作者
chenall 发表于 2020-3-24 13:02
印像中 find 命令好像是可以加一个其它命令使用的。

意思就是find成功就运行该命令(并且运行该命令的 ...

确实如此,find 找到文件后,就在那个分区上运行命令,所以,find 命令行里面的 () 就是那个分区。

比如

find  /bootmgr /bootmgr
也可以写成
find  /bootmgr  ()/bootmgr

都是找到 /bootmgr 后,运行那个找到的 bootmgr。这里要说的是,() 表示的就是找到后的 “当前位置”。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 03:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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