关于对裸设备进行读写操作的问题!

发布于 2022-07-24 04:05:45 字数 164 浏览 13 评论 9

我现在有一块不用的磁盘分区,
没有进行过格式化,那它应该算是裸设备了吧?

我现在的问题是,应该如何对这块磁盘分区进行读写操作呢?
有相应的API接口吗?
与磁盘相关的那些扇区、磁道、LBA等等的参数,这些不需要自己在程序里面设置吗?

多谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

裂开嘴轻声笑有多痛 2022-07-25 09:46:34

原帖由 bitzilla 于 2006-7-24 10:12 发表
直接采用原始的对文件操作的读写接口应该能够完成,但是能否得到LBA的信息呢?
比如说在磁盘分区上从0便宜地址处写了一个数据块,知道磁盘分区的开始扇区信息,知道数据块的大小,能不能计算出LBA(logical block addr ...

"知道磁盘分区的开始扇区信息", 就知道了该分区的LBA!!! 为什么你还问“能不能计算出LBA”?

迷雾森÷林ヴ 2022-07-25 09:46:29

en ,我先看看吧  ^_^

我在google上搜了好久,发现很多网页上都是提供了lba和柱面扇区的转换公式,

并没有提lba和写入数据块的关系,

风月客 2022-07-25 09:45:45

你看看会不会提供了相关的ioctl命令阿

深府石板幽径 2022-07-25 09:24:53

直接采用原始的对文件操作的读写接口应该能够完成,但是能否得到LBA的信息呢?
比如说在磁盘分区上从0便宜地址处写了一个数据块,知道磁盘分区的开始扇区信息,知道数据块的大小,能不能计算出LBA(logical block address)呢?

GRAY°灰色天空 2022-07-25 09:15:05

如果没有对磁盘进行格式化的话,也就是说,磁盘对你来说就是一整块可随机存储的介质;
你对磁盘进行的操作不是通过文件系统接口,而是直接通过磁盘块设备驱动程序的接口;在linux下的读写接口都是同一通过open,read,write之类来完成的,磁盘块设备的驱动程序也不列外;
所以,你就直接可以用如open("/dev/hda1", O_RDWR)来打开,然后对这一大块介质进行读写、定位等操作。

:)

女中豪杰 2022-07-25 07:41:15

gparted调用的是dd命令来完成不同文件系统上的copy工作的,
它并没有自己实现的部分。

gparted主要的用途是提供了一个GUI界面和对不同文件系统的支持,它把许多的磁盘管理功能都集成到一起去了。

冧九 2022-07-25 04:41:06

gparted?
好的,我先看看里面的实现。
多谢落

原帖由 tclwp 于 2006-7-23 17:47 发表
你看一下gparted源代码

爺獨霸怡葒院 2022-07-25 03:48:31

我的想法是
      要对一个没有格式化过的磁盘直接进行读写,这样可以绕过文件系统,如果程序没有什么错误的话,它的读写效率应该要比经过文件系统的读写要快很多。
    在对块设备文件进行读写的时候, 逻辑块地址lBA需要自己在程序中指定吗?
应该怎么往磁盘上写呢?

陌上芳菲 2022-07-24 07:04:11

你看一下gparted源代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文