从内核获取当前驱动器路径

时间:2013-07-28 12:50:33

标签: c linux linux-kernel kernel-module kernel

我正在编写一个需要在当前运行的内核的驱动器上读取MBR的模块。但是如果我硬编码/ dev / sda,如果我在/ dev / sdb中安装模块,它将读取错误的MBR。

有没有办法获取当前正在运行的内核的当前驱动器路径?

(我会使用filp_open(),vfs_read()和filp_close()来读取前512个字节。)

1 个答案:

答案 0 :(得分:5)

没有这样的事情。内核不知道加载它的引导加载程序本身是从哪里加载的。根本没有从驱动器加载引导加载程序(例如,它可能是PXE网络引导,或者是由coreboot从ROM加载),并且内核可能已被另一个内核加载kexec而不是来自引导程序。

您需要让用户以某种方式指定从哪个设备读取MBR,可能使用模块参数。