Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dwipe — Linux 기기와 파티션을 안전하고 효율적으로 삭제하는 도구 | Kitploit
도구/GitHubGitHub/joedefen/dwipe
General Purpose UtilitiesEncryption/Decryption ToolsForensicsData RecoveryHardware SecurityUtilities & Frameworks
GitHubjoedefen/dwipe

dwipe

Linux 기기와 파티션을 안전하고 효율적으로 삭제하는 도구

저장소 보기
164106개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

dwipe

dwipe는 Linux에서 디스크와 파티션을 삭제하여 데이터를 안전하게 보호하기 위한 도구입니다. dwipe는 선택 시 장치에 대한 충분한 정보를 제공하여 실수를 줄이는 것을 목표로 합니다.

dwipe 데모

빠른 비교

기능dwipenwipeshreddd
펌웨어 삭제 (SATA/NVMe 보안 삭제)✓✗✗✗
소프트웨어 삭제 (제로, 의사 난수)✓✓✓✗
대화형 TUI✓✓✗✗
동시 다중 삭제✓✗✗✗
지속적인 삭제 상태✓✗✗✗
핫스왑 감지 / 해제✓✗✗✗
장치/파티션 차단✓✗✗✗
중단된 소프트웨어 삭제 재개✓✗✗✗
삭제 작업 로깅✓✗✗✗
마운트 감지/방지✓✓✗✗
빠른 통계 샘플링 검증✓✗✗✗
인증된 폐기 (DoD/Gutmann 표준, 전체 검증, 인증서)✗✓✗✗
  • 펌웨어 삭제 (SATA/NVMe)는 가장 완전하고 빠름: 하드웨어 가속 삭제는 컨트롤러 수준에서 작동(초~분)하며, 모든 드라이브 매핑을 지우지만 진행 보고나 눈에 보이는 검증 없이 전체 장치 삭제가 필요합니다.
  • 1회 제로 소프트웨어 삭제로 충분함: 2001년 이후의 현대 드라이브는 1회 제로 패스로 안정적으로 삭제됩니다(NIST SP 800-88). 추가 확신을 위해 다중 패스 모드를 사용할 수 있지만, 추가 보안 보장은 제공되지 않습니다.
  • 검증은 지능적인 통계 샘플링 사용: 디스크 전체에 걸쳐 100개 섹션을 통해 1% 검증 샘플도 포괄적인 범위를 제공하지만 전체 순차 읽기는 필요하지 않습니다.

주요 기능

  • 핫스왑 감지 기능이 있는 대화형 TUI - 저장소 변경 시 실시간 장치 목록 업데이트, 새로 추가된 장치는 **^**로 표시
  • 하드웨어 가속 펌웨어 삭제 - 펌웨어 수준 보안 삭제 작업(NVMe Sanitize/Format, SATA ATA Security Erase)을 완벽 지원하며, 수 시간 대신 수 초~분 안에 완료
  • 동시 다중 삭제 - 여러 장치에서 동시에 삭제 시작, 개별 진행 상황 및 완료 상태 추적
  • 지속적인 상태 추적 - 삭제 상태가 재부팅 후에도 유지됨; 부분 삭제 및 완료된 상태가 장치에 지속됨(전원 순환 간 삭제 재개 가능)
  • 스마트 장치 식별 - UUID/PARTUUID/일련번호를 사용하여 재연결 시 안정적인 장치 추적
  • 안전 보호 - 마운트된 장치 삭제 방지, 중복 삭제 감지, 장치 차단 지원, 인라인 확인 프롬프트
  • 통계 샘플링을 이용한 지능형 검증 - 낮은 비율(1% 검증이 모든 100개 디스크 섹션에서 샘플링)에서도 전체 디스크를 다루는 빠른 검증
  • 디스크에 직접 I/O - 페이지 캐시 오염을 피하고 자동 속도 저하/정지 감지와 정상 중단 기능이 있는 빠르고 효율적인 삭제
  • 다중 색상 테마 - 가독성을 위해 설계된 터미널 색상 테마, 상황에 맞는 시각적 피드백(마운트된 장치는 흐릿하게, 활성 삭제는 밝게)
  • 로깅이 포함된 삭제 기록 - 상세한 삭제 기록 뷰어로 타임스탬프, 파일시스템, 레이블, 완료율 및 영구 기록 표시

요구 사항

  • Linux 운영 체제 (/dev/, /sys/, /proc/ 인터페이스 사용)
  • Python 3.10 이상
  • root/sudo 권한 (도구 실행 시 자동 요청)
  • lsblk 유틸리티 (대부분의 Linux 배포판에 사전 설치됨)
  • nvme-cli - NVMe 작업용 (Sanitize/Format 감지)
  • hdparm - SATA 작업용 (ATA Security Erase 감지)

선택 사항 (기록 화면에서 클립보드 복사용):

  • xclip 또는 xsel - X11 클립보드용 (apt install xclip 또는 xsel)
  • wl-clipboard - Wayland 클립보드용 (apt install wl-clipboard)
  • SSH 세션은 OSC 52 터미널 이스케이프 사용 (추가 패키지 불필요)

