จะ# dd if=/dev/zero of=/dev/sda
ล้างตารางพาร์ติชันที่มีอยู่แล้วหรือไม่
หรือเป็นวิธีอื่น ๆ เช่นทำ
# fdisk /dev/sda
g
(สำหรับ GPT)
ล้างเลขศูนย์ที่เขียนโดย/dev/zero
?
จะ# dd if=/dev/zero of=/dev/sda
ล้างตารางพาร์ติชันที่มีอยู่แล้วหรือไม่
หรือเป็นวิธีอื่น ๆ เช่นทำ
# fdisk /dev/sda
g
(สำหรับ GPT)
ล้างเลขศูนย์ที่เขียนโดย/dev/zero
?
คำตอบ:
จะ
dd if=/dev/zero of=/dev/sda
ล้างตารางพาร์ติชันที่มีอยู่แล้วหรือไม่
ใช่ตารางพาร์ทิชันอยู่ในส่วนแรกของไดรฟ์ดังนั้นการเขียนทับมันจะทำลายมัน ที่dd
จะเขียนทับไดรฟ์ทั้งหมดหากคุณปล่อยให้มันรัน (ดังนั้นจะใช้เวลาค่อนข้างนาน)
สิ่งที่ต้องการdd bs=512 count=50 if=/dev/zero of=/dev/sda
จะเพียงพอที่จะเขียนทับ 50 ภาคแรกรวมถึงตารางพาร์ติชัน MBR และ GPT หลัก แม้ว่าอย่างน้อยจะเป็นไปตาม Wikipedia แต่GPT มีสำเนาสำรองของตารางพาร์ติชั่นในตอนท้ายของไดรฟ์ดังนั้นการเขียนทับเฉพาะส่วนที่อยู่ในส่วนหัวของไดรฟ์อาจไม่เพียงพอ
(คุณไม่จำเป็นต้องใช้dd
แต่. head -c10000 /dev/zero > /dev/sda
หรือcat /bin/ls > /dev/sda
จะมีผลเช่นเดียวกัน.)
เหตุใด
fdisk /dev/sda g
(สำหรับ GPT) ลบเลขศูนย์ที่เขียนโดย / dev / ศูนย์
ใช่ด้วย (หากคุณบันทึกการเปลี่ยนแปลง)
(อย่างไรก็ตามการใช้ถ้อยคำในชื่อเป็นเพียงความสับสน/dev/zero
ในตัวเองไม่ได้ทำอะไรมากไปกว่าการจัดเก็บปกติใด ๆ )
/bin/ls
สั้นเพียงพอการดำเนินการเขียนอาจเขียนทับ MBR บางส่วนเพียงไม่กี่ไบต์และส่วนที่สำคัญที่สุด (ส่วนเริ่มต้นและส่วนท้ายของพาร์ติชั่น) ยังคงเหมือนเดิม แม้ว่าจะต้องติดตั้ง MBR ใหม่ (โดยทั่วไปแล้วgrub --install /dev/sda
) เพื่อให้ระบบสามารถบูตได้อีกครั้ง
ls
ไบนารีจริงไม่ใช่เอาท์พุทจากการทำงาน เอลฟ์ไบนารี "Hello World" ที่เล็กที่สุดที่เป็นไปได้ดูเหมือนจะเป็น98 ไบต์ (น้อยกว่า MBR) แต่ฉันคิดว่ามันปลอดภัยที่จะสมมติว่าไบนารี่ที่มีคุณสมบัติจริงควรใหญ่กว่า MBR (การใช้ FreeBSD ที่มีชื่อเสียงน้อยls
คือ 32784 ไบต์ยาวหรือใหญ่พอที่จะเขียนทับส่วนเริ่มต้นของดิสก์ของ GPT) ;)
ls
เกินไป รายชื่อ/usr/bin
อาจจะยาวพอ ฉันจะใช้echo
เป็นตัวอย่าง แต่ IIRC คุณต้องการเกือบ 500 ไบต์เพื่อเขียนทับตารางพาร์ติชัน MBR ดังนั้นมันจึงค่อนข้างเหนื่อยที่จะพิมพ์ (จำนวนที่แน่นอนคืออะไร)
ตารางพาร์ติชันจะถูกเก็บไว้ใกล้กับจุดเริ่มต้นที่1ของอุปกรณ์ดิสก์(ลอจิคัล2 )
เขียนทับพื้นที่นั้นด้วยสิ่งใด (ศูนย์จาก/dev/zero
หรือข้อมูลอื่น ๆ ) จะแทนที่ตารางพาร์ทิชันด้วยซึ่งพูดพล่อยๆดังนั้นจะไม่ชัดเจนที่เริ่มพาร์ทิชันในอุปกรณ์
หนึ่งยังคงสามารถสแกนดิสก์ทั้งหมดและพยายามระบุ "วิเศษไบต์" ที่ทำเครื่องหมายจุดเริ่มต้นของระบบไฟล์แม้ว่า
ในทางกลับกันถ้าคุณใช้fdisk
(หรือเครื่องมือการแบ่งพาร์ติชันอื่น ๆ ) เพื่อสร้างตารางพาร์ติชันใหม่เครื่องมือจะเขียนทับสองสามไบต์แรกของดิสก์เพื่อเก็บตารางใหม่นั้น
มีเพียงหนึ่งจุดเริ่มต้นที่ดิสก์ดังนั้นสิ่งที่คุณทำล่าสุดจะ "ติด" ที่นั่น
อย่างไรก็ตามโปรดทราบว่าบางรูปแบบตารางพาร์ติชัน (เช่น GPT) จะเก็บสำเนาสำรองไว้ในที่ต่าง ๆ (เช่นที่ส่วนท้ายของดิสก์สำหรับ GPT) ซึ่งข้อมูลพาร์ติชันบางส่วนสามารถกู้คืนได้
1: เช่นใน512 ไบต์แรกสำหรับ MBRหรือ17408 ไบต์แรกและสุดท้ายสำหรับ GPT
2: ไดรฟ์สามารถทำการแมปบล็อกตรรกะภายในส่วนต่าง ๆ ของสื่อทางกายภาพ แต่การทำแผนที่นั้นจะมองไม่เห็น (และไม่สำคัญ) ระบบปฏิบัติการ
/dev/zero
เช็ดอะไรออกไป แต่ก็dd
เช็ดออกโดยคัดลอกมัน ข้อเท็จจริงที่ว่าไบต์เกิดขึ้นเป็นศูนย์และว่าศูนย์ไบต์เกิดขึ้น/dev/zero
แทนที่จะเป็นศูนย์อื่นแหล่งรายละเอียดเล็ก ๆ น้อย ๆ