Hướng dẫn sử dụng shred để xóa dữ liệu trên ổ cứng HDD truyền thống sao cho gần như không thể khôi phục.
⚠️ CẢNH BÁO QUAN TRỌNG – CHỈ DÙNG CHO HDD (Ổ CƠ): Bài viết gốc năm 2009 – trước kỷ nguyên SSD. KHÔNG BAO GIỜ dùng shred trên ổ SSD/NVMe/eMMC/SD card/USB flash. Không chỉ không hiệu quả (do wear leveling, TRIM, over-provisioning của controller), mà còn làm giảm tuổi thọ ổ SSD. Với SSD, hãy dùng blkdiscard (TRIM toàn bộ), nvme format, hoặc Secure Erase qua firmware (hdparm --security-erase).
Khi nào dùng shred?
- Ổ HDD cơ (mechanical hard drive).
- Trước khi bán/tặng/throw away máy tính, ổ đĩa ngoài.
- Xóa tệp nhạy cảm: ảnh cá nhân, email, tài liệu ngân hàng, khóa SSH/GPG.
Xóa toàn bộ ổ đĩa
# shred -fzv -n 100 /dev/sdX
- -f (--force): Thay đổi quyền tệp cho phép ghi nếu cần.
- -z (--zero): Ghi đè lần cuối bằng số 0 (che giấu dấu vết shred).
- -v (--verbose): Hiển thị tiến độ.
- -n 100 (--iterations=100): Ghi đè ngẫu nhiên 100 lần (mặc định 3). 100 lần rất an toàn nhưng chậm – 3-7 lần thường đủ cho HDD hiện đại.
- /dev/sdX: Thiết bị ổ đĩa (ví dụ
/dev/sdb,/dev/sdc). KIỂM TRA KỸ bằnglsblktrước khi chạy!
Xóa tệp đơn lẻ
# shred -fvz -n 10 sensitive_document.pdf
Lưu ý: Trên filesystem journaling (ext4, xfs, btrfs) hoặc SSD, shred trên tệp đơn lẻ không đảm bảo xóa hoàn toàn do copy-on-write, journal, wear leveling. An toàn hơn: mã hóa toàn đĩa (LUKS) từ đầu.
Yêu cầu Live USB
Nếu xóa ổ cài hệ điều hành đang chạy, bạn PHẢI boot từ Live USB (Ubuntu Live, SystemRescue, Kali...). Không thể shred ổ đang mount root.
Các công cụ thay thế hiện đại
| Công cụ | Dùng cho | Ghi chú |
|---|---|---|
| blkdiscard /dev/nvme0n1 | SSD/NVMe | Gửi TRIM toàn bộ, nhanh, an toàn cho SSD |
| nvme format -s1 /dev/nvme0n1 | NVMe | Secure Erase cấp firmware (cần nvme-cli) |
| hdparm --security-erase | HDD/SSD (ATA) | Secure Erase chuẩn ATA, cần BIOS hỗ trợ |
| wipefs -a /dev/sdX | Tất cả | Xóa chữ ký filesystem, không xóa dữ liệu |
| dd if=/dev/urandom of=/dev/sdX | HDD | Thay thế shred, chậm hơn, không có -z/-n |
Kiểm tra sau xóa
# hexdump -C -n 512 /dev/sdX # Kiểm tra sector đầu (MBR) – nên toàn 0x00
# strings /dev/sdX | head # Tìm chuỗi văn bản còn sót lại