설치

  • 권장 (pipx 사용): pipx install dwipe
  • 설치 확인: dwipe --help
  • 제거: pipx uninstall dwipe

빠른 시작 (꼭 읽어 주세요)

  1. dwipe 설치
  2. 터미널에서 dwipe 실행 (sudo는 자동으로 요청됨)
  3. 첫 번째 줄의 상황에 맞는 도움말 확인
  4. 화살표 키 또는 vi 스타일 키(j/k)로 탐색
  5. 전체 도움말 화면을 보려면 ? 누름
  6. 드라이브를 삭제하려면 w를 누를 때, 약어를 입력해야 함(예: Rand, Zero, Crypto); 삭제 방법은 권장 순서(낮은 순→높은 순)로 표시되며, 마지막 항목에 *가 표시됩니다. 일반적으로 마지막 선택을 선택하세요. 하지만 ...
  7. 드라이브와 OS는 종종 드라이브 유형에 대해 거짓말을 합니다. 둘 다 속일 방법:
    • 회전 HDD의 경우, 항상 Rand 또는 Zero를 사용하세요 (중단 가능, 진행 상황 표시).
    • SSD의 경우, 항상 가능하면 펌웨어 삭제를 사용하세요 (더 빠르며, 숨겨진 블록까지 도달).
  8. 드라이브가 'Frozen'인 경우, 시스템을 일시 중단했다가 다시 시작하세요. dwipe가 재개를 자동 감지하고 다시 스캔합니다. 또는 r을 눌러 수동으로 다시 스캔합니다. 드라이브가 언프리즈 상태로 돌아와야 합니다.

기능

dwipe는 안전 기능을 갖춘 포괄적인 디스크 삭제 기능을 제공합니다:

  • 스마트 장치 표시 - 레이블, 크기, 유형, 공급업체/모델 정보와 함께 디스크 및 파티션을 표시하여 장치를 올바르게 식별하는 데 도움
  • 안전 보호 - 마운트된 장치 삭제 방지, 중복 삭제 감지, 수동 디스크 차단 지원
  • 핫스왑 감지 - 저장소 변경 시 장치 목록 업데이트; 새로 추가된 장치는 **^**로 표시하여 쉽게 확인 가능
  • 동시 다중 삭제 - 여러 장치에서 동시에 삭제 시작, 개별 진행 상황 및 완료 상태 추적
  • 유연한 삭제 모드 - Rand, Zero, Rand+V(자동 검증 포함), Zero+V(자동 검증 포함) 중 선택
  • 장치 필터링 - 정규식으로 이름/패턴별 장치 필터링(화면에 너무 많을 경우)
  • 중단 기능 - 개별 삭제 또는 진행 중인 모든 삭제 중단
  • 디스크 차단 - 실수로 인한 삭제 방지를 위해 수동으로 디스크 차단 (차단 시 모든 파티션 숨김)

참고: dwipe는 파일 시스템 레이블을 표시하며, 없는 경우 파티션 레이블을 표시합니다. 선택을 쉽게 하기 위해 파티션과 파일 시스템에 레이블을 잘 지정하는 것이 좋습니다.

사용법

간단히 인수 없이 명령줄에서 dwipe 실행: dwipe

명령줄 옵션

참고: 모든 환경 설정 옵션은 마지막 저장 값을 기본값으로 사용합니다. 이러한 기본값은 --help에 표시되며 키보드 단축키로 대화식으로 변경할 수 있습니다. 명령줄 인수는 저장된 환경 설정을 덮어씁니다.

삭제 구성

  • --mode {-V,+V} - 검증 모드 (기본값: 마지막 환경 설정)
    • -V - 자동 검증 없이 삭제
    • +V - 삭제 완료 후 장치 검증
  • --passes {1,2,4} - 소프트웨어 삭제 패스 수 (기본값: 마지막 환경 설정)
    • 단일 패스(1)는 대부분의 사용 사례에 표준
    • 다중 패스(2 또는 4)는 제로와 랜덤 패턴을 번갈아 사용
  • --verify-pct {1,3,10,30,100} - 검증 비율 (기본값: 마지막 환경 설정)
    • 삭제 후 검증할 디스크 비율 (1% = 빠른 점검, 100% = 전체 검증)

디스플레이 및 성능

  • --dense {True,False} - 간결한 보기 모드 (기본값: 마지막 환경 설정)
    • True - 간격 압축 (디스크 사이 빈 줄 줄임)
    • False - 간격 보기 (가독성을 위해 디스크 사이 빈 줄)
  • --port-serial {Auto,On,Off} - 디스크 포트/일련번호 표시 (기본값: 마지막 환경 설정)
    • Auto - 전체 디스크에 대해서만 포트/일련번호 표시 (권장)
    • On - 항상 포트와 일련번호 표시
    • Off - 포트와 일련번호 표시 안 함

드라이브 처리 조정

  • --slowdown-stop {0,4,16,64,256} - 디스크 속도 저하 시 중지 (기본값: 마지막 환경 설정, 밀리초)
    • 0 = 비활성화
    • 다른 값 = 성능 저하 확인 간격(밀리초)
  • --stall-timeout {0,60,120,300,600} - 정체 시간 초과(초) (기본값: 마지막 환경 설정)
    • 0 = 비활성화 (타임아웃 없음)
    • 다른 값 = 이 시간 동안 데이터 전송 진행이 없으면 삭제 중지

