'/ dev / sdx'캐시를 청소하는 방법?


0

테스트를 위해 우분투 시스템에서 문제가 발생했습니다. 일반적으로 다음 명령을 실행합니다.

echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi

나는 단지 ata1포트를 사용하고 있습니다.

테스트를 마치면 방금 발행합니다.

echo "scsi remove-single-device 0 0 0 0" > /proc/scsi/scsi

그러나 ata 명령을 사용하기 시작 하면서이 프로세스는 시스템에 연결되어 더 이상 작동하지 않습니다.

예를 들어

전에:

이 명령은 항상 /dev/sdb마운트 된 상태 로 반환 되었으며 다른 명령은 드라이브를 시스템에 연결하지 않고 간단히 마운트 해제했습니다.

지금:

내가 언급 한이 명령은 작동하는 것 같지만 테스트하는 모든 드라이브에 대해 다음 문자로 캐시를 계속 채 웁니다.

첫 번째 테스트 : /dev/sdb

두 번째 테스트 : /dev/sdc

시스템이 과거를 발행 할 수 없기 때문에 문자가 부족할 때까지 dev/sdz

누군가 캐시를 플러시하는 방법이나이 문제를 해결하는 방법을 알려줄 수 있습니까?

정말 도움을 주셔서 감사합니다.

답변:


1

실제 "캐시"에 문제가 있습니다.

프로그램이 fd 할당을 위해 나머지 모든 공간을 채울 때까지 각 드라이브 테스트에서 파일 디스크립터를 열 수있게 해주는 코드 조각이 있습니다. 파이썬 호출에서 오류 대신 open()인수 os.O_RDWR대신 인수로 열었습니다.os.O_RDONLY.

os.O_RDWRATA 명령을 실행 한 후 모든 파일 설명자가 열리도록했습니다. os.O_RDONLY메모리 버퍼로 변경 한 후 읽을 수 있고 파일 디스크립터가 올바르게 닫혔습니다.

이것이 꼬집음에 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.