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。