고급 옵션

  • --firmware-wipes 또는 -F - 펌웨어 삭제 활성화
    • 하드웨어 기반 보안 삭제 작업 활성화 (NVMe Sanitize/Format, SATA ATA Security Erase)
    • 이 플래그가 없으면 소프트웨어 삭제(Zero/Rand)만 사용 가능
  • --dump-lsblk - 파싱된 장치 정보를 출력하고 종료 (디버깅용)
  • --help - 사용 가능한 모든 옵션과 함께 도움말 메시지 표시

색상 범례

dwipe는 색상 코딩을 사용하여 장치 및 작업 상태에 대한 즉각적인 시각적 피드백을 제공합니다:

  • 흐릿함 (회색) - 마운트되거나 차단된 장치 (삭제 불가)
  • 기본 (흰색) - 삭제 준비 완료, 유휴 상태, 또는 이전에 삭제됨 (이 세션 전)
  • 밝은 청록색/파란색 + 굵게 - 활성 삭제 또는 검증 진행 중 (0-100% 쓰기, v0-v100% 검증)
  • 굵은 노란색 - 중단되거나 부분적으로 완료된 삭제
  • 굵은 녹색 - ✅ 이 세션에서 성공적으로 완료된 삭제 (교체 준비 완료!)
  • 더 어두운 녹색 - ✅ 이전 세션에서 성공적으로 완료된 삭제
  • 굵은 주황색 - 새로 삽입된 (핫스왑) 장치
  • 굵은 빨간색 - 파괴적 작업 프롬프트 (삭제 확인)

색상 테마

dwipe는 가시성과 미적 감각을 향상시키기 위해 여러 색상 테마를 지원합니다.

사용 가능한 테마:

  • default - 터미널 기본 (기본 ANSI 색상)
  • dark-mono - 어두운 모노 (거의 검은색 배경에 밝은 색상)
  • light-mono - 밝은 모노 (거의 흰색 배경에 밝은 색상)
  • solarized-dark - Solarized 어두운 팔레트
  • solarized-light - Solarized 밝은 팔레트 (밝은 터미널 배경용)
  • gruvbox - Gruvbox 어두운 팔레트
  • nord - Nord 팔레트

테마 변경:

  • 메인 화면에서 t를 누르면 테마 미리보기 화면 열림
  • 테마 화면은 각 색상 용도(DANGER, SUCCESS, WARNING 등)에 대한 색상 예제를 보여줌
  • 테마 화면에서 t를 누르면 사용 가능한 테마를 순환하며 실시간 미리보기
  • ESC 또는 ENTER를 눌러 메인 화면으로 돌아가기
  • 선택한 테마는 저장되어 세션 간 유지됨

테마 기능:

  • 중단된 삭제(상태 s)에 대한 노란색/경고 색상 - 선택되지 않았을 때도 매우 잘 보임
  • 삭제 확인 프롬프트에 대한 빨간색/위험 색상
  • 터미널 가독성을 위해 조정된 조화로운 색상 팔레트

장치 상태 값

STATE 열은 각 장치의 현재 상태를 보여줍니다:

사용 가능한 작업

상단 줄에 사용 가능한 작업이 표시됩니다. 일부는 상황에 따라 다릅니다(특정 장치에서만 사용 가능):

기록 화면

h를 눌러 삭제 기록 로그를 봅니다. 기록 화면에는 타임스탬프, 장치 정보 및 결과가 포함된 모든 삭제 및 검증 작업이 표시됩니다.

기록 화면 작업:

  • e - 항목 확장/축소하여 전체 JSON 세부 정보 표시
  • c - 현재 항목을 클립보드로 복사 (아래 참조)
  • / - 항목 검색/필터링 (깊은 JSON 검색을 위해 / 접두사 사용)
  • a - 시간 형식 순환 (ago+time, ago, time)
  • ESC - 메인 화면으로 돌아가기

클립보드 복사 방법 (자동 감지):

참고: OSC 52가 터미널에서 작동하지 않으면 텍스트가 여전히 화면에 나타나 수동 선택 가능합니다. tmux의 경우 .tmux.conf에서 set -g set-clipboard on으로 클립보드를 활성화하세요.

삭제 유형

dwipe는 펌웨어 삭제(하드웨어 가속) 및 소프트웨어 삭제를 지원합니다. 펌웨어 삭제는 --firmware-wipes 또는 -F 플래그가 필요합니다. 아래 표는 가장 바람직한 순서(순위 1)부터 덜 바람직한 순서로 삭제 방법을 나열합니다.

NVMe 드라이브

SATA SSD (암호화/살균 기능 포함)

SATA HDD (회전 드라이브)

참고: HDD에는 웨어 레벨링이나 숨겨진 블록이 없으므로 소프트웨어 삭제가 펌웨어 삭제만큼 철저하지만 더 나은 제어(진행, 일시 중지/재개, 중단 가능)를 제공합니다.

