본문 바로가기
개발/ms window

디스크 빈 공간 데이터 완전 삭제(복구 불가) 하기 : FillDisk

by 즐기며 2025. 12. 11.

많은 복구 불가 글이 디스크 전체를 지우는 것을 이야기 하고 있는데, 

본 글은 디스크를 쓰고 있으며 (즉 윈도등이 깔려 있고), 사용하고 있는 파일이 있는 상태에서 남은 부분만  복구 불가 하게 지우는 글입니다.

 

일반적으로 파일 삭제를 하면, 목록만 지우고, 그 실제 데이타가 있던 부분은 그대로 있기에  복구(포렌식)가 가능 합니다.   

이 방법은 사용 중인 디스크에서

⚡ 목록만 지우고 실제 남어 있던 데이타가 있어 복구가 가능 하던것을 빈 공간을 완전히 채워 복구 할 수 없게 하는 것 입니다..


📌 목차

  1. 들머리
  2. 준비물
    • 복사할 파일
    • 실행 BAT 파일
  3. 실행 방법
    • 휴지통 비우기
    • 파일 다운로드 / 압축 풀기
    • BAT 실행
    • 디스크가 가득 찼는지 확인
    • 작업 파일 정리

💡 1. 들머리

전체 하드디스크를 완전히 지우는 방법은 많지만,
이미 사용 중인 하드에서 “빈 공간만” 완전히 지워서 복구를 막는 방법은 잘 설명된 자료가 없습니다.

어디서 잠깐 일하고 나올때, 퇴사때 혹시 내 정보가 들어 있는 것이 유출이 걱정 될때 필요 한데 말입니다.
 
이에 하나 만들었읍니다.

이 방법은 삭제된 파일이 남아있는 빈 공간을
무작위 큰 파일로 채워 덮어쓰기 하는 원리입니다.
디스크가 가득 채워지면 이전 데이터는 복구가 어려워집니다.

바쁘신 분들은 "3. 실행"을 보시고,

혹시 코드등 자세한 설명이 궁금 하시면,  "2. 준비물" 부터 보셔요.


📦 2. 준비물 (첨부 파일: FillDisk.zip)

✅ 복사할 파일 (3가지 용량)

파일명용량
f1k.out 1KB
f1m.out 1MB
f500m.out 500MB

첨부 zip에는 1KB 파일만 들어있고,
배치 실행 시 자동으로 1MB / 500MB 파일을 생성합니다.


✅ 실행 배치 파일

📄 _FillDisk.cmd
이 bat 파일은 크게 두 부분으로 구성됩니다:

🔹 1) 기본 파일로 큰 파일 만들기

기본 파일 (f1k.out) 로부터 두개 필요 파일 ( f1m.out,  f500m.out ) 을 만듭니다.

copy /b f1k.out+f1k.out+f1k.out+f1k.out+f1k.out f5k.out
copy /b f5k.out+f5k.out+f5k.out+f5k.out+f5k.out f25k.out
copy /b f25k.out+f25k.out+f25k.out+f25k.out fhk.out
copy /b fhk.out+fhk.out+fhk.out+fhk.out+fhk.out f5hk.out
copy /b f5hk.out+f5hk.out f1m.out 

copy /b f1m.out +f1m.out +f1m.out +f1m.out +f1m.out  f5m.out 
copy /b f5m.out +f5m.out +f5m.out +f5m.out +f5m.out  f25m.out 
copy /b f25m.out +f25m.out +f25m.out +f25m.out  fhm.out 
copy /b fhm.out +fhm.out +fhm.out +fhm.out +fhm.out  f500m.out

 

🔹 2) 생성된 파일을 무한 복사해서 디스크 공간 채우기

만들어진 3개의 복사할 파일을 엄청 많이 ( 500 x 500x 500x 500x 500x 500 번 인가 ? ) 복사 합니다.

rem set file name to be copyed,  
set _f1kilo=f1k.out
set _f1mega=f1m.out 
set _f500m=f500m.out 

rem variables to be count
set /a _fcnt=0
set /a _d1cnt=0
set /a _d2cnt=0
set /a _d3cnt=0
set /a _d4cnt=0
set /a _d5cnt=0
set /a _d6cnt=0
set /a _cntMax=500
 
:_loop101

cls

echo.

if %_fcnt% EQU 0 (

set _subd= 
set _subd=d%_d6cnt%\d%_d5cnt%\d%_d4cnt%\d%_d3cnt%\d%_d2cnt%\d%_d1cnt%
echo %_subd%
set _daa=
set _dbb=
set _dcc=

goto _loop103
:_loop102
echo  daa=%_daa% , dbb=%_dbb% , dcc=%_dcc%

if "AA"%_daa% NEQ "AA" goto   :_loop105

:_loop103
set _daa=zzz\z5\%_subd%
set _dbb=zzz\zm\%_subd%
set _dcc=zzz\zk\%_subd%

rem sometime _daa is unwanted NULL so goback. then next time it becomes not NULL
if "AA"%_daa% EQU "AA" goto   :_loop102

:_loop105 
echo  daa=%_daa% , dbb=%_dbb% , dcc=%_dcc%

mkdir %_daa%
mkdir %_dbb%
mkdir %_dcc%
)

