2013-07-28 49 views
2

我在寫一個需要讀取當前運行的內核驅動器上的MBR的模塊。但是如果我硬編碼/ dev/sda,它會讀取錯誤的MBR,如果我將模塊安裝在/ dev/sdb中。從內核獲取當前驅動器的路徑

有沒有辦法獲得當前運行內核的當前驅動器路徑?

(我會用filp_open(),vfs_read()和filp_close()讀取第一個512個字節。)

回答

5

有沒有這樣的事情。內核不知道加載它的bootloader在哪裏加載。 Bootloader可能根本不是從驅動器加載的(例如它可能是PXE網絡引導,或者是coreboot從ROM加載的),而內核可能已由另一個內核加載,而不是從引導加載程序加載。

您將需要用戶指定設備讀取MBR的方式,或許使用模塊參數。