无忧启动论坛

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

[讨论] 突发奇想,给(rd)用法的改进意见

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-10 20:16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(rd)+1 是经过特殊处理的。它永远代表 (rd) 设备的全部内容。因此,你可能无法只获取它的第一个扇区。但是你可以获取它的两个扇区:(rd)+2 这个是可以的。
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》————摘自教程


(rd)比(md)灵活,但感觉(rd)不能获取第一个扇区是个遗憾,能不能把(rd)0+1 改成获取(rd)盘的第一个扇区,而(rd)+1 仍然代表 (rd) 设备的全部内容?

只是给开发团队的建议,我也是突然想到的,发出来讨论下!!

[ 本帖最后由 2011qf020124 于 2011-9-11 12:54 编辑 ]
2#
发表于 2011-9-11 08:09:41 | 只看该作者
这是历史原因造成的。

当初没能料到 grub4dos 能够有这么好的发展势头,所以尽量保持与 grub 的 100% 兼容性。在 grub 中,“设备” 和 “文件” 是严格区分的,设备不能当作文件来用。所以,我们也要严格区分。

假如设备可以当作文件来用,那么,就不需要 (rd)+1 这种表达法了,直接用 (rd) 就好了。

这个问题等以后再解决。如果 chenall 愿意的话,现在也可以考虑解决,但最好先发布一个正式版,然后在下一个阶段进行解决。
回复

使用道具 举报

3#
发表于 2011-9-11 10:26:01 | 只看该作者
cat --hex --length=0x200 (rd)+1
------------
dd if=(rd)+1 of=(md)0x200+1 count=1
cat --hex (md)0x200+1

我认为目前可以保持现状。
回复

使用道具 举报

4#
 楼主| 发表于 2011-9-11 16:08:42 | 只看该作者
我的想法是,把(rd)0+1和(rd)+1的含义分开,(rd)+1仍然代表整个(rd)盘,作为一种特殊用法;而(rd)0+1代表(rd)盘第一扇区,继续保持和磁盘设备的一致用法,感觉这样更统一,更优美,更和谐!呵呵!

只是我的建议,大家看看就行!!
回复

使用道具 举报

5#
发表于 2011-9-11 16:48:08 | 只看该作者
我觉得保留现状没有什么不好的,

这样会增加处理的难度,因为0+1和+1其实表达的结果是一样的.非要这样处理的话,只会增加程序的复杂性.
回复

使用道具 举报

6#
发表于 2011-9-12 21:41:06 | 只看该作者
赞成保持现状,诚如chenall所言。
回复

使用道具 举报

7#
发表于 2011-9-13 09:34:13 | 只看该作者

回复 #2 不点 的帖子

现在是不是可以用(rd)+1,512来获取(rd)盘的第一个扇区?另外,现在设备可以当作文件来用吧?
回复

使用道具 举报

8#
发表于 2011-9-13 10:18:34 | 只看该作者

回复 #7 wannaknow 的帖子

不行的。两个问题的回答都是否定的。但是,有些场合已经开始把设备当作文件来用了,比如,dd 命令中可以用设备,此时的设备,表示设备上的全部扇区,实际上起着文件的作用。

(rd)+1,512 与 (rd)+1 好像是等价的。

不知用 (rd)+2,512 是否可以,你自己试试吧。用 cat 试试就知道了。
回复

使用道具 举报

9#
发表于 2011-9-13 10:40:50 | 只看该作者
(rd)+2,512 不行, 不合理。
(rd)+2,511或 (rd)+2,513可以。
回复

使用道具 举报

10#
发表于 2011-9-13 11:01:15 | 只看该作者

回复 #9 pseudo 的帖子

不测不知道,一测还真是这么回事。貌似(rd)+2,512被认为相当于(rd)+1了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 18:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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