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

ela*_*ine 2 c linux kernel kernel-module linux-kernel

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

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

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

caf*_*caf 5

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

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