"dd if=/dev/zero"를 사용하여 MTD를 지우는 것이 "flash_eraseall"과 어떻게 다릅니까?

"dd if=/dev/zero"를 사용하여 MTD를 지우는 것이 "flash_eraseall"과 어떻게 다릅니까?

flash_eraseall <mtd device>모든 MTD(장치)를 지우는 명령이 특별히 제공됩니다. 이들그리고 의 차이점은 무엇인가요 dd if=/dev/zero of=<mtd device>?

답변1

SDD와 MTD 모두 서비스 수명과 특정 쓰기 횟수가 있습니다. 초기 MTD는 1000초의 지우기/쓰기 주기로 평가되었습니다. 많은 MTD는 실제로 블록 장치는 아니지만 Linux 드라이버는 이를 에뮬레이트하고 블록 계층을 제공합니다. 또는 기본 하드웨어의 표준 블록 크기(512)가 훨씬 더 클 수도 있습니다. 연속된 512바이트 블록을 기록하지만 기본 기술이 4K 블록인 경우 기본 블록이 8번 기록됩니다. 일부 MTD에서는 각 쓰기가 전체 플래시 셀을 다시 작성합니다.

[이 mtdblock드라이버]는 전체 플래시 지우기 블록을 RAM에 캐시하고 요청 시 이를 수정한 다음 전체 블록을 지우고 수정된 내용을 다시 쓰는 방식으로 작동합니다. 이는 mtdblock이 어떠한 최적화도 시도하지 않으며 정전 시 많은 데이터가 손실된다는 것을 의미합니다. 마지막으로 mtdblock은 마모 레벨링이나 비트 뒤집기를 수행하지 않습니다.1

거의 모든 MTD 장치는 전체 지우기 작업을 지원합니다. 신뢰할 수 있고 완전한 삭제가 어느 정도 보장된다는 이점 외에도 장치에 더 쉽고 좋습니다.

일부 장치는 0으로 재설정하면 안 됩니다 dd if=/dev/zero.

  • SDD(솔리드 스테이트 드라이브)
  • MTD(메모리 기술 장치)
  • COW 및 기타 씬 프로비저닝된 가상 디스크

위의 이유로 MTD. COW(기록 중 복사) 파일 시스템/디스크를 사용하면 기본 블록 드라이버가 이전에 존재하지 않았던 블록을 할당하도록 강제하게 되며 이전/기존 데이터를 덮어쓰지 않게 됩니다. 또한 SDD는 기존 블록을 덮어쓰는 대신 이전에 기록되지 않은 블록을 작성하는 COW와 유사한 일부 마모 평준화 알고리즘을 사용합니다(따라서 데이터 보안을 위해 장치를 0으로 설정하는 것은 현명하지 않습니다). 많은 STA 및 SAS 장치는 부팅 시 BIOS가 기억하고 통신하는 마스터 키를 사용하여 블록 수준 암호화를 제공합니다. 마스터 키를 지우거나 재설정하는 것만으로 블록 장치를 효과적으로 지울 수 있습니다.

관련 정보