无忧启动论坛

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

关于map -in-situ

[复制链接]
跳转到指定楼层
#
发表于 2015-4-26 09:16:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
由于Windows只能识别可移动的U盘设备第一个主分区,如果没有主分区,则只能识别第一个逻辑分区。我想把UD所在u盘的高端隐藏分区(第二个主分区)map为一个只读的盘,用了以下命令尝试

map --read-only --in-situ (%root%,2)+1 (0xff)

map --read-only --in-situ (%root%,2)+1 (hd127)

两种写法任选其一,进入03PE(已集成WinVBlock)后,发现map的分区均被识别为本地驱动器,且--read-only参数似乎不起作用?都是可写的。请问该怎么解决此问题?
9#
发表于 2016-6-15 23:07:31 | 只看该作者
不点 发表于 2016-6-15 21:40
这段英文,是告诉一点信息,如果看不懂,可以忽略。

背景知识:你要把某个扇区序列映射为一个虚拟硬盘 ...

好像读取虚拟出来的分区表不对,我再仔细看看,谢谢大师
回复

使用道具 举报

8#
发表于 2016-6-15 21:40:23 | 只看该作者
dd102 发表于 2016-6-15 19:08
map (hd0)102400+16384000 (hd0)
为什么会提示  实际hd0 是40g的
info: total sectors calculated fro ...

这段英文,是告诉一点信息,如果看不懂,可以忽略。

背景知识:你要把某个扇区序列映射为一个虚拟硬盘。这个扇区序列的第一个扇区,就是虚拟硬盘的 mbr,它含有虚拟硬盘的分区表。从分区表可以算出虚拟硬盘的总扇区数。它应该等于 16384000 才对。可是却不相等。于是,grub4dos 给出一条信息,提醒你注意。如果你的分区表正好让所有的扇区都划分完毕,没有空闲的扇区,那就不会出现提示信息了。

点评

好像读取虚拟出来的分区表不对,我再仔细看看,谢谢大师  详情 回复 发表于 2016-6-15 23:07
回复

使用道具 举报

7#
发表于 2016-6-15 19:08:47 | 只看该作者
不点 发表于 2015-4-26 12:51
grub4dos 的虚拟盘是 bios 级别上的,不是操作系统级别上的。在 bios 级,没有文件系统的概念,因此没有 ...

map (hd0)102400+16384000 (hd0)
为什么会提示  实际hd0 是40g的
info: total sectors calculated froM partition table(16370235) is less than the n UMber of sectors in the whole disk iMage(16384000).

点评

这段英文,是告诉一点信息,如果看不懂,可以忽略。 背景知识:你要把某个扇区序列映射为一个虚拟硬盘。这个扇区序列的第一个扇区,就是虚拟硬盘的 mbr,它含有虚拟硬盘的分区表。从分区表可以算出虚拟硬盘的总扇  详情 回复 发表于 2016-6-15 21:40
回复

使用道具 举报

6#
发表于 2015-4-26 12:51:19 | 只看该作者
sp_star 发表于 2015-4-26 11:53
grldr应该也能按扇区映射。

grub4dos 的虚拟盘是 bios 级别上的,不是操作系统级别上的。在 bios 级,没有文件系统的概念,因此没有目录(文件夹)的概念。所以,grub4dos 不存在把某个目录仿真为一个盘号的说法(就是说,这样的说法是没有意义的)。在古老的 DOS 时代,有个命令叫做 subst,可以把某个目录虚拟为一个盘号。这个 subst 就是操作系统级别的虚拟化程序。

一个分区就是一个扇区序列,所以,grub4dos 可以把分区映射为软盘、硬盘或光盘。在 grub4dos 下可以生办法获得一个分区的起始扇区和长度。这是能够做到的事情,只不过需要你去学习和研究。

点评

map (hd0)102400+16384000 (hd0) 为什么会提示 实际hd0 是40g的 info: total sectors calculated froM partition table(16370235) is less than the n UMber of sectors in the whole disk iMage(16384000).  详情 回复 发表于 2016-6-15 19:08
回复

