USB फ्लैश ड्राइव पर UDF का उपयोग करना


75

मेरे 8G USB फ्लैश ड्राइव में 4 जी से बड़ी फ़ाइल को कॉपी करने में विफल होने के बाद , मैंने इसे ext3 के रूप में स्वरूपित किया। हालांकि यह मेरे लिए अभी तक ठीक काम कर रहा है, यह समस्याओं का कारण होगा यदि मैं इसका उपयोग फ़ाइलों को किसी ऐसे व्यक्ति को कॉपी करने के लिए करना चाहता हूं जो लिनक्स का उपयोग नहीं करता है।

मैं इसके बजाय UDF के रूप में प्रारूपित करने के बारे में सोच रहा हूं, जो मुझे आशा है कि इसे तीन सबसे लोकप्रिय ऑपरेटिंग सिस्टम (विंडोज, मैकओएस और लिनक्स) पर पढ़ने के लिए (और संभवतः लिखे गए), बिना किसी अतिरिक्त ड्राइवर को स्थापित करने की अनुमति देगा । हालाँकि, जो मैंने पहले से ही वेब पर पाया है, उसमें कई छोटे-छोटे गोच से संबंधित प्रतीत होते हैं कि फाइलसिस्टम बनाने के लिए कौन से मापदंडों का उपयोग किया जाता है, जिससे कम्पैटिबिलिटी को कम किया जा सकता है (लेकिन मैंने पाया अधिकांश पृष्ठ ऑप्टिकल मीडिया के बारे में हैं, USB फ्लैश नहीं ड्राइव)।

मैं जानना चाहता हूँ:

  • फाइल सिस्टम बनाने के लिए मुझे किस उपयोगिता का उपयोग करना चाहिए? (अब तक मैं ने पाया है mkudffsऔर genisoimage, और mkudffsसबसे अच्छा विकल्प लगता है।)
  • अधिकतम संगतता के लिए मुझे किस उपयोगिता के साथ चुने गए मापदंडों का उपयोग करना चाहिए?
  • इन तीन ऑपरेटिंग सिस्टम के सबसे सामान्य संस्करणों के साथ संगत UDF वास्तव में कैसा है?
  • क्या यूडीएफ का उपयोग वास्तव में सबसे अच्छा विचार है? क्या कोई अन्य फाइलसिस्टम है जिसमें बेहतर संगतता होगी, जिसमें FAT32 4G फाइल साइज की सीमा जैसी कोई समस्याग्रस्त प्रतिबंध नहीं है, और हर एक कंप्यूटर में विशेष ड्राइवरों को स्थापित किए बिना जो इसे छूता है?

3
संबंधित प्रश्न: serverfault.com/questions/55089/…
CesarB

जवाबों:


57

सबसे पहले, मैंने UDF फाइल सिस्टम बनाने से पहले पूरी तरह से ड्राइव को शून्य कर दिया:

dd if=/dev/zero of=/dev/sdx bs=512

यह किसी भी बचे हुए सुपरब्लॉक या अन्य मेटाडेटा से बचने के लिए है जो ऑपरेटिंग सिस्टम की फाइलसिस्टम टाइप डिटेक्शन को भ्रमित कर सकता है (कम से कम पहले सेक्टर को शून्य करना चाहिए, विभाजन तालिका को तिरस्कृत करने के लिए; पहले कुछ सेक्टरों का उपयोग यूएफएफ और एक बचे हुए द्वारा नहीं किया जाता है; विभाजन तालिका वास्तव में चीजों को भ्रमित कर सकती है)। आप count=1dd कमांड पर स्विच का उपयोग कर सकते हैं , ड्राइव के पहले 512 बाइट्स (जहां एमबीआर आमतौर पर भीतर स्थित है) के लिए अधिक-जल्दी शून्य करने के लिए, हालांकि यह परीक्षण नहीं किया गया था।

फ़ाइल सिस्टम बनाने के लिए, मेरे द्वारा उपयोग की जाने वाली कमांड थी:

mkudffs --media-type=hd --blocksize=512 /dev/sdx

mkudffsudftoolsपैकेज स्थापित करने के बाद कमांड डेबियन-आधारित लिनक्स डिस्ट्रोस (जैसे उबंटू) पर उपलब्ध हो जाएगा :

