2012-05-09 11 views
6

के लिए मान्य तर्क man page विभाजित कर रहे हैं लेकिन मान्य पैरामीटर पर कोई दस्तावेज नहीं दिख रहे हैं। मैं विशिष्ट विभाजन आकारों (सीएफ आकार के बावजूद) के साथ एक यूएसबी कॉम्पैक्ट फ्लैश विभाजन करने की कोशिश कर रहा हूं। लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मेरा संरेखण बिल्कुल सही और इष्टतम है।विभाजित

उदाहरण के लिए, जब मैं निम्न कमांड का उपयोग करें:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 
parted -s -a optimal $DEV mkpart primary ext3 1600 3200 
parted -s -a optimal $DEV mkpart primary ext3 3200 3600 

यह स्पष्ट नहीं है कि अगर पहले विभाजन शुरू 1 या 0 होना चाहिए? केवल संकेत है कि मुझे लगता है कि यह बजाय एक शून्य से 1 साथ शुरू करना चाहिए मिलता है जब मैं चलाएँ:

parted /dev/sdc align-check optimal 1 

कौन मुझसे कहता है यह जब 1 के साथ शुरू गठबंधन और गठबंधन नहीं है जब 0. लेकिन जब मैं के साथ शुरू एक 1 से शुरू करें और मैं 'प्रिंट' करता हूं, शुरुआत 1049kB पर है ... क्या यह सामान्य है? जब मैं अन्य विभाजनों द्वारा बनाए गए प्रिंट विभाजन को डंप करता हूं, तो मुझे लगता है कि वे 32kb पर शुरू होते हैं। अगर मैं 0 की शुरुआत का उपयोग करता हूं, तो यह 512 केबी की शुरुआत प्रिंट करता है। जो सही है, मुझे नहीं पता!

इसके अतिरिक्त, मैंने दूसरे और तीसरे विभाजन के लिए अपने शुरुआती मूल्य का उपयोग करके लोगों के वेब पर कई उदाहरण देखे हैं, जो विभाजन से उनके अंतिम मूल्य (यानि: 1600 और 3200 मूल्य) के रूप में हैं। क्या हम मानते हैं कि 1 से ओवरलैप या वृद्धि हुई है? मैन पेज इस बारे में कुछ भी नहीं कहते हैं। और मैंने कुछ वेब पेज देखे हैं जहां वे कहते हैं कि यह आखिरी छोर के समान मूल्य होने के लिए एक त्रुटि है।

जब मैं '-a इष्टतम' का उपयोग करता हूं, तो यह मेरे विभाजन को भी प्रभावित नहीं करता है। संरेखण ध्वज का उपयोग नहीं करना एक ही परिणाम उत्पन्न होता है। इसके लिए क्या उद्देश्य है? क्या मुझे कुछ याद आ रही है?

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

ध्यान दें कि मैं एक स्वचालित निर्माण स्क्रिप्ट में विभाजित हूं, इसलिए मैं '-s' ध्वज का उपयोग करता हूं।

यदि कोई मुझे इस पर प्रबुद्ध कर सकता है तो मैं इसकी सराहना करता हूं ... अग्रिम धन्यवाद!

+0

यह प्रश्न सुपरसियर स्टैक एक्सचेंज साइट पर उपयुक्त होगा। – BeowulfNode42

उत्तर

17

मुझे लगता है कि आपने यहां कुछ दिलचस्प प्रश्न किए हैं, इससे पहले कि कोई भी दयालुता ने उन्हें उत्तर नहीं दिया है, इसलिए मैं इसे करने की कोशिश करूंगा।


It's not clear if the first partition start should be 1 or 0?

पहले विभाजन शुरू, 1 होना चाहिए, क्योंकि एक डिस्क की पहली बाइट मास्टर बूट रिकॉर्ड और इस तरह MS-DOS के रूप में कुछ डिस्क लेबल, की संरचना में होते हैं। इसलिए यदि आप पहले विभाजन के रूप में 0 के मान का उपयोग करते हैं, तो libparted डिस्क की शुरुआत में कुछ बाइट्स को छोड़ देगा, इस सामग्री को अनुमति देने के लिए, पहले क्षेत्र के तुरंत बाद विभाजन की शुरुआत रखेगा।


the start is at 1049kB... is this normal?