使用道具 举报

5#
发表于 2015-4-26 12:41:44 | 只看该作者
chiannet 发表于 2015-4-26 11:58
关键是如何映射为只读盘?

grldr映射的盘在native shell里也是不识别的,必须通过驱动来识别,比如winvblock 和 firadisk。上面不点说过,驱动不支持read only,这就没办法了。不过rw的盘,应该也能用吧?
回复

使用道具 举报

4#
 楼主| 发表于 2015-4-26 11:58:39 | 只看该作者
sp_star 发表于 2015-4-26 11:53
grldr应该也能按扇区映射。

关键是如何映射为只读盘?

点评

grldr映射的盘在native shell里也是不识别的,必须通过驱动来识别,比如winvblock 和 firadisk。上面不点说过,驱动不支持read only,这就没办法了。不过rw的盘,应该也能用吧?  详情 回复 发表于 2015-4-26 12:41
回复

使用道具 举报

3#
发表于 2015-4-26 11:53:39 | 只看该作者
chiannet 发表于 2015-4-26 11:23
谢谢不点大大指正谬误。

       我目前所用到的 imdisk,是支持物理驱动器的扇区映射为驱动盘 ...

grldr应该也能按扇区映射。

点评

grub4dos 的虚拟盘是 bios 级别上的,不是操作系统级别上的。在 bios 级,没有文件系统的概念,因此没有目录(文件夹)的概念。所以,grub4dos 不存在把某个目录仿真为一个盘号的说法(就是说,这样的说法是没有意义  详情 回复 发表于 2015-4-26 12:51
关键是如何映射为只读盘?  详情 回复 发表于 2015-4-26 11:58
回复

使用道具 举报

2#
 楼主| 发表于 2015-4-26 11:23:00 | 只看该作者
不点 发表于 2015-4-26 10:29
你的两条命令是完全一样的,都是采用磁盘号 255:

0xFF 是 255,而 hd127 等于 0x80 + 127 也等于 255。 ...

       谢谢不点大大指正谬误。

       我目前所用到的 imdisk,是支持物理驱动器的扇区映射为驱动盘的,且只读或可写均可,但imdisk是
只能在windows下运行的程序。也不好在native shell 阶段取得imdisk扇区映射为驱动盘所需的参数(扇区起始地址,长度等)
     不点大提到in-situ 参数只能用于创建虚拟硬盘,不知GRUB4DOS有其它方式可以将一个目录或一个分区映射为虚拟光盘的方式没有?或者 在grldr阶段获取(%root%,2)的起始扇区地址,长度,把它们写成文件,供native shell 调用?

点评

grldr应该也能按扇区映射。  详情 回复 发表于 2015-4-26 11:53
回复

使用道具 举报

1#
发表于 2015-4-26 10:29:06 | 只看该作者
你的两条命令是完全一样的,都是采用磁盘号 255:

0xFF 是 255,而 hd127 等于 0x80 + 127 也等于 255。所以,两条命令没有差别。

in-situ 参数只能用于创建虚拟硬盘,不能用于创建虚拟光盘。所以,你的用法不符合开发者的设计目的。

但 winvblock 这个驱动程序允许你这么使用,它仍旧可以把你这个虚拟光盘当作虚拟硬盘来对待,算你幸运。

不过,据我所知,winvblock 和 firadisk 都没有支持 --read-only 参数,它们都忽略了这个参数。

你可以向 winvblock 的开发者提建议,要求支持 read only 的操作。不过,我个人认为,如果让 windows 下不能够写盘,则 windows 恐怕会出毛病。所以你最好干脆放弃使用 read only 参数。

点评

谢谢不点大大指正谬误。 我目前所用到的 imdisk,是支持物理驱动器的扇区映射为驱动盘的,且只读或可写均可,但imdisk是 只能在windows下运行的程序。也不好在native shell 阶段取得imdisk扇区映  详情 回复 发表于 2015-4-26 11:23
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 08:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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