2014-12-08 75 views

回答

1

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

dd if=/dev/sda of=outfile

如果您不能使用用户空间的命令,您可能需要磁盘块设备上直接运行。 您需要使用系统调用open(2)打开设备(详情请参阅man 2 open)。

int fd; 
fd = open("/dev/sda", FLAGS); 

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

ssize_t read(int fd, void *buf, size_t count);

您也可以发送命令到使用的IOCTL设备:

int ioctl(int d, int request, ...);

使用这些调用,你应该有足够的灵活性,以做任何你想要与你的磁盘做。

+0

这不是我想要的答案。我想通过编程在内核级读写扇区。 – user4082317 2014-12-08 08:34:54

相关问题