कमांड लाइन से सभी विभाजन हटाना


40

आप लिनक्स (विशेष रूप से उबंटू) पर कमांड लाइन से एक डिवाइस पर सभी विभाजन कैसे हटाते हैं? मैंने fdisk देखने की कोशिश की, लेकिन यह एक संवादात्मक संकेत प्रस्तुत करता है। मैं एक एकल कमांड की तलाश में हूं, जिसे मैं एक डिवाइस पथ (जैसे / देव / एसडीए) दे सकता हूं और यह ext4, linux-swap, और जो भी अन्य विभाजन पाता है उसे हटा देगा। अनिवार्य रूप से, यह एक ही बात होगी जैसे कि मुझे GParted को खोलना था, और मैन्युअल रूप से सभी विभाजनों को चुनना और हटाना होगा। यह काफी सरल लगता है, लेकिन दुर्भाग्य से, मैं Google के माध्यम से कुछ भी नहीं पा सका हूं।

जवाबों:


44

क्या यह पर्याप्त होगा?

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

4
इससे पार्टीशन नहीं हटेंगे। विभाजन को हटाने से उसका मतलब एमबीआर को संरक्षित करना और विभाजन तालिका को खाली करना है।
मिरिकिया वुटकोविसी

2
नहीं, यह वही दिखता है जो मुझे चाहिए। अगर डेटा अभी भी है तो मुझे वास्तव में परवाह नहीं है। GParted दिखाता है कि इसे चलाने के बाद विभाजन चला गया है, और यही मैं चाहता था।
सेरिन

Mircea Vutcovici आपके डेटा के बारे में बात नहीं कर रहा था, लेकिन आपके MBR में बूटस्ट्रैप कोड के बारे में। यह अब चला गया है, क्योंकि आपने इसे एमबीआर-शैली विभाजन तालिका से 4 प्राथमिक प्रविष्टियों के साथ मिटा दिया है।
JdeBP

1
ड्राइवर को अनमाउंट करने के लिए मत भूलना, अन्यथा यह काम नहीं करेगा।
ऑरेंजट्यूक्स

यदि आपने ZFS का उपयोग किसी ड्राइव पर किया है तो यह भी बहुत अच्छा है और इसे किसी और चीज़ के लिए पुन: प्रस्तुत कर रहा है। न तो एक मानक विंडोज या लिनक्स विभाजन और प्रारूप को उस पर जेडएफएस लेबल से छुटकारा मिलेगा, जिससे आपको बड़ी समस्याएं हो सकती हैं।
टोनी मारो

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

यह ड्राइव के एमबीआर को जप करेगा (डेटा अभी भी बरकरार है)।

वैकल्पिक रूप से:

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 बाइट्स हो सकता है। हालांकि, हमें चीजों को उससे अधिक सटीक रूप से संबोधित करने की आवश्यकता है, इसलिए हम dd1 बाइट के ब्लॉक आकार का उपयोग करना बताते हैं ।

गिनती = 64

यहाँ, हम dd64 खंड (या बाइट्स, हमारे bs=1पैरामीटर के कारण) लिखना चाहते हैं, क्योंकि प्राथमिक विभाजन तालिका में कुल 64 बाइट्स के लिए 4 16-बाइट विभाजन प्रविष्टियाँ हैं।

तलाश = 446

एमबीआर के भीतर प्राथमिक विभाजन तालिका (इसलिए, यहां जीपीटी के बारे में बात नहीं की जाती है) 446 बाइट्स में स्थित है, इसलिए हम ddलिखने से पहले 446 बाइट्स लेने का निर्देश देते हैं ।

विस्तारित विभाजन आम तौर पर विस्तारित विभाजन तालिका में इंगित करने के लिए प्राथमिक विभाजन स्लॉट का उपयोग करके बनाया जाता है, इसलिए यदि हम 4 प्राथमिक विभाजन मिटाते हैं, तो हम प्रभावी रूप से विस्तारित विभाजन तालिका भी मिटा देते हैं; OS इसे ढूंढने में सक्षम नहीं होगा, इसलिए यह इसे पढ़ने और व्याख्या करने में सक्षम नहीं होगा। (यदि आप विस्तारित विभाजन तालिका को पोंछना चाहते हैं, तो आपको ऑपरेटिंग सिस्टम के बारे में अधिक जानना होगा। विभिन्न ऑपरेटिंग सिस्टम अलग-अलग तरीकों से विस्तारित पार्टिशन करते हैं।)


2

मैं एक ही काम करना चाहता था (स्लैकवेयर 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.