파티션 및 USB/썸 드라이브

순위약어공식 명칭비고
1RandSoftware Random Write선호됨; 예측 불가능한 패턴; 통계 검증
2ZeroSoftware Zero Write더 간단함; 빠른 검증 (첫 번째 제로가 아닌 바이트에서 실패)

참고:

  • 펌웨어 삭제는 각 드라이브가 지원하는 방법만 표시합니다(FwCAPS 열 참조).
  • 펌웨어 삭제에는 자동 스팟체크 검증이 포함됩니다.
  • +V 접미사는 소프트웨어 삭제 후 자동 검증을 활성화합니다. +V가 없으면 v를 눌러 수동으로 검증하세요.
  • 다중 패스 소프트웨어 삭제(2 또는 4)는 제로/랜덤 패턴을 번갈아 사용하며 선택한 모드로 끝납니다.
  • USB 드라이브와 파티션에는 펌웨어 삭제가 없습니다. 소프트웨어 삭제만 가능합니다.

중단된 SOFTWARE 삭제 재개

중단된 삭제(상태 s)는 장치에서 w를 눌러 재개할 수 있습니다. 동일한 유형의 삭제를 선택하지 않으면 0% 완료 상태에서 다시 시작됩니다.

재개 작동 방식:

  • 삭제가 시작된 원래 삭제 모드(Rand 또는 Zero)를 유지
  • 현재 패스 설정을 사용하여 얼마나 더 쓸지 결정
  • 중단된 지점(버퍼 경계로 반올림됨)의 정확한 바이트 오프셋에서 계속 진행. "마커"는 약 30초마다 기록되므로 정상 종료되지 않은 삭제의 경우 위치는 마지막으로 삭제된 디스크 블록에서 최대 30초(또는 조금 더) 떨어져 있을 수 있습니다.

재개 예:

이점:

  • 재개 전에 패스 설정을 변경하여 더 빨리 완료(줄이기)하거나 패스를 더 추가(늘리기) 가능
  • 처음부터 다시 시작할 필요 없음
  • 진행 마커가 30초마다 업데이트되므로 충돌이나 전원 손실 후에도 재개 가능
  • 손상된 최종 패턴을 방지하기 위한 자동 유효성 검사

소프트웨어 삭제 검증 전략

소프트웨어 삭제는 통계 분석 및 빠른 실패 최적화를 사용한 지능형 검증을 사용합니다. 검증은 구성 가능하며 선택 사항입니다.

스마트 샘플링:

  • 디스크를 100개의 동일한 섹션으로 나눔
  • 각 섹션에서 구성 가능한 백분율(1%, 3%, 10%, 30%, 100%)을 무작위로 샘플링
  • 1% 검증으로도 전체 디스크 범위 보장
  • 검증 비율은 --verify-pct 명령줄 옵션으로 설정 (환경 설정으로 저장)

패턴 감지:

  • 제로 검증: 첫 번째 제로가 아닌 바이트에서 즉시 실패 (빠름!)
  • 랜덤 검증: 바이트 분포의 통계 분석
    • 바이트 분포가 균일한지 테스트(모든 바이트 값 0-255가 비교적 동등하게 나타남)
    • 비랜덤 패턴이 감지되면 주기적으로 빠른 실패
    • 구조화된 데이터와 구별하기 위해 무작위성 증거 확인

검증 모드:

  1. 자동 검증 (삭제 후): +V 접미사가 있는 모드(Rand+V 또는 Zero+V) 사용 및 검증 % > 0 설정
  2. 수동 검증 (v 누름): 이전에 삭제된 장치 검증 또는 표시되지 않은 디스크에서 패턴 감지 (검증 % > 0 필요)
  3. 표시되지 않은 디스크 감지: 파일시스템이 없는 디스크를 검증하여 모두 0인지 무작위인지 감지 가능
    • 통과하면 디스크가 삭제된 것처럼 마커를 씀
    • 사전 삭제된 드라이브 감지 또는 제조업체 삭제 확인에 유용검증 상태:
  • ✓ (초록색 체크) - 검증 통과
  • ✗ (빨간색 X) - 검증 실패
  • 기호 없음 - 미검증
  • 검증 중: vN% 진행 상황 표시 (v0% ~ v100%)

통계적 샘플링이 순차적 방법보다 나은 이유:

  • 100개 구간의 통계적 샘플링은 동일한 비율의 순차 읽기보다 더 나은 범위를 제공합니다.
  • 문제를 더 빨리 감지합니다 (초기 구간에서 불량 섹터를 만날 수 있음)
  • 통계적 분석은 실제로 무작위성을 검증합니다 (순차적 방법은 불가)
  • 100% 순차 검증보다 훨씬 빠릅니다.

펌웨어 초기화 검증 전략

펌웨어 초기화(SATA/NVMe 보안 삭제)는 무조건적 스팟체크 검증을 사용하며, 모든 펌웨어 초기화에 자동으로 수행됩니다. 이는 하드웨어 삭제 명령이 실제로 실행되었음을 검증합니다.