sudo apt-get install udftools

डिफ़ॉल्ट के लिए mkudffs2048 ब्लॉक है, जो USB फ्लैश ड्राइव (512-बाइट क्षेत्रों का उपयोग करता है) के लिए गलत है। चूंकि ब्लॉक साइज का उपयोग फाइलसिस्टम मेटाडेटा को खोजने के लिए किया जाता है, एक गलत ब्लॉक साइज का उपयोग करके इसे यूडीएफ फाइल सिस्टम के रूप में मान्यता नहीं दी जा सकती है (क्योंकि एंकर वह नहीं होगा जहां फाइलसिस्टम ड्राइवर की उम्मीद है)। ध्यान दें कि mkudffsमैन पेज गलत है; 512 ब्लॉक आकार के लिए एक वैध मूल्य है (और कोड स्पष्ट रूप से इसे स्वीकार करता है)।

मैंने विभाजन के बजाय पूरे ड्राइव का उपयोग किया; यह अधिक संगत होना चाहिए।

मेरे परीक्षण का परिणाम अब तक:

  • लिनक्स सबसे हाल के कर्नेल के साथ (2.6.31, उबंटू 9.10 से): काम करता है।
  • एक पुराने कर्नेल के साथ लिनक्स: को bs=512विकल्प की आवश्यकता होती है mount, क्योंकि यह डिवाइस सेक्टर आकार के बजाय 2048 का गलत तरीके से उपयोग करता है ( 1197e4d में निर्धारित )।
  • Windows Vista: काम करता है।
  • एक नया मैक: काम करता है।
  • विंडोज एक्सपी: ठीक पढ़ा जा सकता है, लेकिन लिखने की कोशिश करते समय "एक्सेस अस्वीकृत" देता है; यह भी लगता है कि डिस्क भरा हुआ है।

जबकि मैंने अब तक इसमें 4 जी से बड़ी फाइल बनाने की कोशिश नहीं की है, मुझे लगता है कि यह काम नहीं करेगा।

यह देखते हुए कि यह सभी हालिया ऑपरेटिंग सिस्टमों पर पूरी तरह से काम करता है (केवल लिनक्स पर मैन्युअल रूप से माउंट करने के लिए, जिसे उबंटू 9.10 और फेडोरा 12 के बाहर होते ही किसी भी तरह की आवश्यकता नहीं होगी), और केवल विंडोज एक्सपी में रीड-ओनली काम किया (जो कि एक आश्चर्य था मेरे लिए; मैं यह उम्मीद कर रहा था कि फाइलसिस्टम को बिल्कुल न पहचानें), बड़े यूएसबी फ्लैश ड्राइव में एफएटी 32 या एनटीएफएस के बजाय यूडीएफ का उपयोग करना एक अच्छा विचार है।


1
आपने ड्राइव को कैसे स्वरूपित / विभाजित किया? मैंने अपने 32GB USB ड्राइव का उपयोग करके शून्य कर दिया है dd if=/dev/zero of=/dev/sdb bs=1M, जो इसे बिना किसी विभाजन तालिका के छोड़ देता है।
रोमियोव्स

4
@ क्रोमोव्स: मैंने ड्राइव को विभाजित नहीं किया। यह विभाजन तालिका और पुराने फाइल सिस्टम बचे हुए को हटाने और पूरे unpartitioned ड्राइव में UDF फाइल सिस्टम लगाने के लिए इसे शून्य करने का पूरा बिंदु है। विभाजन तालिका बनाना केवल भ्रमित करने वाली चीजों को जोखिम में डालना है।
सीजरबी

3
मेरे लिए 500 जीबी सीगेट फ्रीएजेंट डेस्कटॉप यूएसबी 2.0 एक्सटर्नल हार्ड ड्राइव के साथ काम नहीं किया (यह पक्का नहीं है कि यह थ्रेड फ्लैश ड्राइव के बारे में है)। डिस्क प्रबंधन उपयोगिता में विंडोज 7 ने हमेशा ड्राइव को "अनलॉकेटेड" के रूप में दिखाया। मैंने कई अलग-अलग विकल्प संयोजनों की कोशिश की।
एडम मोनसेन

