우분투에서 하드디스크 완전 삭제
요약
1
2
3
|
sudo shred -v -z -n3 /dev/sdx
sudo badblocks -w -c 600 /dev/sdx
dd if=/dev/urandom of=/dev/sdx bs=1M
|
shred?
- 데이터 복구가 어렵도록, 실제 데이터를 쓰고/지우는 것을 반복하는(default 3) 명령어
설치
1
|
apt-get install coreutils
|
디스크 삭제 준비
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
lsblk
# ex) sdg, sdf 를 삭제하고자 함
root@gedgem01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.6M 1 loop /snap/core18/2654
sda 8:0 0 953.9G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 952.4G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 952.4G 0 lvm /
sdb 8:16 0 931.5G 0 disk
sdc 8:32 0 3.7T 0 disk
sdd 8:48 0 3.7T 0 disk
└─sdd1 8:49 0 3.7T 0 part /mnt/sdd
sdf 8:80 0 1.8T 0 disk
├─sdf1 8:81 0 2.4G 0 part
├─sdf2 8:82 0 2G 0 part
├─sdf3 8:83 0 1K 0 part
└─sdf5 8:85 0 1.8T 0 part
sdg 8:96 0 1.8T 0 disk
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# sdx는 삭제하려는 파티션이 존재하는 디스크
fdisk /dev/sdx
# ex)
# 파티션 확인 command (p)
# 파티션 삭제 command (d)
# 실행 내용 저장 command (w)
root@gedgem01:~# fdisk /dev/sdf
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdf: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: 001-1CM164
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00014c49
Device Boot Start End Sectors Size Id Type
/dev/sdf1 2048 4982527 4980480 2.4G fd Linux raid autodetect
/dev/sdf2 4982528 9176831 4194304 2G fd Linux raid autodetect
/dev/sdf3 9437184 3907015007 3897577824 1.8T f W95 Ext'd (LBA)
/dev/sdf5 9453280 3906822239 3897368960 1.8T fd Linux raid autodetect
Command (m for help): d
Partition number (1-3,5, default 5): 5
Partition 5 has been deleted.
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): p
Disk /dev/sdf: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: 001-1CM164
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00014c49
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
|
디스크 삭제
- 사용할 옵션
-
-v
: 진행사항을 보여줌
-
-n1
: 반복하여 쓰기/지우기를 수행할 횟 수(default 3)
-
-z
: 마지막 쓰기 시, Zero 값으로 덮어쓰기
1
|
sudo shred -v -z -n3 /dev/sdx
|
[참조]How can I seurely erase a hard drive?
[참조]shred - Linux man page
badblocks
- 디스크의 배드블럭(badblock, 물리적으로 손상된 부분)을 찾을 때 사용하는 명령어
- 옵션 중, 랜덤 값을 디스크에 쓰면서, 배드블럭인지 아닌지 확인하는 기능이 있음
- 이를 활용하여, 랜덤쓰기를 수행
설치
- Ubuntu 20.04
1
|
apt-get install e2fsprogs
|
디스크 삭제
- 사용할 옵션
-
-w
: 랜덤 값(0xaa, 0x55, 0xff, 0x00) 을 장치의 모든 블럭에 쓰고(Write) 읽은 후, 서로 비교하여 배드블럭인지 유무를 판단
-
-ㅊ
: 한 번에 테스트할 블럭의 크기 (default 64)
1
2
|
# block size는 512, 4096, 32768 등
sudo badblocks -w -c 600 /dev/sdx
|
dd
- 일반적으로 리눅스 환경에서 로우 포맷용으로 활용
1
|
dd if=/dev/urandom of=/dev/sdx bs=1M
|