copy "%_f500m%"  "%_daa%\t5%_fcnt%.zip" 
copy "%_f1mega%" "%_dbb%\tm%_fcnt%.zip" 
copy "%_f1kilo%" "%_dcc%\tk%_fcnt%.zip" 
echo.

set /a _fcnt+=1

rem timeout /t 2

if %_fcnt% GEQ %_cntMax% (
  set /a _fcnt=0
  set /a _d1cnt+=1
)

if %_d1cnt% GEQ %_cntMax% (
  set /a _d1cnt=0
  set /a _d2cnt+=1
)

if %_d2cnt% GEQ %_cntMax% (
  set /a _d2cnt=0
  set /a _d3cnt+=1
)

if %_d3cnt% GEQ %_cntMax% (
  set /a _d3cnt=0
  set /a _d4cnt+=1
)

if %_d4cnt% GEQ %_cntMax% (
  set /a _d4cnt=0
  set /a _d5cnt+=1
)

if %_d5cnt% GEQ %_cntMax% (
  set /a _d5cnt=0
  set /a _d6cnt+=1
)

if %_d6cnt% GEQ %_cntMax% (
goto _Daheatda
)

goto _loop101

:_Daheatda
pause
 
 
 

 

반복 구조로 폴더가 계속 생성되고 디스크가 가득 찰 때까지 복사됩니다.


▶ 3. 실행 방법

📌 1) 휴지통 비우기

휴지통에 파일이 남아 있으면 그 공간은 덮어쓰기가 되지 않아 복구가 가능 합니다.
휴지통 우클릭 → 휴지통 비우기


📥 2) 필요 파일 다운로드

첨부된 ZIP 파일을 받습니다.

📁 FillDisk.zip

FillDisk-251212.zip
0.00MB

 


👉 압축을 원하는 폴더(예: D:\zz)에 풀어주세요.

 

👉  2개의 파일이 나옵니다.

 
 

▶ 3) BAT (_FillDisk.cmd ) 파일 실행하기

  1. 명령 프롬프트(CMD) 실행
  2. 압축을 푼 폴더로 이동: d:\> cd d:\zz
  3. c:\> d:
  4. 스크립트 실행:
    d:\zz> _FillDisk.cmd

👉 시간이 꽤 오래 걸릴수 (몇 시간 ?) 있습니다 (디스크 크기 에 따라 다름).


💽 4) 디스크 가득 찼는지 확인

실행이 끝나면 디스크가 거의 100% 가득 찬 것을 확인할 수 있습니다.

500MB 파일을 수백만 번 복사하므로,  10TB 이상 디스크도 실행 중간에 꽉 찰  수 있읍니다.

  • 실행 뒤 d:\zz 를 보시면 그안에 몇가지 파일과 d:\zz\zzz 라는 디렉토리가 생긴것을 볼수 있읍니다.
  •  d:\zz\zzz 안에는 수만개의 복사된 파일이 있읍니다.

 
 

❌ 5) 작업 파일 정리

  1. 작업 하였던 전체 폴더 (D:\zz)를 삭제 를 하셔요.
  2. "휴지통 비우기" 를 다시 한번 하셔요

이제 빈 공간에  새로운 파일로  완전히 덮어 써지고 지워져,
본 작업  이전 삭제 한 데이터에 따라 생긴 빈 공간의 데이타는 사실상 복구 불가능 상태가 됩니다.

혹시 포렌식 등 복구를 시도 하더라도 나오는 파일들은 방금 썻다 지운 파일들 뿐일 것 입니다.


🎯 4. 마무리

이 방법은 복구 방지에 효과적이며,
내 정보 유출이 걱정될 때  사용할 수 있는 방법입니다.

 도움이 되셨으면,  댓글 부탁합니다. 😊
 댓글 하나에 힘이 됩니다.

 

읽어주셔서 감사합니다 🙏
고맙읍니다.

 

 

5. 뒷 글

📌 1) 왜 3개 파일

> 처음에는 500 메가 짜리 한개만 하니 빨리 끝나기는 한데, 문제가 있네요.
종료뒤 디스크 꽉 찾다 했을때, 실제 499 M 짜리 공간이 남을 수 있어, 1 M, 1K 를 추가 한 것입니다.
그럼 종료뒤 1 K 짜리도 들어 갈 수 없게 복사된거니 남은 공간이 1 k 도 아닌 상태 입니다.

 

📌 2) goto 문이 많은데 

>   이것도 작업  하다 보니  set 명령이 동작 안할때(?) 가 있네요.. 뭘 잘 못 했는지,
   그래서, 이거 저거 해보다, 그리 된 것 입니다..

 

(어째든, 돌아는 가니  - 더 좋게 하여 댓글 달아 주시던지요. )