Linux에서 재 파티셔닝하기 위해 SSD를 모든 파티션에서 정리하는 가장 빠른 방법은 무엇입니까?


21

SSD의 모든 파티션과 데이터를 깨끗하게 정리하고 다시 분할 할 수 있습니다 (보안 목적이 아님).

나는 살펴 보았지만 sudo dd if=/dev/zero of=/dev/sdb bs=1M이것이 각 파티션을 0으로 채우면 내가하고 싶은 일이 확실하지 않습니다.

이 명령을 자주 실행할 계획이며 SSD 쓰기를 소진하고 싶지 않습니다. 누구 든지이 문제를 해결하는 데 조언을 줄 수 있습니까?


1
ATA 보안 지우기를 연구하십시오 . 프로세스에 대한 경험이 없으므로 대답이 아니라 힌트입니다. 이것이 올바른 방법이라는 것을 알고 있다면 누구나 이것에 대해 자신의 답변을 자유롭게 작성하십시오.
— Kamil Maciorowski

18
보안 목적으로 또는 단순히 파티션을 다시 만들어야합니까?
— grawity

대부분 재 파티셔닝
— IgDV

14
12 게이지 펌프 작동. 그리고 당신은 누군가가 조만간 그 말을 할 것이라는 것을 알고있었습니다!
— ssimm

1
@ssimm-선호하는 것은 숯불 바베큐입니다.
— Daniel R은

답변:


41

SSD에서 :을 사용하여 전체 디스크 또는 파티션을 트리밍 할 수 있습니다 blkdiscard. 매우 안전하지는 않지만 실제로 즉각적입니다 (디스크는 모든 셀을 사용하지 않는 것으로 표시합니다).

보안 : 전체 디스크 암호화를 사용하십시오. 암호화 된 경우 전체 디스크를 지우지 마십시오. 키가 포함 된 영역 (예 : 모든 암호화 된 파티션의 첫 1-2 MiB) 만 정리하면됩니다.

재 파티셔닝 : 모든 데이터를 지우지 않아도됩니다. 를 사용하여 파일 시스템을 삭제 wipefs한 다음 디스크의 첫 번째 1MiB를 문질러 남아있는 부트 로더를 제거하면됩니다. 를 사용하여 파티션을 포맷 mkfs하면 OS는 단순히 완전히 비어 있다고 가정합니다.

실제로 Linux에서는 mkfs.ext4가 포맷하기 전에 전체 파티션을 자동으로 트리밍합니다.


6
재 파티셔닝을 위해 왜 이전 파티션을 삭제하고 새로운 파티션을 생성하지 않습니까?
— el.pescado

5
동일한 위치 (시작 위치)에 새 파티션을 만들면 동일한 이전 데이터를 찾을 수 있습니다! (이야 물론 일반적 으로 포맷하기 때문에 문제가되지 mkfs어쨌든 쓰레기하지만 다양한 이상한 상황. 할 일이 - wipefs이 필요했기 때문에 존재한다.)
— grawity

4
@ IgDV-무엇을 man wipefs말합니까? (힌트 : 매뉴얼 페이지의 예제 섹션에서 첫 번째 예제를보십시오)
— Timo

2
"키가 포함 된 영역 만 삭제하면됩니다."-SSD에서는 키도 복구 할 수 있습니다. TPM 또는 강력한 암호 보호 키가 더 나은 옵션 일 수 있습니다. blkdiscard공격자가 키를 알고 있었더라도 (이전 매핑을 복구 할 수 없다고 가정하더라도) 디스크의 나머지 부분에서 퍼즐을 만들 수 있기 때문에 좋을 것입니다. "그런 다음 남은 부트 로더를 제거하기 위해 디스크의 첫 번째 1MiB를 제거하십시오"-추가 섹션은 처음 512B의 오버플로로만 사용됩니다. 처음 512B를 닦으면 나머지 1M의 피해를받지 않습니다.
— Maciej Piechotka

1
@MaciejPiechotka : 불행하게도 일부 부트 로더 (특히 그루브)도 MBR 뒤에 공백 을 사용합니다 .
— grawity

14

