SSD의 모든 파티션과 데이터를 깨끗하게 정리하고 다시 분할 할 수 있습니다 (보안 목적이 아님).
나는 살펴 보았지만 sudo dd if=/dev/zero of=/dev/sdb bs=1M
이것이 각 파티션을 0으로 채우면 내가하고 싶은 일이 확실하지 않습니다.
이 명령을 자주 실행할 계획이며 SSD 쓰기를 소진하고 싶지 않습니다. 누구 든지이 문제를 해결하는 데 조언을 줄 수 있습니까?
SSD의 모든 파티션과 데이터를 깨끗하게 정리하고 다시 분할 할 수 있습니다 (보안 목적이 아님).
나는 살펴 보았지만 sudo dd if=/dev/zero of=/dev/sdb bs=1M
이것이 각 파티션을 0으로 채우면 내가하고 싶은 일이 확실하지 않습니다.
이 명령을 자주 실행할 계획이며 SSD 쓰기를 소진하고 싶지 않습니다. 누구 든지이 문제를 해결하는 데 조언을 줄 수 있습니까?
답변:
SSD에서 :을 사용하여 전체 디스크 또는 파티션을 트리밍 할 수 있습니다 blkdiscard
. 매우 안전하지는 않지만 실제로 즉각적입니다 (디스크는 모든 셀을 사용하지 않는 것으로 표시합니다).
보안 : 전체 디스크 암호화를 사용하십시오. 암호화 된 경우 전체 디스크를 지우지 마십시오. 키가 포함 된 영역 (예 : 모든 암호화 된 파티션의 첫 1-2 MiB) 만 정리하면됩니다.
재 파티셔닝 : 모든 데이터를 지우지 않아도됩니다. 를 사용하여 파일 시스템을 삭제 wipefs
한 다음 디스크의 첫 번째 1MiB를 문질러 남아있는 부트 로더를 제거하면됩니다. 를 사용하여 파티션을 포맷 mkfs
하면 OS는 단순히 완전히 비어 있다고 가정합니다.
실제로 Linux에서는 mkfs.ext4가 포맷하기 전에 전체 파티션을 자동으로 트리밍합니다.
mkfs
어쨌든 쓰레기하지만 다양한 이상한 상황. 할 일이 - wipefs
이 필요했기 때문에 존재한다.)
man wipefs
말합니까? (힌트 : 매뉴얼 페이지의 예제 섹션에서 첫 번째 예제를보십시오)
blkdiscard
공격자가 키를 알고 있었더라도 (이전 매핑을 복구 할 수 없다고 가정하더라도) 디스크의 나머지 부분에서 퍼즐을 만들 수 있기 때문에 좋을 것입니다. "그런 다음 남은 부트 로더를 제거하기 위해 디스크의 첫 번째 1MiB를 제거하십시오"-추가 섹션은 처음 512B의 오버플로로만 사용됩니다. 처음 512B를 닦으면 나머지 1M의 피해를받지 않습니다.
Kamil Maciorowski가 언급 했듯이 전체 디스크 를 삭제하는 가장 적은 쓰기 작업으로 ATA 'secure erase'명령을 사용하는 것이 가장 좋습니다 . 이렇게하면와 같은 도구를 사용하여 셀을 반복적으로 덮어 쓰지 않고 하드웨어가 단일 전체 지우기를 수행하도록 지시합니다 shred
. 파티션을 선택적으로 지워야 하는 경우 전체 디스크에 대해서만 수행 할 수 있습니다. grawity 's answer ( blkdiscard
)를 참조하십시오.
명령의 정확한 구현은 하드웨어에 따라 다릅니다.
대부분의 SSD 는 대량의 전기 신호를 사용하여 전체 칩을 전혀 또는 전혀 방식으로 닦아냅니다. 이로 인해 (정상적인) 쓰기 마모가 발생하지만 가능한 최소 범위 (~ 단일 쓰기주기)까지 발생합니다.
자체 암호화 SSD 는 일반적으로 컨트롤러 칩 내부의 암호화 키를 삭제합니다 (실제로 순간). 자체 암호화 드라이브 는 기본적으로 기본 공장 키를 사용하여 항상 암호화합니다. 따라서 키를 닦으면 사용자 키가 설정되지 않은 경우에도 플래시 칩에서 해독 할 수없는 혼란이 발생합니다.
dd if=/dev/zero
합니다.프로세스는 https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase에 잘 설명되어 있습니다 (OS를 다시 설치할 때 자체 SSD 에서이 프로세스를 반복적으로 사용했습니다)
편집 : 보안 영향에 관심이 있다면이 Security.SE의 질문을 확인하십시오.
디스크를 빠르게 지우는 방법에 대한 해결책을 요청했습니다. / dev / sdx를 디스크로 바꾸십시오.
파티션 테이블이 지워집니다.
dd if=/dev/zero of=/dev/sdx bs=1024 count=50
디스크 전체가 지워지는데 시간이 걸립니다.
cat /dev/zero > /dev/sdx
cat
. dd
성능 향상에 사용 합니다.
dd
512 바이트 버퍼를 사용합니다. 성능을 떨어 뜨릴 것 입니다 ... Coreutils ( cp
그리고 아마도 또한 cat
)는 더 합리적인 버퍼 크기를 가지고 있습니다. dd
어쨌든 본질적으로 더 빠르다는 것은 없습니다 .
dd
. 마지막으로 cat
디스크에 이미지를 쓰려고 시도했을 때 적절한 버퍼 크기를 사용 하는 것보다 상당히 느 렸습니다 dd
.