【问题标题】:Get current drive path from kernel从内核获取当前驱动器路径
【发布时间】:2013-07-28 12:50:32
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 2010-10-10
      • 2021-04-12
      • 2015-10-03
      • 1970-01-01
      相关资源
      最近更新 更多