2
अनुवर्ती के लिए बहुत बहुत धन्यवाद। यह दुर्लभ है, अगर पहली बार, कि मैं एक स्मार्ट प्रश्न देखता हूं, जो कुछ दिनों / हफ्तों के परीक्षण के बाद ओपी द्वारा विस्तृत रूप से उत्तर दिया गया है। बहुत अच्छा काम, धन्यवाद!
ल्यूक

1
पीटर वूइल की स्क्रिप्ट भी देखें जो यूडीएफ निर्माण प्रक्रिया को स्वचालित करता है और बेहतर संगतता के लिए एक विभाजन तालिका बनाता है। मैंने इसे एक वैकल्पिक समाधान के रूप में पोस्ट किया ।
dolmen

7

CesarB ने इस मुद्दे की क्रूरता के लिए एक बड़ा काम किया। UDF को स्वरूपित करते समय उचित ब्लॉक आकार का उपयोग करना कितना महत्वपूर्ण है, यह एक बात काफी हद तक रेखांकित नहीं की जा सकती है।

CesarB की पोस्ट (और मेरे अन्य शोध / परीक्षण) से प्रेरित होकर, मैंने UDF में फ़ॉर्मेटिंग की प्रक्रिया को स्वचालित करने के लिए एक स्क्रिप्ट लिखी - जिसका ठीक से पता लगाया गया सेक्टर आकार का उपयोग कर रहा है। GitHub पर प्रारूप-udf देखें । उल्लेखनीय विशेषताएं:

  • यूनिवर्सल डिस्क प्रारूप (UDF) में एक ब्लॉक ड्राइव (हार्ड ड्राइव या फ्लैश ड्राइव) को प्रारूपित करता है
    • UDF संशोधन 2.01 अधिकतम अनुकूलता के लिए उपयोग किया जाता है
    • पहले 4096 क्षेत्र किसी भी मौजूदा एमबीआर (उचित यूडीएफ का पता लगाने के लिए आवश्यक) को मिटाने के लिए शून्य किए गए हैं
  • परिणामी फाइल सिस्टम को कई ऑपरेटिंग सिस्टम परिवारों (विंडोज, ओएस एक्स, और लिनक्स) में पढ़ा / लिखा जा सकता है
  • बैश वातावरण वाले किसी भी OS पर चलता है

अंतिम बिंदु के कारण, मैंने जो स्क्रिप्ट लिखी है उसका उपयोग विंडोज पर नहीं किया जा सकता है। हालाँकि, स्क्रिप्ट OS X और Linux पर चलेगी। ऐसा करने के बाद, विंडोज को नए स्वरूपित UDF ड्राइव का जादुई पता लगाने में सक्षम होना चाहिए।

पोस्ट किए गए सवालों के सीधे जवाब देने के लिए, प्रारूप-यूडीएफ होगा:

  • ऑपरेटिंग सिस्टम और पर्यावरण के आधार पर स्वरूपण के लिए उपयुक्त उपकरण चुनें
  • स्वरूपण के लिए आवश्यक सभी मापदंडों का स्वचालित रूप से पता लगाना और उन्हें आबाद करना
  • अधिकतम OS संगतता (संगतता चार्ट के लिए GitHub पृष्ठ देखें)
  • अधिकतम सुविधा सेट (और न्यूनतम सीमाएं) प्राप्त करें जो पूछने वाले की तलाश है

1
मैंने जीथब पर आपके प्रारूप-यूडीएफ उपयोगिता पर एक नज़र डाली और मेरे पास इसके बारे में एक सवाल है। स्क्रिप्ट ड्राइव के भौतिक ब्लॉक आकार का पता लगाती है। क्या आप सुनिश्चित हैं कि पैरामीटर लिनक्स "भौतिक क्षेत्र (ब्लॉक) आकार" कहता है और "तार्किक क्षेत्र आकार" का उपयोग करने के लिए सही नहीं है? भौतिक और तार्किक का मतलब बहुत सारी चीजें हो सकती हैं। क्या hdparmकहते हैं "लॉजिकल सेक्टर आकार" SATA प्रोटोकॉल द्वारा उपयोग किए जाने वाले पते की इकाई है, जबकि "भौतिक क्षेत्र आकार" ड्राइव आंतरिक चीज है। मेरे लिए यह अधिक समझ में आता है कि UDF कल्पना में "भौतिक ब्लॉक" वास्तव में लिनक्स के "लॉजिकल ब्लॉक" का अर्थ है।
जोहान मायरेन

