2010-04-10 5 views
0

리눅스 커널 소스를 사용하여 물리적으로 작성된 블록 번호 목록을 유지하려고합니다. 커널 소스를 수정하여이 작업을 수행 할 계획입니다. 커널 소스에서 물리적 파티션에 쓰는 것을 처리하는 구조와 함수를 찾고 물리적 파티션에 쓸 때 블록 번호를 얻어야합니다.Linux 커널 - 블록 번호를 프로그래밍 방식으로 검색합니다.

이 작업을 수행하는 방법은 무엇입니까? 어떤 도움을 주셔서 감사합니다. 커널이 파티션에 실제로 쓰고있는 곳을 찾아 블럭 번호를 반환하면 작동 할 것입니다.

답변

0

blktrace 인터페이스를 사용하여 커널을 수정하지 않고 사용자 공간에서이 작업을 완전히 수행 할 수 있다고 생각합니다.

0

하나만 확인하십시오. 점검 할 곳이 아닙니다. 예를 들어 블록 장치가 iSCSI 또는 AoE 대상인 경우 각각의 드라이버를 찾고 나머지는 궁극적으로 동일합니다.

네트워크 상호 작용을 제외한 일반적인 SCSI, 기타 플래시 장치 등에 대해서도 마찬가지입니다.

VFS는 버퍼링을 제공하면서 read() 및 write()와 같은 호출을 위해 편리하고 통일되고 일관된 인터페이스로 이러한 모든 것을 하나로 결합합니다. 주문 및 장벽 작성을 포함한 실제 마법은 블록 개발자가 직접 처리합니다.

장치 매퍼를 사용하는 경우 경로가 약간 변경됩니다. 그것은 vfs -> dm_ (target) -> blockdev_driver에서 시작됩니다.

관련 문제