내 목표는 20분 동안 사용하지 않은 후 외장 USB 드라이브의 속도를 늦추는 것입니다. 일반적인 상황에서는 이 기능을 사용하겠지만 hdparm
안타깝게도 외부 USB 드라이브에서는 이 기능이 작동하지 않습니다. 나에게 다음과 같은 오류가 발생합니다.
hdparm -S240 /dev/sdc
/dev/sdc:
setting standby to 240 (20 minutes)
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
그러다가 두통이 생겼습니다 sdparm
.
sdparm --flexible -C stop /dev/sdc
/dev/sdc: SAMSUNG HD153WI
1초도 안 되는 시간 동안 디스크를 회전시킨 다음 즉시 다시 회전시킵니다. 파일 시스템이 마운트되지 않은 경우에도 마찬가지입니다.
그러다가 내가 찾았어
eject /dev/sdc
디스크 속도가 느려지지만 언로드되기도 합니다.
다음 아이디어는 누군가가 파일 시스템의 마운트 경로에 액세스할 때 자동 마운트를 사용하여 드라이브를 마운트하는 것입니다. 설치는 작동하지만 드라이브가 마운트 해제된 후에는 회전하지 않습니다. 내가 하고 싶은 것은 위의 팝업 명령을 실행하는 것입니다.뒤쪽에automount는 드라이브를 마운트 해제합니다.
이 작업을 수행하는 방법에 대한 아이디어가 있습니까? 아니면 더 쉬운 해결책이 있습니까?
답변1
자동 마운트에는 마운트 해제 후 옵션이 없다고 확신합니다. 하지만 sdparm(1.07) 맨페이지에서 뭔가를 발견했습니다.
-r, --읽기 전용
DEVICE를 읽기 전용 모드로 열려면 다른 논리를 재정의하세요. 이 옵션은 SCSI 명령 세트를 통해 명령이 ATA 디스크로 전송되는 경우 유용할 수 있습니다. 예를 들어 Linux에서는 ATA 디스크의 즉시 다시 시작을 중지하려면 "-C stop"이 필요할 수 있습니다.
현재 USB 하드 드라이브가 없고 운영 체제를 테스트할 수 없지만 이는 귀하가 겪고 있는 문제와 일치하는 것 같습니다. 하지만 드라이브의 유휴 시간을 측정하는 방법을 잘 모르겠습니다.
이 옵션을 사용해도 디스크가 보존되지 않으면 동일한 매뉴얼 페이지에 설명된 문제가 발생할 수 있습니다.
Linux 2.6 시리즈, 특히 ATA 디스크의 경우 sdparm을 사용하여 디스크를 중지(회전)하는 것만으로는 충분하지 않을 수 있으며, 다른 메커니즘은 일정 시간 후에 디스크를 다시 시작합니다. 사용자는 "echo Offline > /sys/block/sda/device/state"를 사용하여 디스크를 "오프라인"으로 표시할 수도 있습니다. 여기서 sda는 디스크의 블록 이름입니다. 디스크를 다시 시작하려면 "오프라인"을 "실행 중"으로 바꿀 수 있습니다.
자동 설치와 배출을 결합할 수도 있습니다. 즉, 설치하려면 자동 마운트를 사용하고 제거하려면 꺼내기를 사용하세요. 정상적으로 작동하는 것 같지만 팝업은 루트 권한으로 실행해야 합니다.