2011-08-06 4 views
9

연구 프로젝트의 일환으로 퓨즈 기반 파일 시스템을 개발했으며 이제 하드 드라이브가 수신하는 실제 읽기/쓰기 요청을 연구해야합니다. 이렇게하기 위해 리눅스에서 가상 하드 드라이브를 생성하는 옵션을 찾고 있는데, 이는 파일 시스템에 의해 생성 된 요청을 차단하고 로그합니다.리눅스에서 하드 드라이브 에뮬레이트

에뮬레이터 작성 및/또는 작성에 필요한 기술 세트를 개발하는 데 도움이되는 리소스가 인터넷에 있습니까? 현재 Linux Device Drivers 3 서적을 읽고 Linux가 블록 장치를 관리하는 방법에 대한 아이디어를 얻으려고합니다.

도움을 주시면 감사하겠습니다.

감사

답변

2

글쎄, 파티션 등의 이미지 파일을 마운트하는 방법이있다 : 파일 시스템 유형

mount -t <fs type> -o loop file.img /mnt 

대체를 file.img 원하는 파티션의 이미지되어야한다.

또 다른 방법으로 가상 박스를 설치하고 가상 머신에 리눅스를 설치하고 새로운 가상 하드 드라이브를 추가하고 가상 머신에서 원하는 파일 시스템으로 가상 하드 드라이브를 포맷하고 사용할 수 있습니다. 이 방법의 장점은 실험하는 동안 실수로 기존 시스템을 손상시키지 않도록 안전한 샌드 박스를 제공한다는 것입니다.

+1

답변 해 주셔서 감사합니다. 그러나 그 해결책은 실제로 내가 사건의 실제적인 핵심에 도달하는 것을 허용하지 않습니다. 장치 드라이버에서 전송되는 요청을 추적 할 수 있기를 원합니다. 이런 일이 일어나는 것을 보는 방법은 차단 장치 드라이버를 작성한 다음 요청을 에뮬레이터로 라우트하는 것입니다. 그러나 에뮬레이터는 커널 공간에서 실행될 블록 장치 드라이버와 달리 사용자 공간에서 실행됩니다. 또한 블록 장치 드라이버에서 에뮬레이터로 요청을 전송하는 메커니즘이 필요합니다. 그것이 내가 에뮬레이터를 쓰는 문학을 찾고있는 이유입니다. –

3

SCSI 디버그 드라이버를 살펴보십시오. site

scsi_debug 어댑터 드라이버 인용은 SCSI 디스크 가변 개수의 각각 (휘발성) 저장소로서 작용하는 운전자에 의해 할당 된 RAM의 양은 일반적인 공유를 시뮬레이션한다.

나라면 드라이버에 이미있는 디버그 로깅을 활성화 한 다음 필요에 맞게 향상시켜야합니다.

+0

게시물에서 언급 한 링크의 설명서를 읽었습니다. 지속성이 필요하고 scsi_debug 모듈이 메모리 내 솔루션을 사용하기 때문에 사용할 수 없습니다. 또한 버스를 어지럽히는 것을 피하려고합니다. 에뮬레이터에 블록 장치 드라이버 (내가 직접 작성해야 함)에서 제어를 전달하려고합니다. 커널 공간 구성 요소가 사용자 공간에서 실행되는 데몬으로 제어를 전달하는 동일한 아키텍처 (가상 호스트 버스 어댑터 모듈을 가지고 있음에도)가있는 CDemu를 확인했습니다. –

관련 문제