Kamil Maciorowski가 언급 했듯이 전체 디스크 를 삭제하는 가장 적은 쓰기 작업으로 ATA 'secure erase'명령을 사용하는 것이 가장 좋습니다 . 이렇게하면와 같은 도구를 사용하여 셀을 반복적으로 덮어 쓰지 않고 하드웨어가 단일 전체 지우기를 수행하도록 지시합니다 shred. 파티션을 선택적으로 지워야 하는 경우 전체 디스크에 대해서만 수행 할 수 있습니다. grawity 's answer ( blkdiscard)를 참조하십시오.

명령의 정확한 구현은 하드웨어에 따라 다릅니다.

  • 대부분의 SSD 는 대량의 전기 신호를 사용하여 전체 칩을 전혀 또는 전혀 방식으로 닦아냅니다. 이로 인해 (정상적인) 쓰기 마모가 발생하지만 가능한 최소 범위 (~ 단일 쓰기주기)까지 발생합니다.

  • 자체 암호화 SSD 는 일반적으로 컨트롤러 칩 내부의 암호화 키를 삭제합니다 (실제로 순간). 자체 암호화 드라이브 는 기본적으로 기본 공장 키를 사용하여 항상 암호화합니다. 따라서 키를 닦으면 사용자 키가 설정되지 않은 경우에도 플래시 칩에서 해독 할 수없는 혼란이 발생합니다.

  • Spinning-Rust 하드 디스크 는 모든 섹터에 대해 하드웨어 기반의 제로 쓰기를 수행 dd if=/dev/zero합니다.

프로세스는 https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase에 잘 설명되어 있습니다 (OS를 다시 설치할 때 자체 SSD 에서이 프로세스를 반복적으로 사용했습니다)

편집 : 보안 영향에 관심이 있다면이 Security.SE의 질문을 확인하십시오.


대부분의 ATA 디스크에서 보안 지우기가 지원됩니까? 나는 그 지원이 드물다는 인상을 받았다.
— Ruslan

1
아직 지원하지 않는 (현대, SATA) 디스크를 찾지 못했지만 제 경험은 개인적으로 소유 한 하드 드라이브로 제한됩니다. 도 차이 것으로 보인다 후자가 더 적은 지원 인으로, "보안 삭제"와 "강화 된 보안 삭제"사이.
— Jules Kerssemakers

3
@Ruslan 나는 그것을 지원하지 않는 SATA-2 사양 디스크를 본 적이 없다. 지난 10 년 동안 만들어진 SATA 디스크는 그 정도면 충분합니다.
— Tonny

이는 자체 암호화 SSD에서 TRIM 명령이 작동하지 않음을 의미합니까? (그렇지 않으면 항상 암호화되지는 않습니다.)
— Mehrdad

1
@Mehrdad : 예. 암호화 된 SSD에서 TRIM을 사용하면 사용 가능한 블록에 대한 정보가 누출됩니다. 허용 가능한지 여부는 보안 요구에 따라 다릅니다. 토론은 askubuntu.com/questions/399211/… 를 참조하십시오 .
— sleske

4

디스크를 빠르게 지우는 방법에 대한 해결책을 요청했습니다. / dev / sdx를 디스크로 바꾸십시오.

파티션 테이블이 지워집니다.

dd if=/dev/zero of=/dev/sdx bs=1024 count=50

디스크 전체가 지워지는데 시간이 걸립니다.

cat /dev/zero > /dev/sdx

4
사용하지 마십시오 cat. dd성능 향상에 사용 합니다.
— Micheal Johnson

6
@Micheal 당신은 말하지만, 기본적으로 dd512 바이트 버퍼를 사용합니다. 성능을 떨어 뜨릴 것 입니다 ... Coreutils ( cp그리고 아마도 또한 cat)는 더 합리적인 버퍼 크기를 가지고 있습니다. dd어쨌든 본질적으로 더 빠르다는 것은 없습니다 .
— grawity

3
@grawity으로 버퍼 크기를 변경할 수 있습니다 dd. 마지막으로 cat디스크에 이미지를 쓰려고 시도했을 때 적절한 버퍼 크기를 사용 하는 것보다 상당히 느 렸습니다 dd.
— Micheal Johnson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.