2013-07-28 4 views
2

현재 실행중인 커널의 드라이브에서 MBR을 읽어야하는 모듈을 작성 중입니다. 하지만/dev/sda를 하드 코딩하면/dev/sdb에 모듈을 설치하면 잘못된 MBR을 읽게됩니다.커널에서 현재 드라이브 경로 가져 오기

현재 실행중인 커널의 현재 드라이브 경로를 가져 오는 방법이 있습니까?

(나는 filp_open 사용하는 것이(), vfs_read()와 filp_close()는 첫 번째 512 바이트를 읽을 수 있습니다.)

답변

5

같은 것은이 없습니다. 커널은 자신을로드 한 부트 로더가 어디에서로드되었는지 알지 못합니다. 부트 로더가 드라이브에서 전혀로드되지 않았을 수 있습니다 (예 : PXE 네트워크 부팅 또는 ROM에서 coreboot로로드되었을 수 있음). 커널이 부트 로더가 아닌 kexec 인 다른 커널에 의해로드되었을 수 있습니다.

사용자가 모듈 매개 변수를 사용하여 MBR을 읽을 장치를 어떻게 지정해야합니다.

관련 문제