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.