เพื่อลบข้อมูลในไดรฟ์ Linux อย่างปลอดภัย ให้ตรวจสอบว่าเป็นฮาร์ดดิสก์แบบแม่เหล็ก (HDD) หรือไดรฟ์โซลิดสเตท (SSD) สำหรับ HDD ให้ใช้คำสั่งเขียนทับข้อมูลทั้งอุปกรณ์ (full-device overwrite ) ddหรือ GNU shredสำหรับ SSD หรือไดรฟ์ NVMe ให้เลือกใช้การลบหรือล้างข้อมูลเฟิร์มแวร์ที่รองรับ: การเขียนทับข้อมูลโดยโฮสต์อาจพลาดพื้นที่จัดเก็บที่แมปใหม่ สำรองข้อมูลที่คุณต้องการทั้งหมด คำสั่งทุกคำสั่งในที่นี้เป็นการลบข้อมูลทั้งหมดและอาจลบข้อมูลในดิสก์ผิดหากคุณเลือกอุปกรณ์ผิด
เตรียมไดรฟ์
หากอุปกรณ์เป้าหมายมีระบบปฏิบัติการของคุณอยู่ ให้บูตจาก USB ลิฟติ้ง Linux ถอดไดรฟ์ทุกตัวที่คุณต้องการเก็บไว้หากทำได้ แสดงรายการอุปกรณ์และจุดเชื่อมต่อ:
lsblk -o NAME,SIZE,MODEL,SERIAL,TRAN,MOUNTPOINTS
ตัวอย่างเทอร์มินัลเท่านั้น ชื่ออุปกรณ์และรายละเอียดรุ่นอาจแตกต่างกันไป โปรดจับคู่เป้าหมายตามขนาด รุ่น และหมายเลขซีเรียล
ตัวอย่างเช่น/dev/sdaคือดิสก์ SATA ทั้งหมด และ/dev/sda1คือพาร์ติชั่น NVMe ใช้เนมสเปซ เช่น/dev/nvme0n1และคอนโทรลเลอร์ เช่น/dev/nvme0ในคำสั่งด้านล่าง/dev/sdXคือตัวยึดตำแหน่ง ให้แทนที่ด้วยพาธของดิสก์ทั้งหมดที่ตรวจสอบแล้ว ห้ามใช้พาร์ติชั่นเมื่อคุณตั้งใจจะลบข้อมูลในไดรฟ์ทั้งหมด
ยกเลิกการเมานต์พาร์ติชันเป้าหมายที่เมานต์ไว้แต่ละรายการ โดยทำซ้ำคำสั่งนี้สำหรับพาร์ติชันอื่นๆ ที่แสดงตามlsblk:
sudo umount /dev/sdX1
ก่อนที่จะเขียนข้อมูลลงดิสก์ทั้งหมด ให้ยกเลิกการเมานต์พาร์ติชันที่เมานต์ทั้งหมดบนดิสก์เป้าหมาย
ลองรันlsblkอีกครั้ง หากไม่ชัดเจนเกี่ยวกับข้อมูลประจำตัวของดิสก์หรือสถานะการเมานต์ ให้หยุดและตรวจสอบก่อนดำเนินการต่อ
1. เขียนทับฮาร์ดดิสก์แบบแม่เหล็กด้วยคำสั่ง dd
GNU ddสามารถเขียนค่าศูนย์ลงในบล็อกที่ระบุตำแหน่งได้ของฮาร์ดดิสก์แบบแม่เหล็กได้ การเขียนลงไดรฟ์ขนาดใหญ่อาจใช้เวลานานหลายชั่วโมง จากเซสชันแบบเรียลไทม์ ให้รันคำสั่ง:
sudo dd if=/dev/zero of=/dev/sdX bs=16M status=progress conv=fsync
เคอร์เซอร์จะยังคงอยู่ขณะที่ddกำลังเขียนข้อมูล ความคืบหน้าในการแสดงผลขึ้นอยู่กับไดรฟ์
ifโปรแกรมจะกำหนดค่าศูนย์ให้กับofข้อมูล ตั้งชื่อเป้าหมายทั้งหมดstatus=progressแสดงข้อมูลการถ่ายโอน และconv=fsyncล้างข้อมูลทั้งหมดก่อนออกจากโปรแกรม โปรดเปิดเครื่องคอมพิวเตอร์ไว้ เมื่อพร้อมท์เชลล์กลับมา ให้ตรวจสอบผลลัพธ์สุดท้าย การเขียนข้อมูลดิบแบบไม่จำกัดอาจรายงานว่า 'ไม่มีพื้นที่เหลือบนอุปกรณ์' ที่ขอบเขตของดิสก์ ให้เปรียบเทียบจำนวนไบต์กับความจุของไดรฟ์ ความล้มเหลวก่อนกำหนดไม่ได้หมายความว่าการล้างข้อมูลสำเร็จ
ข้อความแจ้งเตือนที่ส่งกลับมาหมายความว่าคำสั่งสิ้นสุดลงแล้ว โปรดตรวจสอบว่าการเขียนข้อมูลลงอุปกรณ์ทั้งหมดเสร็จสมบูรณ์แล้ว
ใช้วิธีนี้กับฮาร์ดดิสก์แบบแม่เหล็ก ไม่ใช่การรับประกันสำหรับ SSD: เฟิร์มแวร์ของไดรฟ์อาจทำการแมปบล็อกใหม่โดยที่โฮสต์ไม่สามารถเข้าถึงได้ โปรดดูคู่มือGNU Coreutils dd
2. เขียนทับฮาร์ดดิสก์ด้วย GNU shred
shredเป็นตัวเลือกการเขียนทับทั้งดิสก์แบบที่สอง คำสั่งนี้จะทำการสุ่มแบบเสมือนหนึ่งรอบ ตามด้วยการเขียนทับด้วยค่าศูนย์ในรอบสุดท้าย:
sudo shred --verbose --iterations=1 --zero /dev/sdX
มีการร้องขอการเขียนทับหนึ่งครั้งและตามด้วยการเขียนทับค่าศูนย์ครั้งสุดท้าย ผลลัพธ์จะแตกต่างกันไปตามเวอร์ชันของ Coreutils
อาจใช้เวลานานเท่าหรือนานกว่านั้นddการใช้งานทั้งสองอย่างพร้อมกันไม่ได้ทำให้ SSD ปลอดภัย GNU เตือนว่า การทำงานนี้shredถือว่าระบบไฟล์และฮาร์ดแวร์จะเขียนทับข้อมูลในตำแหน่งเดิม ซึ่งอาจไม่เป็นเช่นนั้นสำหรับระบบไฟล์แบบ journaling หรือ copy-on-write, snapshots หรือ flash storage การเขียนข้อมูลลงอุปกรณ์โดยตรงจะข้ามระบบไฟล์ไป แต่การแมปไดรฟ์จะไม่ข้าม โปรดดูเอกสารประกอบของ GNU shred
3. ใช้ฟังก์ชันลบเฟิร์มแวร์ของไดรฟ์
สำหรับ SSD และการลบข้อมูลที่เข้มงวดมากขึ้น ให้ใช้คำสั่งลบข้อมูลที่ไดรฟ์นั้นรองรับ และปฏิบัติตามขั้นตอนของผู้ผลิต มาตรฐาน NIST SP 800-88 ฉบับแก้ไขครั้งที่ 2 (เผยแพร่เมื่อเดือนกันยายน 2025) กำหนดกรอบการลบข้อมูลโดยคำนึงถึงความละเอียดอ่อนของข้อมูลและความพยายามในการกู้คืน ไม่มีคำสั่งใดเป็นการรับประกันหรือใบรับรองการปฏิบัติตามมาตรฐานอย่างครอบคลุม
NVMe
ติดตั้งnvme-cliจากระบบปฏิบัติการ Linux ของคุณหากจำเป็น จากนั้นตรวจสอบความสามารถในการกรองข้อมูลของตัวควบคุม:
sudo nvme id-ctrl /dev/nvme0
ตรวจสอบเอาต์พุตของคอนโทรลเลอร์จริง การดำเนินการฆ่าเชื้อที่รองรับจะแตกต่างกันไปตามไดรฟ์
เริ่มการดำเนินการเฉพาะในกรณีที่ระบุว่ารองรับการลบบล็อก และรอสักครู่:
sudo nvme sanitize /dev/nvme0 --sanact=start-block-erase --wait
คำสั่งนี้จะกำหนดเป้าหมายไปที่ตัวควบคุมและรอจนกว่าจะเสร็จสิ้น โปรดเปิดเครื่องไว้ตลอดเวลา
ใช้พาธของคอนโทรลเลอร์ ไม่ใช่เนมสเปซคู่มือการใช้งาน nvme-cli อธิบายการกระทำและ--waitใน nvme-cli เวอร์ชัน 3.x sudo nvme log sanitize /dev/nvme0จะตรวจสอบสถานะ เวอร์ชันเก่ากว่าอาจnvme sanitize-logใช้
SATA
สำหรับไดรฟ์ SATA ที่เชื่อมต่อโดยตรง ให้ตรวจสอบว่ารองรับการลบข้อมูลด้วยฟังก์ชัน ATA Security Erase หรือไม่ และสถานะเป็นอย่างไร:
sudo hdparm -I /dev/sdX
ตัวอย่างนี้แสดงให้เห็นไดรฟ์ที่หยุดทำงาน ห้ามดำเนินการต่อหากไม่มีเอกสารรับรองวิธีการแก้ไขที่ปลอดภัยจากผู้ผลิต
ตั้งรหัสผ่านแบบใช้ครั้งเดียวโดยใช้ข้อความแจ้งเตือนที่ปลอดภัยได้ก็ต่อเมื่อไดรฟ์แจ้งว่ารองรับ ไม่หยุดทำงาน หรือถูกล็อก และผู้ผลิตได้ระบุขั้นตอนไว้:
sudo hdparm --user-master u --security-prompt-for-password --security-set-pass /dev/sdX
จดจำรหัสผ่านนั้นไว้ แล้วป้อนรหัสผ่านเดียวกันเมื่อระบบถามที่นี่:
sudo hdparm --user-master u --security-prompt-for-password --security-erase /dev/sdX
คู่มือhdparm ระบุว่าคำสั่งเหล่านี้อันตรายและเตือนว่าอาจใช้ไม่ได้กับเคอร์เนลบางตัว อะแดปเตอร์ USB อาจบล็อกคำสั่งเหล่านี้ หากการตั้งค่าหรือการลบข้อมูลล้มเหลว ให้เก็บรหัสผ่านไว้และปฏิบัติตามคำแนะนำในการกู้คืนของผู้ผลิตไดรฟ์
เหตุใด DBAN จึงไม่ใช่ตัวเลือกที่ใช้ได้กับทุกคน
คู่มือเก่าๆ แนะนำให้ใช้ภาพบูตของ DBAN และคำสั่งล้างข้อมูลอัตโนมัติโครงการ DBAN ระบุว่าใช้ได้กับ HDD เท่านั้น ไม่สามารถตรวจจับหรือลบข้อมูลใน SSD ได้ ไม่มีซอฟต์แวร์อัปเดต และไม่สามารถรับประกันการล้างข้อมูลได้อย่างสมบูรณ์ ห้ามเริ่มการล้างข้อมูลอัตโนมัติเว้นแต่ว่าไดรฟ์ที่ตรวจพบทั้งหมดจะต้องถูกลบข้อมูลจริงๆ
เลือกตามประเภทไดรฟ์
ฮาร์ดดิสก์แบบแม่เหล็ก: เลือกอย่างใดอย่างหนึ่งddจากshredเซสชันสด
SSD แบบ SATA: โปรดใช้ขั้นตอนการลบข้อมูลอย่างปลอดภัย (Secure Erase) ของ ATA ที่ผู้ผลิตกำหนดไว้
NVMe SSD: ใช้คำสั่ง sanitize ที่ตัวควบคุมแจ้งว่ารองรับ จากนั้นตรวจสอบว่าการดำเนินการเสร็จสมบูรณ์หรือไม่
ข้อมูลที่ละเอียดอ่อนหรืออยู่ภายใต้ข้อกำหนด: ปฏิบัติตามนโยบายการฆ่าเชื้อขององค์กรของคุณ และตรวจสอบผลลัพธ์ก่อนการถ่ายโอนหรือการกำจัด
การฟอร์แมตพาร์ติชั่นหรือการลบไฟล์ไม่ได้เป็นการลบข้อมูลทั้งหมดในไดรฟ์ โปรดยืนยันเป้าหมายสองครั้ง ใช้วิธีการที่เหมาะสมกับเทคโนโลยีการจัดเก็บข้อมูล และอย่าขัดจังหวะการลบข้อมูล