ASM1153E 컨트롤러가 있는 mSATA-USB 인클로저에 기존 mSATA SSD(모델 이름: Plextor PX-128M6M)가 설치되어 있습니다.
나는 원해요(논리적으로 SSD 컨트롤러 수준에서)모든 데이터를 삭제하십시오.
그러나 다음과 같습니다.
blkdiscard
이 명령은 실제로 요청된 데이터 영역 전체를 삭제하지 않고 처음 2GiB에서 32KiB를 뺀 데이터 영역만 삭제합니다.hdparm --trim-sector-ranges-stdin
잘 작동하는 것 같지만 SSD 컨트롤러가 문제입니다.(구체적으로 이 모델의 SSD, 다른 모델은 이렇게 동작하지 않는 것 같습니다)TRIM
처음 8개 섹터(4KiB의 데이터) 가 명령에 의해 지워지지 않도록 보호하는 것으로 보입니다 .
나의 시도와 실험은 다음과 같다.
우분투 23.04에서 했습니다.
Arch Wiki의 안내 덕분에 첫 번째
/sys/block/sdX/device/scsi_disk/*/provisioning_mode
로 설정해야 한다는 것을 알게 되었습니다 .unmap
그렇게 시작되었습니다full
. 그런 다음 시스템은 SCSIUNMAP
명령(UASP를 통해TRIM
컨트롤러에 의해 명령으로 변환됨)을 기존 SSD로 보낼 수 있다고 생각합니다.그런 다음 전체 드라이브에 대해 이 작업을 수행했습니다. (
blkdiscard -f -v /dev/sdX
는sdX
실제 장치 이름) 그런 다음 모든 바이트(디스크 용량과 일치)가 삭제(삭제)되었다고 보고했지만 기본 GPT와 백업 GPT가 모두 디스크에 있음을 발견했습니다. space 의 시작/끝이 아직 제거되지 않았습니다.2GiB 크기의 파티션을 생성하고
/dev/urandom
.blkdiscard -f -v /dev/sdX
전체 드라이브를 수행hexdump
한 결과 첫 번째 파티션의 마지막 1MiB + 32KiB가 지워지지 않은 것으로 나타났습니다(파티션은 섹터 크기가 512바이트인 LBA 2048에서 시작).blkdiscard -f -v /dev/sdX1
전체 드라이브가 아닌 새 파티션에서 재실행한 결과,hexdump
해당 파티션의 마지막 32KiB가 삭제되지 않은 것으로 표시됩니다.hdparm --trim-sector-ranges-stdin
그런 다음 표준 입력에서 제공되는 전체 드라이브의 모든 섹터 목록을 사용해 보았습니다 . 이번에는 기본 GPT가 여전히 존재하지만 나머지 데이터는 모두 0으로 지워집니다.처음 2048개 섹터를 데이터로 채웠습니다
/dev/urandom
. 그런 다음hdparm --trim-sector-ranges-stdin
처음 8개 섹터(4KiB의 데이터)를 제외한 모든 섹터가 삭제된 것으로 나타납니다.
지워지지 않는 처음 8개 섹터의 동작이 mSATA-USB 칩이 아닌 SSD 컨트롤러에 의해 시행되는지 확인하려면:
그런 다음 USB 인클로저 없이 이 오래된 Plextor SSD를 내부 mSATA 드라이브로 설치했습니다. 그 후에도 처음 8개 섹터는 여전히 남아 있습니다
hdparm --trim-sector-ranges-stdin
.또 다른 최신 Kingston 브랜드 mSATA SSD가 있습니다. 로 테스트했지만
hdparm --trim-sector-ranges-stdin
USB 캡슐화되었거나 내부 드라이브로 직접 마운트되었는지 예외없이 모든 섹터가 0이었습니다.