การลบพาร์ติชันทั้งหมดจากบรรทัดคำสั่ง


40

คุณจะลบพาร์ติชั่นทั้งหมดบนอุปกรณ์จากบรรทัดคำสั่งบน Linux (เฉพาะ Ubuntu) ได้อย่างไร? ฉันลองดูที่ fdisk แต่มันนำเสนอพรอมต์แบบโต้ตอบ ฉันกำลังมองหาคำสั่งเดียวซึ่งฉันสามารถให้เส้นทางอุปกรณ์ (เช่น / dev / sda) และมันจะลบ ext4, linux-swap และสิ่งที่พาร์ทิชันอื่น ๆ ที่มันพบ โดยพื้นฐานแล้วนี่จะเป็นสิ่งเดียวกับที่ฉันเปิด GParted และเลือกและลบพาร์ติชันทั้งหมดด้วยตนเอง ดูเหมือนจะค่อนข้างง่าย แต่น่าเสียดายที่ฉันไม่สามารถค้นหาอะไรผ่าน Google

คำตอบ:


44

จะเพียงพอหรือไม่

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc

4
นี่จะไม่ลบพาร์ติชัน โดยการลบพาร์ติชันที่เขาต้องการรักษา MBR และเพียงล้างตารางพาร์ติชัน
Mircea Vutcovici

2
ไม่ดูเหมือนว่าจะทำสิ่งที่ฉันต้องการ ฉันไม่สนใจจริงๆถ้าข้อมูลยังอยู่ที่นั่น GParted แสดงว่าพาร์ติชั่นหายไปหลังจากใช้งานมันและนั่นคือสิ่งที่ฉันต้องการ
Cerin

Mircea Vutcovici ไม่ได้พูดถึงข้อมูลของคุณ แต่เกี่ยวกับรหัส bootstrap ใน MBR ของคุณ มันหายไปแล้วเพราะคุณได้ลบมันไปพร้อมกับรายการหลัก 4 รายการจากตารางพาร์ติชันสไตล์ MBR
JdeBP

1
อย่าลืมยกเลิกการต่อเชื่อมไดรเวอร์มิฉะนั้นจะไม่สามารถใช้งานได้
OrangeTux

สิ่งนี้ยังใช้งานได้ดีหากคุณใช้ ZFS บนไดรฟ์และนำไปใช้เพื่อวัตถุประสงค์อื่น การแบ่งพาร์ติชันและฟอร์แมต Windows หรือ Linux แบบมาตรฐานจะกำจัด ZFS label ที่ติดอยู่ซึ่งอาจทำให้คุณเกิดปัญหาใหญ่
Tony Maro

32

wipefsโปรแกรมช่วยให้คุณสามารถลบลายเซ็นพาร์ทิชันตาราง:

wipefs -a /dev/sda

จาก man wipefs

wipefs สามารถลบลายเซ็นระบบแฟ้มการจู่โจมหรือตารางพาร์ติชัน (สตริงมายากล) จากอุปกรณ์ที่ระบุเพื่อทำให้ลายเซ็นไม่สามารถมองเห็นได้สำหรับ libblkid

wipefs ไม่ได้ลบระบบไฟล์ของตัวเองหรือข้อมูลอื่น ๆ จากอุปกรณ์ เมื่อใช้โดยไม่มีตัวเลือกใด ๆ wipefs จะแสดงรายการระบบไฟล์ที่มองเห็นได้ทั้งหมดและการออฟเซ็ตของลายเซ็นพื้นฐาน

wipefs เรียกใช้ BLKRRPART ioctl เมื่อมีการลบลายเซ็นตารางพาร์ติชันเพื่อแจ้งเคอร์เนลเกี่ยวกับการเปลี่ยนแปลง


12

เร็วและสกปรก: ใช้gpartedเพื่อลบพาร์ติชันหรือถ้าคุณรีบ:

dd if=/dev/zero of=/dev/[disk device] bs=512 count=1

นี่จะเป็นการบีบ MBR ของไดรฟ์ (ข้อมูลยังคงไม่เปลี่ยนแปลง)

อีกวิธีหนึ่งคือ:

dd if=/dev/zero of=/dev/[disk device]

เพื่อล้างไดรฟ์ทั้งหมด (เขียนค่าศูนย์เดียวผ่านทุกสิ่งไม่ใช่ "ปลอดภัย" แต่มักจะดีพอ) หรือใช้เครื่องมือ "ตัวทำลายดิสก์" เพื่อการลบอย่างปลอดภัย


7

ดูman sfdiskซึ่งเป็นตัวแปรที่ไม่ใช่แบบโต้ตอบของ fdisk นอกเหนือจากนั้นคุณสามารถลบตารางพาร์ติชันทั้งหมดด้วย dd ตามที่ pk เขียน


6