आप हाजिर हैं, @ जोहानमेरेन। मैं आपको GitHub पर इसी विषय पर चर्चा में शामिल होने के लिए आमंत्रित करता हूं। github.com/JElchison/format-udf/issues/13 आपके प्रश्न की तर्ज पर एक आसन्न परिवर्तन है, विंडोज 7 और 10. पर अतिरिक्त परीक्षण लंबित है।
j0nam1el

1
प्रारूप- udf वास्तव में अच्छा है। बस इसे लिनक्स पर परीक्षण किया, और ओएस एक्स और विंडोज 10 पर स्वरूपित ड्राइव को पढ़ / लिख सकता है
11

हालांकि "बैश के साथ किसी भी ओएस पर चलने" की क्षमता में कुछ अपील है, यह mkudffsसीधे उसी दृष्टिकोण को लागू करने के लिए बेहतर होगा ; मेरा मतलब है कि कुछ नया --best-block-sizeविकल्प जोड़ना mkudffs
मार्कशीट

3

मुझे लगता है कि मुझे याद है कि समस्या यह है कि मैंने पाया है कि लिनक्स संस्करण मैंने इसे केवल पढ़ने के लिए माउंट किया था, क्योंकि ड्राइवर को आर / डब्ल्यू के लिए नहीं बनाया गया था। यह विंडोज़ में काम करता था, और मुझे लगता है कि मैक।

हाँ, एक अच्छा समाधान खोजना मुश्किल है। थोड़ी देर के लिए मेरे पास एक fat32 विभाजन वाला एक बाहरी ड्राइव था जिसमें जीत और मैक के लिए ड्राइवर थे, एक मैक विभाजन, और एक बड़ा ext3 विभाजन। यह काम किया, लेकिन इसका मतलब ड्राइवरों को स्थापित करना था। नीट ट्रिक यह एक मैक (fw & usb) पर बूट करने योग्य भी था, आपको स्पेस छोड़ना होगा और कुछ नोट्स लेने होंगे, फिर आप कमांड लाइन और मैक पार्टीशन टेबल के जरिए पार्टीशन भी जोड़ सकते हैं।

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


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

2
खैर, ZFS समन और त्रुटि सुधार की जांच करता है, जो परतदार उपभोक्ता सामान के लिए बहुत मायने रखता है। : -D हम इन दिनों काफी स्टोर कर रहे हैं कि बिट रॉट अंततः कुछ खाएंगे (देखें अध्ययन सूर्य ने इस मुद्दे पर किया कि जेडएफएस की ओर ले जाएं, एचडी पर एन्कोडिंग के लिए अनिर्धारित त्रुटि दर पर भी ध्यान दें)। हमें एक वास्तविक fs की आवश्यकता है जो सब कुछ उपयोग कर सकता है, और fatX यह नहीं है। यहाँ नहीं अभी तक, वास्तव में।
रोनाल्ड पोटोल

ZFS लिनक्स में काम नहीं करता है
इग्निस

2

पीटर वूइल ने यूडीएफ लेआउट बनाने के लिए एक डिस्क को पार्टीशन और फॉर्मेट करने के लिए एक टूल लिखा, जो विंडोज़ (> = विस्टा, केवल एक्सपी के लिए पढ़ा जाता है), मैकओएस एक्स 10.5, लिनक्स 2.6.30+ के साथ संगत होगा।

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


1

अधिकतम अनुकूलता प्राप्त करने के लिए आपको udftools प्रोजेक्ट से mkudffs का उपयोग कम से कम संस्करण 2.0 में करना चाहिए । कोई विशेष मापदंडों की आवश्यकता नहीं है, सब कुछ स्वचालित है।

3 बड़े प्रतिबंध हैं:

  1. Microsoft Windows सिस्टम गैर-हटाने योग्य हार्ड डिस्क को नहीं पहचानता है यदि उसमें MBR या GPT विभाजन तालिका नहीं है।

  2. Apple Mac OS X सिस्टम विभाजन डिस्क पर UDF फाइल सिस्टम को नहीं पहचानता है।

  3. यदि UDF ब्लॉक आकार डिस्क के तार्किक क्षेत्र आकार से मेल नहीं खाता है, तो संभवतः सभी सिस्टम (हाल के लिनक्स कर्नेल को छोड़कर) UDF फाइल सिस्टम को नहीं पहचानते हैं।