스팟체크 접근 방식:

  • 초기화 전: 세 가지 전략적 위치(드라이브의 앞, 중간, 끝)에 테스트 데이터 블록을 기록합니다.
  • 컨트롤러 수준에서 펌웨어 삭제 명령을 실행합니다.
  • 초기화 후: 세 테스트 위치를 읽고 원본 데이터가 더 이상 포함되어 있지 않은지 확인합니다.
  • 어떤 테스트 블록에 유사한 데이터가 여전히 포함되어 있으면 삭제가 실패한 것으로 보고됩니다.

스팟체크가 효과적인 이유:

  • 드라이브의 내부 삭제가 실제로 처리되었음을 증명합니다(단순한 명령 수락이 아님).
  • 세 위치 전략(드라이브의 0%, 50%, 100%)으로 전체 장치에 걸쳐 범위를 보장합니다.
  • 성공을 주장하지만 아무것도 수행하지 않는 펌웨어 버그나 하드웨어 오류를 발견합니다.
  • 순차 검증보다 훨씬 빠릅니다(드라이브 전체의 백분율 대신 3개 블록만 읽음).
  • 필수 및 무조건: 사용자 구성이나 추가 검증 단계가 필요하지 않습니다.

중요 참고: 펌웨어 초기화는 소프트웨어 초기화처럼 백분율 기반 검증을 표시하지 않습니다. 스팟체크는 초기화 작업의 일부로 조용히 이루어지며, 성공/실패는 영구 초기화 상태 마커에 기록됩니다.

진행 정보

소프트웨어로 장치를 초기화할 때 dwipe는 다음을 표시합니다:

  • 경과 시간 - 초기화 시작 이후 시간 (예: 1분 18초)
  • 남은 시간 - 예상 완료 시간 (예: -3분 6초)
  • 쓰기 속도 - 현재 처리량 (예: "45.2MB/s")
  • MaxSlowDown - 최대/최소 쓰기 속도 비율 (예: ÷2). 임계값 초과 시 쓰기 작업이 중지됩니다.
  • MaxWriteDelay - 감지된 최대 쓰기 지연 (예: 𝚫122ms). 임계값 초과 시 쓰기 작업이 중지됩니다.

영구 상태

W(초기화됨) 및 s(부분 초기화) 상태는 재부팅 후에도 유지됩니다. 이는 장치의 처음 16KB에 메타데이터를 기록하여 달성됩니다:

  • 처음 15KB: 0
  • 다음 1KB: JSON 메타데이터 (타임스탬프, 기록된 바이트, 전체 크기, 모드, 검증 상태)

영구 상태가 있는 장치가 표시될 때 추가 정보가 표시됩니다:

  • 초기화된 시기와 완료 비율
  • 검증 상태: ✓ (통과), ✗ (실패), 기호 없음 (미검증)

도움말 화면

**?**를 입력하면 사용 가능한 키와 명령줄 옵션 및 현재 설정을 볼 수 있습니다.

탐색

다음을 사용하여 장치 목록을 탐색할 수 있습니다:

  • 화살표 키 - 위/아래로 목록 이동
  • Vi 스타일 키 - j (아래), k (위), g (맨 위), G (맨 아래)
  • Page Up/Down - 긴 목록에서 빠른 탐색

장치 필터링

/ 키는 vim 스타일 동작의 증분 검색 필터링을 활성화합니다:

