하드 드라이브를 활성 상태로 유지하는 쉬운 방법은 무엇입니까?

하드 드라이브를 활성 상태로 유지하는 쉬운 방법은 무엇입니까?

~처럼hdparm 작동하지 않습니다내 USB 외장 드라이브(너무 일찍 회전함)의 경우 간단한 스크립트를 사용하여 수동으로 대기 제어를 시뮬레이션하고 싶습니다. 아이디어는 다음과 같습니다.

  • 디스크 I/O 모니터링
  • 일정 시간 동안 스크립트 자체 이외의 다른 프로세스에서 I/O가 없을 때 디스크를 활성 상태로 유지하기 위해 가상 I/O를 생성합니다.
    • 잠시 후 드라이브 속도를 늦추십시오.
    • 가상 I/O는 기껏해야 실제로 디스크에 아무것도 읽거나 쓰지 않아야 하지만(마모 생성 메커니즘을 이동) 일부 상태 등을 읽을 수도 있습니다.

저는 Bash 스크립팅에 대한 경험이 많지 않고 어떤 명령을 사용할 수 있는지 모릅니다. 어떤 제안이 있으십니까? 시스템은 아치리눅스입니다.

답변1

(나는 이 질문이 2년이 넘었다는 것을 알고 있지만 문제는 여전히 존재합니다)

smartctl 설정을 따르지 않는 드라이브에 다음 코드를 사용하고 있습니다.

#!/bin/bash
while :
do
        date +%s > /second_drive/keepalive_linux.txt
        sync
        sleep 2
done

시작 시 실행되도록 하려면 다음을 사용했습니다.

EDITOR=nano crontab -e

그리고 다음을 추가했습니다.

@reboot bash /path/to/script.sh

(참고로 드라이브는 NTFS로 포맷되어 있습니다.)

이것은 같은 행동입니다Windows용 KeepAliveHD가지다.

설명된 OP와 같이 더 나은 방법으로 수행할 수 있지만 지금은 없는 것보다 낫습니다.

답변2

Google은 다음과 같은 영예를 누릴 자격이 있습니다.

http://www.unix.com/programming/161666-tool-simulate-non-series-disk-io-simulate-db-file-series-read-c-posix.html

#!/bin/bash
for ((N=0; N<10; N++))
do
        dd if=gigabytefile of=/dev/null skip=$((RANDOM % 1024)) bs=$((1024*1024)) count=1
done

관련 정보