संस्करण 2.0 के बाद से टूल mkudffs सभी 3 प्रतिबंधों को संभालता है। जब गैर-हटाने योग्य हार्ड डिस्क को प्रारूपित करते हैं, तो यह "नकली" एमबीआर तालिका बनाता है जो सेक्टर 0 से शुरू होता है और पूरे डिस्क को फैलाता है। इसलिए UDF फाइलसिस्टम को पहले विभाजन (Microsoft Windows के लिए आवश्यक) या संपूर्ण डिस्क (Apple Mac OS X के लिए आवश्यक) से पढ़ा जा सकता है। अधिक जानकारी के लिए mkudffs 2.0 मैन पेज देखें।


0

NTFS, NTFS-3G के साथ आप इसे लिनक्स का उपयोग करके लिख सकते हैं और अपने मैक के लिए http://macntfs-3g.blogspot.com/ पर एक नज़र डाल सकते हैं।


4
यह मैक के लिए अतिरिक्त ड्राइवरों को शामिल करता है।
माइक कूपर

अगर वह FAT का उपयोग नहीं करना चाहता है तो वह फंस गया है और NTFS-3G मैक पर काम करता है, उसे पहले से ही वह चाहिए जो मुझे लिखने के लिए जुड़ा हुआ है।
user10547

4
एक मामूली समस्या यह है कि यह मेरा मैक नहीं है । मैं नहीं बल्कि अन्य लोगों के कंप्यूटर में एक ड्राइवर स्थापित करना होगा।
सीजरबी

-1

विंडोज (और मैक) के लिए ड्राइवर हैं जो EXT3 विभाजन तक पहुंच सकते हैं, इसलिए आप इसे EXT3 में प्रारूपित कर सकते हैं और इसका उपयोग (ड्राइवरों के साथ) हर जगह कर सकते हैं। एक अन्य तरीका यह होगा कि एक अभिलेखीय का उपयोग करके बड़ी फ़ाइल को दो या अधिक फ़ाइलों में प्रत्येक 4GB तक संग्रहीत किया जाए। इस तरह आप FAT32 फाइल सिस्टम का उपयोग कर सकते हैं जो सार्वभौमिक है। होस्ट कंप्यूटर पर आपको इसका उपयोग करने के लिए संग्रह को निकालना होगा, लेकिन यह ड्राइवरों के बिना करने का एक तरीका है। विंडोज, लिनक्स, मैक पर काम करने के बाद से एक आरएआर प्रारूप अभिलेखागार का उपयोग करें, हालांकि मुझे लगता है कि एक ज़िप प्रारूप भी काम कर सकता है। लेकिन मैं ड्राइवरों के साथ जाता। एक बार स्थापित होने के बाद आप प्रतिबंधों के बिना कुछ भी कर सकते हैं। पीसी में मैंने पूर्ण EXT2, EXT3 और EXT4 एक्सेस के लिए Ext2Fsd और पूर्ण MacOS प्रारूप एक्सेस के लिए मैकड्राइव का उपयोग किया है। लिनक्स और मैकओएस के लिए एनटीएफएस विभाजन आदि को पूरी तरह से एक्सेस करने के लिए निश्चित रूप से समान उपकरण मौजूद हैं। यदि आपको केवल रीड एक्सेस की आवश्यकता है, तो आपको किसी भी ड्राइवर, लिनक्स और मैकओएस को NTFS विभाजन के पढ़ने की आवश्यकता नहीं है, इसलिए USB को NTFS के रूप में प्रारूपित करें! यदि ये सभी कंप्यूटर एक ही नेटवर्क पर हैं, तो चीजें आसान हो जाती हैं! USB को या तो प्रारूपित करें और इसे नेटवर्क पर साझा करें। अन्य कंप्यूटरों को इसे एक्सेस करने में समस्या नहीं होनी चाहिए!


2
-1 क्योंकि उत्तर में यूडीएफ का उल्लेख नहीं है!
डॉल्मेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.