작동 방식:

  • **/**를 눌러 필터링 시작
  • 정규식 패턴 입력 - 장치 목록이 입력하는 대로 업데이트됩니다 (실시간 필터링)
  • 커서 위치는 헤더에서 **|**로 표시됩니다
  • 화살표 키, Home/End, Backspace로 편집 가능
  • ENTER로 필터 적용
  • ESC로 취소하고 이전 필터 복원

필터 예시:

필터는 정규식 패턴을 지원합니다. 다음은 유용한 예시입니다:``` /sda # Show only sda and its partitions /sd[ab] # Show sda, sdb and their partitions /nvme # Show all NVMe devices /nvme0n1p[12] # Show only partitions 1 and 2 of nvme0n1 /usb # Show devices with "usb" in their labels

root@kitploit:~
주 화면에서 **ESC**를 누르면 필터가 해제되고 모든 장치가 다시 표시됩니다.

**참고:** 잘못된 정규식 패턴은 무시됩니다. 입력하는 동안 필터는 마지막 유효 패턴을 유지합니다.

## 보안 고려 사항

**소프트웨어 초기화의 중요한 한계점:**

- `dwipe`는 번갈아 가며 패턴을 사용하는 다중 패스 초기화를 지원하지만, 특정 DoD 5220.22-M 또는 Gutmann 인증 패턴 시퀀스를 구현하지는 않습니다.
- (구식) 인증된 삭제가 필요하지 않은 **개인 및 업무 데이터**에는 충분히 적합합니다.
- 인증된 패턴별 초기화와 규정 준수 인증서가 필요한 기밀, 일급 비밀 또는 매우 민감한 데이터에는 **적합하지 않습니다**.
- **SSD 고려 사항**:
  - 최신 SSD는 웨어 레벨링을 사용하며, 매핑되지 않은 블록에 데이터가 남을 수 있습니다.
  - TRIM/DISCARD로 인해 데이터가 완전히 지워지지 않을 수 있습니다.
  - SSD의 경우 최대 보안을 위해 제조업체의 안전한 지우기 유틸리티를 사용하는 것이 좋습니다.
  - SSD에서는 임의 모드가 0으로 채우는 것보다 추가적인 보안을 제공하지 않을 수 있습니다.

**모범 사례:**
- 초기화하기 전에 장치 레이블과 크기를 주의 깊게 확인하십시오.
- **블록** 기능을 사용하여 중요한 디스크를 보호하십시오.
- 민감한 데이터의 경우 주요 보안 조치로 암호화를 고려하십시오.

---

---

## 문제 해결

### dwipe가 시작되지 않음
- **오류: "$PATH에서 lsblk를 찾을 수 없음"** - `util-linux` 패키지를 설치하십시오.
- **권한 거부** - `dwipe`는 자동으로 sudo를 요청합니다. sudo를 사용할 수 있는지 확인하십시오.

### 터미널 표시 문제
- **충돌 후 표시가 깨짐** - `reset` 또는 `stty sane` 명령을 실행하십시오.
- **색상이 작동하지 않음** - 터미널이 색상을 지원하는지 확인하십시오(대부분의 최신 터미널은 지원함).

### 초기화 문제
- **장치를 초기화할 수 없음** - STATE 열을 확인하십시오:
  - **Mnt** - 먼저 파티션을 마운트 해제하십시오: `sudo umount /dev/sdXN`
  - **Blk** - **b**를 눌러 블록을 해제하십시오.
  - **Busy** - 디스크의 다른 파티션이 초기화 중입니다.
- **초기화가 매우 느림** - 대용량 드라이브에서는 정상입니다. 진행 상황을 확인하려면 쓰기 속도를 확인하십시오.
- **초기화가 멈춘 것처럼 보임** - 대부분 불량 디스크 때문입니다. Direct I/O는 정상 디스크에서 진행 상황을 거의 일정하게 유지합니다.

---
### 펌웨어 초기화 고려 사항

펌웨어 초기화(SATA/NVMe 안전 지우기 작업)는 소프트웨어 초기화와 다른 특성을 가집니다.

**동결된 드라이브:**
- SATA 드라이브는 일반적으로 보안 조치로 POST 중 BIOS/UEFI에 의해 동결됩니다.
- 이는 드라이브 수준의 보안 기능이며 `dwipe`의 한계가 아닙니다.
- **해결 방법**: 시스템을 잠시 일시 중단하고 재개하십시오. `dwipe`가 재개를 자동 감지하고 다시 스캔합니다(또는 **r**을 수동으로 누르십시오). 일시 중단/재개는 SATA 링크를 전원 차단/복구하여 동결을 해제합니다.
- 일시 중단/재개 후에도 드라이브가 동결 상태로 남아 있으면 완전히 전원을 끄고(드라이브 커패시터를 방전시키기 위해 10분 이상) 부팅한 후 다시 스캔하십시오.

**장치 특성 및 호환성:**
- 저장 장치는 안전 지우기 작업에 영향을 미치는 다양한 펌웨어 구현 및 하드웨어 특성을 가지고 있습니다.
- 일부 드라이브는 특정 삭제 작업을 완전히 지원하지 않거나, 타이밍 문제가 있거나, 예상치 못한 동작을 보일 수 있습니다.
- `dwipe`는 모든 장치가 성공적으로 초기화됨을 보장할 수 없습니다. 일부 하드웨어는 단순히 지우기 명령에 협조하지 않을 수 있습니다.
- 초기화 후 항상 드라이브를 확인하십시오(**v** 키 사용)하여 지우기가 실제로 완료되었는지 확인하십시오.
- 까다로운 하드웨어에서 중요한 데이터를 파괴해야 하는 경우 대비책으로 제조업체별 안전 지우기 도구 사용을 고려하십시오.

---
### 불량 또는 고장 디스크 처리

dwipe에는 문제가 있는 저장 장치에 대한 내장 보호 기능이 포함되어 있습니다.

**자동 오류 처리.** 초기화 중 디스크 오류 발생 시:
*   연속 쓰기 오류: 3번의 연속 쓰기 실패 후 초기화 중단
*   총 오류 임계값: 총 100개의 쓰기 오류 후 초기화 중단
*   자동 재시도: 쓰기 실패 시 장치가 자동으로 닫히고 다시 열립니다(일시적 오류 복구).
*   파일 디스크립터 복구: 잘못된 FD 상태가 감지되고 핸들이 새로 고쳐집니다.

**정체 및 느려짐 감지.** dwipe는 쓰기 성능을 모니터링하고 문제가 있는 작업을 중단할 수 있습니다:
*   정체 감지: 5분 동안 진행이 없으면 중단(구성 가능).
*   느려짐 감지: 처음 5초 동안 기준 속도를 측정하고, 속도가 임계값(예: 기준의 1/4) 아래로 떨어지면 중단.
*   진행 추적: 지속적인 모니터링을 통해 쓰기가 실제로 장치에 도달하는지 확인합니다.

**초기화가 멈춘 경우...** 초기화가 멈추거나 응답하지 않는 것처럼 보이면:
*   첫 번째 시도: **s**를 눌러 선택한 초기화를 정상 중지합니다.
*   인내심을 가지고 기다리십시오: 일부 디스크 작업은 커널 수준에서 시간 초과가 발생하는 데 몇 분이 걸릴 수 있습니다.
*   여전히 멈춘 경우: **S**(Shift+s)를 눌러 모든 초기화를 중지합니다.
*   최후의 수단: 인터페이스가 완전히 멈춘 경우:
    *   Ctrl-Z를 눌러 `dwipe`를 일시 중단합니다.
    *   터미널에서 다음을 실행합니다: `sudo pkill -f "python.*dwipe"` (dwipe 프로세스만 대상).
    *   디스플레이가 손상된 경우 `reset`을 실행하여 터미널을 복원합니다.

**문제가 있는 미디어로 인한 문제 방지.** 불량 디스크나 의심스러운 하드웨어가 알려진 경우:
*   확인부터 시작: 먼저 **v**를 눌러 읽기 가능성을 테스트합니다.
*   더 낮은 속도 사용: 더티 페이지 스로틀링(**d** 키)을 활성화하여 I/O 부하를 줄입니다.
*   시스템 로그 모니터링: 다른 터미널에서 `dmesg -w`를 확인하여 디스크 오류를 확인합니다.
*   하드웨어 문제 고려: USB 인클로저, 케이블 및 컨트롤러가 종종 문제를 일으킵니다.

**일반적인 디스크 오류 패턴**
*   USB 연결 끊김: dwipe가 감지하고 복구를 시도합니다.
*   불량 섹터: 오류가 계산됩니다. 너무 많으면 작업이 중단됩니다.
*   컨트롤러 시간 초과: 커널이 멈출 수 있습니다. 정체 감지가 작동해야 합니다.
*   디스크 가득 참: 장치 끝을 넘어 쓰는 오류는 정상적으로 처리됩니다.

**중단 후 복구.** 디스크 오류로 인해 초기화가 중단된 경우:
*   장치 상태가 **s**(중단/부분)로 표시됩니다.
*   재개(**w**)를 시도할 수 있습니다. 오류가 일시적이었다면 성공할 수 있습니다.
*   또는 확인(**v**)하여 실제로 무엇이 기록되었는지 확인합니다.
*   오류가 지속되면 디스크 교체를 고려하십시오.

참고: 일부 디스크는 근본적으로 손상되어 안정적으로 초기화할 수 없습니다. dwipe는 자체와 시스템을 보호하지만 하드웨어 오류를 고칠 수는 없습니다.

---
#### USB를 통한 SATA 초기화 권장 사항
* 요구 사항 1: SAT(SCSI-ATA Translation) 지원

  * USB 브리지는 ATA 명령을 "전달"할 수 있어야 합니다.
  * 테스트: 앱이 드라이브 세부 정보에서 "보안" 섹션을 볼 수 있으면 브리지가 SAT를 지원하는 것입니다.

* 요구 사항 2: 안정적인 전원
  * 펌웨어 초기화(특히 3.5" HDD의 경우)는 상당한 피크 전력을 소비합니다.
  * 위험: USB 전원 "버스 전용" 케이블을 사용하면 초기화 중 전압이 떨어져 브리지가 재설정되고 드라이브가 잠긴 상태로 "벽돌"이 될 수 있습니다.
  * 권장 사항: 3.5" 드라이브에는 항상 외부 전원이 공급되는 USB 도크를 사용하십시오.

* 요구 사항 3: 명령 시간 초과 무결성
  * 브리지에 공격적인 "워치독 타이머"가 없어야 합니다.
  * 위험: 일부 브리지는 60초 동안 "데이터"가 보이지 않으면 연결을 끊습니다. 펌웨어 초기화 중에는 드라이브가 내부적으로 작업 중이므로 데이터를 보내지 않습니다.
  * 권장 사항: ASMedia(1153E) 또는 JMicron(JMS578)과 같은 고품질 칩셋을 사용하십시오.

##### 잠긴 장치 잠금 해제```
sudo hdparm --user-master u --security-unlock NULL /dev/sdX
sudo hdparm --user-master u --security-disable NULL /dev/sdX

기여하기

이슈 및 풀 리퀘스트는 github.com/joedefen/dwipe에서 환영합니다.

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.

도구 다운로드
  • 드라이브가 'Locked'인 경우, 수동으로 잠금 해제해야 합니다(아래 "잠긴 장치 잠금 해제" 섹션 참조). dwipe가 잠근 경우 비밀번호는 NULL입니다. 그렇지 않으면 잠근 비밀번호를 사용하세요.
  • SATA 드라이브 핫스왑 워크플로우: DEL로 분리, 물리적으로 드라이브 교체, 그런 다음 r로 다시 스캔(필요한 경우).
  • 상태의미
    -장치가 삭제 준비 완료
    ^장치가 삭제 준비 완료 AND dwipe 시작 후 추가됨 (핫스왑)
    Mnt파티션이 마운트되었거나 디스크에 마운트된 파티션 있음 - 삭제 불가
    N%삭제 진행 중 (백분율 완료 표시, 0-100%)
    vN%검증 진행 중 (백분율 완료 표시, v0-v100%)
    STOP삭제 또는 검증이 중단 중
    s삭제가 중단됨 - 장치가 부분적으로 삭제됨 (다시 시작하거나 검증 가능)
    W삭제가 성공적으로 완료됨 (다시 삭제하거나 검증 가능)
    Blk디스크가 수동으로 차단됨 - 파티션이 숨겨지고 삭제 불가
    Unbl디스크가 방금 차단 해제됨 (일시적 상태)
    키작업설명
    wwipe선택한 장치 삭제 (확인 필요)
    vverify삭제된 장치 검증 또는 표시되지 않은 디스크에서 패턴 감지 (상황별)
    sstop진행 중인 선택한 삭제 중단 (상황별)
    SStop All진행 중인 모든 삭제 중단
    DELdelete시스템에서 디스크 제거 (전체 디스크만 해당, 상황별)
    bblock/unblock디스크를 차단하거나 차단 해제하여 실수로 인한 삭제 방지
    /filter정규식 패턴으로 장치 필터링 (일치하는 장치 + 모든 활성 삭제 표시)
    rrescan모든 장치 재스캔 및 하드웨어 기능 감지 재설정
    hhistory삭제 기록 로그 표시
    tthemes테마 미리보기 화면 열어 색상 테마 보기 및 변경
    q 또는 xquit애플리케이션 종료 (먼저 모든 삭제 중단)
    ?help모든 작업 및 탐색 키가 포함된 도움말 화면 표시
    ESCclear filter필터 지우고 목록 맨 위로 이동
    ESCback중첩 화면인 경우 이전 화면으로 돌아가기
    atime format삭제 기록 시간 표시 형식 순환 (ago+time, ago, time)
    환경방법참고
    SSH 세션OSC 52터미널 이스케이프 시퀀스; 터미널 지원 필요 (iTerm2, kitty, alacritty, Windows Terminal, set-clipboard on이 있는 tmux)
    Waylandwl-copywl-clipboard 패키지 필요
    X11xclip/xselxclip 또는 xsel 패키지 필요
    폴백터미널셸로 나가서 수동 복사를 위해 텍스트 출력
    순위약어공식 명칭비고
    1CryptoSanitize Cryptographic Erase가장 빠름; 암호화 키 삭제; 즉시 데이터 무효화
    2BlockSanitize Block Erase빠름; 모든 블록을 할당 해제 상태로 재설정
    3FCryptoFormat with Crypto Erase빠름; 키 삭제와 함께 네임스페이스 재포맷
    4FEraseFormat with User Data Erase빠름; 간단한 데이터 삭제로 재포맷; 암호화보다 덜 철저함
    5OvwrSanitize Overwrite몇 분; 모든 블록에 패턴 쓰기; 가장 철저하지만 거의 필요하지 않음
    6RandSoftware Random Write폴백; 소프트웨어를 통해 랜덤 데이터 쓰기; 대용량 드라이브의 경우 수 시간
    7ZeroSoftware Zero Write폴백; 소프트웨어를 통해 제로 쓰기; 검증 가능하지만 느림
    순위약어공식 명칭비고
    1SCryptoSanitize Cryptographic Erase가장 빠름; 암호화 키 삭제; SANITIZE 기능 필요
    2EnhancedATA Security Erase Enhanced빠름; 암호화 키 파괴를 통한 공급업체별 심층 삭제
    3SBlockSanitize Block Erase빠름; 블록을 공장 상태로 재설정; SANITIZE 기능 필요
    4EraseATA Security Erase Normal몇 분; 모든 섹터에 제로 쓰기; 널리 지원됨
    5SOverwriteSanitize Overwrite몇 분; 패턴으로 덮어쓰기; SANITIZE 기능 필요
    6RandSoftware Random Write폴백; 웨어 레벨링되거나 재매핑된 블록에 도달할 수 없음
    7ZeroSoftware Zero Write폴백; 웨어 레벨링되거나 재매핑된 블록에 도달할 수 없음
    순위약어공식 명칭비고
    1RandSoftware Random Write선호됨; 중단 가능, 재개 가능, 진행 상황 표시
    2ZeroSoftware Zero Write선호됨; 중단 가능, 재개 가능, 빠른 검증
    3EnhancedATA Security Erase Enhanced느림(수 시간); 중단 불가; 진행 없음; 소프트웨어와 동일한 결과
    4EraseATA Security Erase Normal느림(수 시간); 중단 불가; 진행 없음; 소프트웨어와 동일한 결과
    중단된 위치현재 패스결과
    50%1 패스재개: 남은 50% 쓰기
    150% (4패스 중 1.5)1 패스이미 완료 (150% > 100%)
    150% (4패스 중 1.5)4 패스재개: 2.5 패스 더 쓰기 (150% → 400%)
    100% (1 패스 완료)2 패스재개: 패스 2 쓰기 (100% → 200%)