คุณควรจะสามารถแยกส่วนสำหรับส่วนนี้ได้แม้ว่าอาจเกี่ยวข้องกับการเขียนสคริปต์บางส่วนเพื่อวนรอบพาร์ติชัน


3

หากเรากำลังพูดถึงพาร์ทิชันสไตล์ MBR ...

dd if=/dev/zero of=/dev/[disk device] bs=1 count=64 seek=446 conv=notrunc

คำอธิบาย:

dd

คำสั่งมาตรฐานนี้คัดลอกไบต์จากแหล่งที่มาและเขียนไปยังปลายทาง มันเป็นเครื่องมือที่ยืดหยุ่นที่สุดสำหรับงานนี้

if=/dev/zero

ที่นี่เราระบุว่าเราอ่านจาก/dev/zeroซึ่งเป็นอุปกรณ์พิเศษที่ปล่อยNULไบต์ - ศูนย์

of=/dev/[disk device]

ที่นี่เราระบุอุปกรณ์ที่เรากำลังเขียนถึง

bs=1

ddคิดว่าในแง่ของบล็อก ขนาดบล็อกเริ่มต้นอาจเป็น 512 ไบต์, 1024 ไบต์หรือ 4096 ไบต์ขึ้นอยู่กับระบบของคุณ อย่างไรก็ตามเราจำเป็นต้องจัดการกับสิ่งต่าง ๆ ให้แม่นยำยิ่งขึ้นดังนั้นเราจึงบอกddให้ใช้ขนาดบล็อก 1 ไบต์

นับ = 64

ที่นี่เราบอกddให้เขียน 64 บล็อก (หรือไบต์เนื่องจากbs=1พารามิเตอร์ของเรา) เนื่องจากตารางพาร์ติชันหลักประกอบด้วยรายการพาร์ติชัน 16 ไบต์ 4 รายการรวม 64 ไบต์

แสวงหา = 446

ตารางพาร์ทิชันหลักภายใน MBR (ดังนั้นไม่พูดถึง GPT ที่นี่) ตั้งอยู่ที่ 446 ไบต์ดังนั้นเราขอแนะนำddให้หา 446 ไบต์ก่อนเขียน

โดยทั่วไปแล้วพาร์ติชันเสริมจะถูกสร้างขึ้นโดยใช้สล็อตพาร์ติชันหลักเพื่อชี้ไปที่ตารางพาร์ติชันเสริมดังนั้นหากเราลบ 4 พาร์ติชันหลักออกเราจะทำการล้างพาร์ติชันตารางเพิ่มเติม ระบบปฏิบัติการจะไม่สามารถค้นหาได้ดังนั้นจึงไม่สามารถอ่านและตีความได้ (ถ้าคุณต้องการเช็ดตารางพาร์ติชันเสริมคุณจะต้องรู้เพิ่มเติมเกี่ยวกับระบบปฏิบัติการระบบปฏิบัติการอื่นจะขยายพาร์ติชั่นด้วยวิธีที่ต่างกัน)


2

ฉันต้องการทำสิ่งเดียวกัน (ยกเว้นใน Slackware 14.2) แต่พบว่าฉันไม่สามารถแก้ไขปัญหาส่วนใหญ่ที่นำเสนอได้ที่นี่ด้วยโซลูชันที่ซับซ้อนและมีเอกสารที่ดีที่สุดในการสร้างปัญหาใหม่สำหรับการสร้างพาร์ติชันทดแทน นั่นเป็นการลบพาร์ติชัน แต่ซอฟต์แวร์การแบ่งพาร์ติชันนั้นเห็นได้ชัดว่าพบการสำรองข้อมูลพาร์ติชันโดยอัตโนมัติ

ฉันพบ f3probe ( http://oss.digirati.com.br/f3 ) แก้ปัญหาการลบพาร์ติชั่นทั้งหมดได้อย่างรวดเร็วและง่ายดายการทำงานกับไดรฟ์ความจุขนาดใหญ่และสร้างพาร์ทิชันที่ครอบคลุม 1 ไดรฟ์ซึ่งเป็นเรื่องง่าย ลบ.

นอกจากนี้ยังง่ายจากการสร้างพาร์ติชันใหม่ด้วยวิธีที่ตรงไปตรงมา

กล่าวคือ

f3probe --destructive --time-ops /dev/sdb
# Now we know only 1 partition exists on /dev/sdb
#    which is /dev/sdb1
#
# Unmount that partition
umount /dev/sdb1

#
# Delete that single partition
parted /dev/sdb rm 1

#
# Now you can create new partitions
# i.e. parted /dev/sdb mkpart primary fat32 1049K 15.8G
# 
# Update /etc/fstab before rebooting....

0

ใช้ fdisk รุ่นที่ไม่ใช่แบบโต้ตอบที่ได้รับการปรับปรุงซึ่งเป็นsfdisk

หากต้องการลบตารางพาร์ติชันให้ใช้คำสั่งนี้:

sfdisk --delete /dev/sda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.