首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问超出报告容量的块设备数据

访问超出报告容量的块设备数据
EN

Stack Overflow用户
提问于 2018-02-08 07:54:13
回答 1查看 60关注 0票数 0

我有一个SATA数据块设备,该设备报告的容量小于其可用空间,并且我想使用Linux为数据块设备创建的文件读取和写入超过报告容量的容量。所以我希望使用从open({"/dev/sda", O_RDWR)返回的描述符进行操作。但是,当我尝试使用lseek来查找设备容量之外时,我得到了一个错误,错误号被设置为EINVAL (22)。有没有办法在不修改设备驱动程序的情况下访问超出设备容量的数据,同时仍然使用open()返回的文件描述符

我的Linux发行版是带有3.10.0-514.21.1.el7.x86_64内核的Linux7,尽管我对解决方案感兴趣,即使它们涉及其他CentOS发行版。

编辑:我正在使用的驱动器是一个FLEX协议驱动器,它可以报告驱动器的常规容量,但也可以在高于驱动器报告容量的偏移量上使用磁瓦片记录。如果您感兴趣,可以在T13 website上找到此协议的详细信息。

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 09:47:27

如果我没记错的话,这个错误是因为设备本身不能读写那个柱面,这表明它很可能不存在。请注意,许多制造商使用1000B = 1KB之类的空间,并且文件系统也保留了自己的空间。

简短的回答是,你不需要。设备只会报告你可以使用的空间,也不会报告缓存大小。这种错误报告不是在操作系统层面,而是在设备层面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48675276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档