간단한 쉘 스크립트를 사용하여 SD 카드 손상에 대한 스트레스(쓰기) 테스트

간단한 쉘 스크립트를 사용하여 SD 카드 손상에 대한 스트레스(쓰기) 테스트

내 SD 카드가 얼마나 많은 쓰기 주기를 얻을 수 있는지 알고 싶습니다.

나는 인터넷 검색을 통해 다음과 같은 좋은 답변을 찾았습니다.이것하지만 나 같은 평범한 사람들에게는 너무 복잡하다.

64GB exfat 포맷 카드라고 가정합니다.

59GB의 대용량 랜덤 파일을 직접 쓸 수 있나요? 삭제하세요. 계산해 보세요. 그리고 카드가 실패할 때까지 전체 루프를 반복합니다(뭔가 결국 쓰기 작업을 차단한다고 가정합니다).

  1. 다음과 같이 59GB의 임의 파일을 만들 수 있을 것 같습니다.

    dd if=/dev/urandom of=/dev/sdd1/file.txt bs=61865984 count=1024
    
  2. 파일 삭제:

    rm /dev/sdd1/file.txt
    
  3. 계산 작업을 수행하거나 루프를 수행하는 방법이나 .sh 파일에 넣는 데 다른 구문/제한 사항이 있는지 잘 모르겠습니다. 이 문제를 해결하는 데 도움을 주실 수 있나요?

위의 생각이 괜찮은가요(받아들일 수 있나요). 나는 완벽해지려고 노력하는 것이 아니다.

이 작업을 수행할 수 있는 상용 소프트웨어/스크립트도 있습니까?

(이를 위해 몇 달 동안 컴퓨터를 켜 두어야 한다는 것을 알고 있지만 괜찮습니다. 아니면 재부팅 후 스크립트를 실행하면 이전 카운트에 추가될 수도 있습니다.)

감사해요. :-).

추신: 내가 이 일을 하는 이유 - OEM/무명 브랜드가 프리미엄 브랜드 카드에 비해 상당히 저렴한 대용량 microSD 카드를 제공한다는 것을 알았습니다. 사람들은 이 카드가 신뢰할 수 없다고 말합니다. 나는 단지 그들이 얼마나 나쁜지 알고 싶었습니다. 실제로 내 생각은 5년 안에 총 1TB의 데이터를 카드에 쓸 수 있을 것이라고 생각합니다. 그것은 단지 17주기입니다! 최악의 카드라도 할 수 있다고 생각합니다. :-)...........

답변1

나는 당신의 생각이 효과가 있다고 생각합니다.

드라이브의 장치 노드에 직접 데이터를 쓸 수 있습니다(예 /dev/sdd: ). 이 rm명령은 가능하거나 필요하지 않습니다. 어쨌든 많은 데이터를 삭제하지는 않고 rm파일 시스템의 메타데이터만 업데이트합니다. 한 주기에 1을 모두 쓴 다음 다음 주기에 0을 모두 쓰는 것을 고려할 수 있습니다.

영구 카운터

비결은 나중에 선택할 수 있는 지속적인 카운터를 만드는 것입니다.재시작. 이는 COUNT_FILE"$HOME/.counter" 예와 같은 파일을 통해 쉽게 수행할 수 있습니다 . 완료되기 전에 시스템이 dd재부팅되었을 수 있으므로 이 개수는 실제 개수보다 낮을 수 있습니다.

/etc/rc.local시스템 시작 시 자동으로 시작되도록 비슷한 것을 호출할 수도 있습니다 .

#!/bin/ss

COUNT_FILE="$HOME/.counter"

read COUNT < "$COUNT_FILE"

if echo "$COUNT" | grep '[^0-9]' > /dev/null
then
    echo >&2 "$0: ERROR: non-integer counter found in $COUNT_FILE."
    exit 1
fi

while true
do
    echo dd if=/dev/urandom of=/dev/sdd bs=61865984
    COUNT=$(( COUNT + 1 ))
    echo $(( COUNT )) > "$COUNT_FILE"
done

불량 블록

badblocks패턴을 디스크에 쓰고 다시 읽는 명령을 살펴볼 수도 있습니다 . 이것을 사용하면 좋은 점은 badblocks매 사이클마다 모든 바이트를 쓰고 읽고 비교한다는 것입니다. 따라서 디스크에 오류가 발생하기 시작하면 "불량 블록" 숫자가 점점 더 많아지기 시작해야 합니다.

경고하다

또한 실수로 다른 USB 드라이브를 연결한 경우 /dev/sdd이 스크립트가 실행될 때 해당 드라이브가 완전히 파괴됩니다.

답변2

답변을 받을 때쯤에는 해당 SD 카드가 손상된 것입니다. 이를 통해 동일한 제조사 및 모델의 다른 카드의 수명을 어느 정도 알 수 있습니다(또는 그렇지 않을 수도 있습니다...카드마다 다르며, 더 나쁘게는 기본 하드웨어가 동일한 모델 번호에서 작동하지 않을 수도 있습니다). 제조업체는 항상 그렇듯이 사악한 일을 할 것입니다.)

내 조언은 상관하지 않는다는 것입니다. 여분의 SD 카드를 구입하고 카드에 있는 모든 중요한 데이터를 정기적으로 백업하세요.

관련 정보