2015-01-19 3 views
1

하드 드라이브를 찾는데 문제가 있습니다.하드 디스크의 명령 찾기

하드 드라이브에서 읽기 또는 쓰기로 SEEK 작업을 수행하는 방법을 궁금합니다. 그것은 papaer "하드 디스크 전력 소비 모델링"작업과 같습니다. LBA 나 실린더 주소와 같은 디스크의 특정 주소를 찾으려면 도구, 인터페이스 또는 단일 명령이 필요합니다.

데이터 전송없이이 명령을 사용하여 하드 디스크의 탐색 거리를 파악하고 싶습니다. 왜냐하면 나는 실험에 따라 거리와 에너지를 찾는 곡선을 그릴 필요가 있기 때문이다.

SEEK 명령과 실린더 형식의 탐색 거리가 필요합니다. 리눅스와 윈도우 모두 괜찮습니다. 제발 도와주세요.

답변

1

Seeking은 일반적인 블록 장치 API의 일부가 아니므로 검색을 수행하려면 장치 별 명령을 실행해야합니다. 편의를 위해 USB 및 IDE/SATA는 둘 다 이러한 명령에 대해 설정된 SCSI 명령을 사용하도록 선택 했으므로 SCSI 표준을 참조해야합니다.

적어도 이러한 장치가/dev/sdX라는 SCSI 디스크와 Linux의/dev/sgN에 해당하는 "SCSI generic"장치로 나타나는 이유 중 일부입니다. FreeBSD는 비슷한 API를 제공하며, MS-DOS와 Windows는 ASPI와 친구들을 가지고 있습니다. 자신의 커널 드라이버를 작성하지 않으면 MacOS X에서 운이 없게됩니다. (Yosemite는 서명을 받아야합니다.)

그래서 당신이 필요로하는 부분은 리눅스의 SG 장치를 프로그래밍하는 방법은 다음과 같습니다

  • ... 그리고 SCSI 표준. 이것들은 T10에 의해 발행 된 값 비싼 독점 표준이지만 일부 창의적인 검색어는 초안을 찾거나 다른 방법으로 사본을 찾아야합니다. 일반적으로 SCSI를 설명하는 정보는 "정보 기술 - SCSI 주 명령 -4 (SPC-4)"라고하며 하드 디스크 및 이와 유사한 매체와 관련된 정보는 "정보 기술 - SCSI 블록 명령 - 2 (SBC-2)"입니다. . (이들의 향후 버전은 SPC-5, -6 등입니다.) 탐색을위한 특정 명령은 후자의 문서에 설명되어 있으며 원하는 명령은 SEEK (10)입니다. SEEK (6)은 작은 디스크 만 지원하며 비 SCSI 장치에서는 잘 지원되지 않는 레거시 명령입니다.

  • +0

    고맙습니다. 내가 나열한 문서를 읽습니다. 이전에 SCSI 명령을 살펴 봤지만 확실하지는 않습니다. 명확하게 해주셔서 감사합니다. –

    관련 문제