सामान्य बात है। इसे समझाने के लिए, सबसे पहले आपको यह पता होना चाहिए कि, libparted के लिए, एक किलोबाइट 1024 बाइट्स के बराबर नहीं है, इसके बजाय, 1000 बाइट के बराबर है।

KB = किलोबाइट = 1000Bytes
किबा = KibiByte = 1024Bytes

अधिक जानकारी:
http://en.wikipedia.org/wiki/Kilobyte
http://www.gnu.org/software/parted/manual/html_node/unit.html

विभाजन ऑफसेट KB में (किलोबाइट) है और इसके मूल्य एक सन्निकटन है , यदि आप इकाई को बाइट्स में बदलते हैं:

parted /dev/sdf unit b print 

आपको वास्तविक मूल्य दिखाई देगा: 1048576B यह है, 1 एमआईबी (1048576 बी ~ = 1049 केबी), ठीक वही जो आप चाहते थे।


I see that they start at 32kB

हाँ, विभाजन 32 केबी पर शुरू होता है, क्योंकि उपकरण का उपयोग कर रहे शायद बहुत पुराना है, और आप 512-बाइट क्षेत्र आकार के साथ एक डिस्क का उपयोग कर रहे हैं। विभाजन की वास्तविक प्रारंभिक ऑफसेट शायद 32256 है जो सेक्टर 63 के अनुरूप है। सालों पहले, विभाजन उपकरण 63 वें क्षेत्र में पहले विभाजन की शुरुआत को पुराने सीएचएस ज्यामिति में संरेखित करने के लिए रखता है। यह भी समझाने के लिए लंबे समय से है, लेकिन मेरा सुझाव है कि आप अधिक विस्तृत जानकारी के लिए इस लिंक पढ़ें:

https://superuser.com/questions/352572/why-does-the-partition-start-on-sector-2048-instead-of-63 http://lwn.net/Articles/377895/


If I use a start of 0, it prints a start of 512kB

मैं इसे 512B पर शुरू, नहीं KB प्रिंट लगता है , क्या मै गलत हु?
512-बाइट क्षेत्रों की आपकी डिस्क में, पहला क्षेत्र ऑफ़सेट 511 पर समाप्त होता है, इसलिए मैंने आपको ऊपर बताया था, पहला विभाजन पहले क्षेत्र के बाद शुरू होता है।


Are we suppose to have an overlap or increment by 1?

मैं तुम्हें बाइट्स इकाई बदलते हैं, तो विभाजन की वास्तविक प्लेसमेंट देखेंगे और जांच कर सकते हैं कि वे ओवरलैप नहीं।


What purpose is this for? Is there something I'm missing?

है यही कारण है, क्योंकि डिफ़ॉल्ट रूप से, MiB साथ काम करता है अलग कर लिए। जब आप टाइप करें:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 

आप ऑफसेट करने के लिए MiB # 1 और # 1600 इसी बीच एक विभाजन बनाने के लिए जुदा पूछ रहे हैं। एमआईबी से गठबंधन ऑफसेट्स हमेशा सर्वोत्तम प्रदर्शन के लिए गठबंधन होते हैं, इसलिए -a optimal निर्दिष्ट करना आवश्यक नहीं है।

parted $DEV unit b mkpart primary 1000000 160MB 
parted $DEV align-check optimal 1 

यह त्रुटि से पता चला है: आप बाइट्स इकाई बदलते हैं तो आपको एक गैर गठबंधन विभाजन बना सकते हैं The resulting partition is not properly aligned for best performance.

तो, -a none विकल्प के साथ भी ऐसा ही करने की कोशिश:

parted -a none $DEV unit b mkpart primary 1000000 160MB 

अब कोई त्रुटि नहीं है, यह इस विकल्प का उद्देश्य है।


I really wish parted would be a lot more intelligent and not require a start, but rather could deduce it itself.

मुझे लगता है कि सुविधा libparted का उपयोग करता है किसी भी उपकरण के द्वारा लागू किया जाएगा, लेकिन मुझे लगता है कि पुस्तकालय में आवश्यक नहीं है ... लेकिन कौन जानता है? शायद कुछ libparted डेवलपर सुन रहा है ... क्या आपने एक बग रिपोर्ट भेजने की कोशिश की है? [email protected]

संबंधित मुद्दे