Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Linux内核模块计算设备的哈希值_C_Linux_Io_Linux Kernel_Kernel - Fatal编程技术网

C Linux内核模块计算设备的哈希值

C Linux内核模块计算设备的哈希值,c,linux,io,linux-kernel,kernel,C,Linux,Io,Linux Kernel,Kernel,我目前正在编写一个内核模块(纯粹出于好奇) 现在我想计算整个/boot分区(/dev/sda3)的散列 我想打开文件/dev/sda3,并对其内容进行散列,但当我四处搜索如何在内核模块中存档时,我只遇到一些人说不应该在内核模块中执行I/O操作 现在我的问题是:有没有一种方法可以读取这个分区的数据,或者我真的需要为此编写一个驱动程序 如果相关:在加载加密模块之前,应在引导时加载内核模块。为什么要从内核加载?从用户空间可以轻松得多。如上所述,我希望在我的光盘解密之前(因此在执行加密挂钩之前),在启动

我目前正在编写一个内核模块(纯粹出于好奇)

现在我想计算整个
/boot
分区(
/dev/sda3
)的散列

我想打开文件
/dev/sda3
,并对其内容进行散列,但当我四处搜索如何在内核模块中存档时,我只遇到一些人说不应该在内核模块中执行I/O操作

现在我的问题是:有没有一种方法可以读取这个分区的数据,或者我真的需要为此编写一个驱动程序


如果相关:在加载加密模块之前,应在引导时加载内核模块。

为什么要从内核加载?从用户空间可以轻松得多。如上所述,我希望在我的光盘解密之前(因此在执行加密挂钩之前),在启动过程之后立即执行此操作。您可以尝试将(
filp_open
/dev/sda3
作为文件打开并读取(
filp_read
)。或者直接对访问块设备使用
generic\u make\u request
。在加密模块之前加载模块是另一个问题。@Tsyvarev谢谢,我会尽快尝试,然后给出反馈!嘿,我最后用的是vfs。