在linux内核级,如何读写一个扇区的硬盘

在linux内核级,如何读写一个扇区的硬盘,linux,kernel,Linux,Kernel,出于某些原因,我需要在我的模块中读取和写入硬盘扇区 我想通过在内核级编程来读写一个扇区 我的linux内核版本是3.13.0 有人能帮我吗?我不确定你在模块中能做什么。 如果您正在使用shell,则可以使用dd命令 ddif=/dev/sda of=outfile 如果无法使用用户空间命令,则可能必须直接在磁盘块设备上工作。 您需要使用open(2)系统调用打开设备(有关详细信息,请参阅man 2 open) 之后,您可以执行读取命令(man 2 read)从设备读取数据 ssize\u t r

出于某些原因,我需要在我的模块中读取和写入硬盘扇区

我想通过在内核级编程来读写一个扇区

我的linux内核版本是3.13.0


有人能帮我吗?

我不确定你在模块中能做什么。 如果您正在使用shell,则可以使用
dd
命令

ddif=/dev/sda of=outfile

如果无法使用用户空间命令,则可能必须直接在磁盘块设备上工作。 您需要使用
open(2)
系统调用打开设备(有关详细信息,请参阅
man 2 open

之后,您可以执行读取命令(man 2 read)从设备读取数据

ssize\u t read(intfd,void*buf,size\u t count)

您还可以使用IOCTLs向设备发送命令:

intioctl(intd,intrequest,…)


使用这些调用时,您应该足够灵活,可以对磁盘执行任何操作。

这不是我想要的答案。我希望通过在内核级别编程来读取和写入扇区。
int fd;
fd = open("/dev/sda", FLAGS);