无忧启动论坛

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

[求助] 把内存map成软盘的几种方法有什么不同

[复制链接]
1#
发表于 2016-10-19 10:03:19 | 显示全部楼层
先说说一楼给出的三条命令:

一、map --mem (md)0x6000+800 (fd0)

二、map --mem (md)+2880 (fd0)

三、map --mem (md)0x8000+1440 (fd0)

第一条命令的 “源” 文件位于物理内存 12M 处,长度是 400KB
第二条命令的 “源” 文件位于物理内存 0M 处(即起始于中断向量表),长度是 1.44M
第三条命令的 “源” 文件位于物理内存 16M 处,长度是 720KB

这些源文件,虽然起始地址不同,但共同点是,它们都位于 grub4dos 的保留内存区,即,都位于用户不可以修改的区域。所以,它们没有什么本质差别。也就是说,上述命令所创建的虚拟盘,仅仅只有大小的不同(这还能算是有点差别),别的都一样,没什么差别了。它们所创建的虚拟软盘,都是 “未格式化” 的软盘。
回复

使用道具 举报

2#
发表于 2016-10-19 10:20:31 | 显示全部楼层
再来看看两条 dd 命令的差别:

dd if=(fd1) of=(fd0) count=1

dd if=(fd1)+1 of=(fd0)+1

第一条命令,源文件是 (fd1) 上的全部扇区,目的地文件是 (fd0) 上的全部扇区。但是,由于指定了 count 的值为 1,因此,只复制一个扇区就结束了。

第二条命令会有两种含义。我认为我们应该避免使用(像这样的)能够产生歧义的命令。分歧点在于,究竟 (...)+1 是什么含义?

我们知道,在 map 命令中,(...)+1 的表示法是可以表示设备 (...) 上的 “全部扇区” 的。

但在 map 命令之外使用 (...)+1,则有可能出现歧义。假如开发者沿用 map 的做法,会把 (...)+1 继续解释成 “该设备上的全部扇区”。假如开发者不沿用 map 命令的做法,则有可能解释成 “该设备上的第一扇区”。

因此,为了稳妥起见,应该使用第一种表示法。如果你想复制多个扇区,那就调整 count 的值。如果你想复制全部扇区,那就使用 dd if=(fd1) of=(fd0) ,即,不指定 count 的值。

点评

谢谢回复 之前为了学习dd命令,下载了dd for windows,用u盘来练习过dd的用法许多次 ------------------------------------ 看来在grub4dos中用dd if=(fd1) of=(fd0) count=  详情 回复 发表于 2016-10-19 10:41
回复

使用道具 举报

3#
发表于 2016-10-19 10:47:57 | 显示全部楼层
不知 发表于 2016-10-18 13:13
那fd0只有一个扇区了。

注意在 map 命令中,(fd1)+1 代表 (fd1) 上的全部扇区,而不仅仅是其第一扇区。

因此,上述命令得到的虚拟盘 (fd0) 将具有与 (fd1) 同样的大小。

如果我没记错的话,下面这两条命令是等价的(至少在一些场合是等价的):

map --mem (fd1)+1 (fd0)
map --mem (fd1) (fd0)

当然,也许会有不等价的时候。万一第二条命令不能达到你的目的,你可以用第一条命令。

点评

学习了。  详情 回复 发表于 2016-10-19 11:47
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 16:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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