سؤال باستخدام UDF على محرك أقراص فلاش USB


بعد الفشل في نسخ ملف أكبر من 4G إلى بلدي 8G محرك فلاش USB، أنا تنسيقه كما ext3. في حين أن هذا يعمل بشكل جيد بالنسبة لي حتى الآن ، فإنه سوف يسبب مشاكل إذا كنت ترغب في استخدامه لنسخ الملفات إلى شخص لا يستخدم لينكس.

أنا أفكر في تنسيق ذلك UDF بدلاً من ذلك ، والتي آمل أن تسمح بقراءتها (وربما حتى مكتوبة) على أنظمة التشغيل الثلاثة الأكثر شعبية (Windows و MacOS و Linux) ، دون الحاجة إلى تثبيت أي برامج تشغيل إضافية. ومع ذلك ، من ما وجدته على شبكة الإنترنت بالفعل ، يبدو أن هناك العديد من المشاغل الصغيرة المتعلقة بالمعلمات التي يتم استخدامها لإنشاء نظام الملفات ، والتي يمكن أن تقلل من التوافق (ولكن معظم الصفحات التي وجدتها تتعلق بالوسائط البصرية ، وليس فلاش USB محركات الأقراص).

أود أن أعلم:

  • ما الأداة التي يجب استخدامها لإنشاء نظام الملفات؟ (حتى الآن لقد وجدت mkudffs و genisoimageو mkudffs يبدو الخيار الأفضل.)
  • ما هي المعلمات التي ينبغي استخدامها مع الأداة المختارة للحصول على أقصى قدر من التوافق؟
  • كيف تتوافق مع الإصدارات الأكثر شيوعًا من أنظمة التشغيل الثلاثة هذه UDF في الواقع؟
  • هو استخدام UDF في الواقع أفضل فكرة؟ هل هناك نظام ملفات آخر يتمتع بتوافق أفضل ، بدون قيود إشكالية مثل الحد الأقصى لحجم الملفات FAT32 4G ، ودون الحاجة إلى تثبيت برامج تشغيل خاصة في كل جهاز كمبيوتر واحد يلامسها؟

74
2017-09-11 23:47


الأصل


سؤال متعلق: serverfault.com/questions/55089/... - CesarB


الأجوبة:


أولاً ، قمت بتكبير محرك الأقراص تمامًا قبل إنشاء نظام ملفات UDF مع:

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

هذا لتجنب أي بقايا رائعة أو بيانات تعريفية أخرى يمكن أن تخلط بين اكتشاف نوع نظام الملفات وأنظمة التشغيل (يجب على الأقل إزالة الصفر في القطاع الأول ، لمسح جدول الأقسام ؛ لا تستخدم UDF القطاعات القليلة الأولى ، وبقايا جدول التقسيم يمكن أن يخلط الأمور حقا). يمكنك أيضا استخدام count=1 قم بتشغيل الأمر dd ، من أجل بسرعة أكبر من الصفر فقط أول 512 بايت من محرك الأقراص (حيث يوجد MBR عادةً) ، على الرغم من أن هذا لم يتم اختباره.

لإنشاء نظام الملفات ، كان الأمر الذي استخدمته:

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

mkudffs سيصبح الأمر متاحًا على توزيعات Linux القائمة على Debian (مثل Ubuntu) بعد تثبيت udftools صفقة:

sudo apt-get install udftools

الكتل الافتراضية ل mkudffs هو 2048 ، وهو خاطئ لمحرك أقراص USB المحمول (الذي يستخدم قطاعات 512 بايت). نظرًا لاستخدام حجم الفدرة في العثور على بيانات تعريف نظام الملفات ، فإن استخدام حجم فدرة غير صحيح يمكن أن يجعله غير معروف كنظام ملفات UDF (بما أن نقطة الارتساء لن تكون في المكان الذي يتوقع فيه برنامج تشغيل نظام الملفات). نلاحظ أن mkudffs صفحة الرجل خاطئة. 512 هي قيمة صالحة لحجم الكتلة (ويقبلها الرمز صراحةً).

أنا أيضا استخدام محرك الأقراص بأكمله بدلا من التقسيم. هذا ينبغي أن يكون أكثر توافقا.

نتيجة الاختبار الخاص بي حتى الآن:

  • لينكس مع أحدث نواة (2.6.31 ، من أوبونتو 9.10): أعمال.
  • لينكس مع نواة قديمة: يحتاج إلى bs=512 خيار ل mountلأنه استخدم بشكل غير صحيح عام 2048 بدلاً من حجم قطاع الجهاز (ثابت في ارتكاب 1197e4d).
  • ويندوز فيستا: يعمل.
  • جهاز Mac جديد تمامًا: يعمل.
  • نظام التشغيل Windows XP: يمكن أن يقرأ بشكل جيد ، ولكنه يعطي "تم رفض الوصول" عند محاولة الكتابة ؛ يبدو أيضا أن نفكر في القرص ممتلئ.

بينما لم أحاول حتى الآن إنشاء ملف أكبر من 4G في ذلك ، لا أرى أي سبب لعدم نجاحه.

بالنظر إلى أنها عملت بشكل مثالي على جميع أنظمة التشغيل الحديثة (فقط الحاجة إلى التثبيت اليدوي على نظام التشغيل Linux ، والتي لن تكون هناك حاجة إليها بمجرد أن يتم طرح Ubuntu 9.10 و Fedora 12) ، وعملت للقراءة فقط في Windows XP (الذي كان مفاجأة بالنسبة لي ؛ كنت أتوقع عدم التعرف على نظام الملفات على الإطلاق) ، باستخدام UDF بدلاً من FAT32 أو NTFS في محركات أقراص USB المحمولة الكبيرة تبدو فكرة جيدة.


55
2017-09-28 16:12



كيف قمت بتنسيق / تقسيم محرك الأقراص؟ لقد صفرت محرك أقراص USB بحجم 32 جيجابايت ، باستخدام dd if=/dev/zero of=/dev/sdb bs=1M، والتي تترك دون أي جدول التقسيم. - romeovs
romovs: لم أقم بتجزئة محرك الأقراص. هذا هو بيت القصيد من الصفر ، لإزالة جدول القسم وبقايا نظام الملفات القديم ووضع نظام الملفات UDF في محرك الأقراص غير المقسم بأكمله. إنشاء جدول تقسيم لن يؤدي إلا إلى خطر الخلط بين الأشياء. - CesarB
لم يعمل لي مع محرك أقراص صلبة خارجي بسعة 500 جيجا بايت SeaGate FreeAgent Desktop USB 2.0 (لست متأكدا مما إذا كان يجب أن يكون هذا الموضوع حول محركات أقراص فلاش). أظهر Windows 7 دائمًا محرك الأقراص بأنه "غير مخصص" في الأداة المساعدة لإدارة الأقراص. حاولت عدة مجموعات خيار مختلف. - Adam Monsen
شكرا جزيلا للمتابعة. من النادر ، إذا لم يكن ذلك في المرة الأولى ، أن أرى سؤالاً ذكياً يتم الإجابة عليه بشكل متقن من قبل OP بعد بضعة أيام / أسابيع من الاختبار. عمل رائع ، شكرا! - Luc
انظر أيضا النصي من بيتر Wuille يقوم بأتمتة عملية إنشاء UDF ويقوم بجدول تقسيم للحصول على توافق أفضل. أنا نشرها ك حل بديل. - dolmen


قام سيزارب بعمل رائع للوصول إلى جوهر القضية. شيء واحد لا يمكن التأكيد عليه بما فيه الكفاية هو مدى أهمية استخدام حجم الكتلة المناسب عند تنسيق UDF.

مستلهمًا من مشاركة سيزارب (وبحثي / إختباري) ، كتبت نصًا لأتمتة عملية التنسيق في UDF - باستخدام حجم القطاع الذي تم اكتشافه بشكل صحيح. نرى تنسيق udf على جيثب. الميزات البارزة:

  • لتنسيق محرك أقراص (محرك أقراص ثابتة أو محرك أقراص فلاش) في تنسيق القرص العام (UDF)
    • UDF مراجعة 2.01 المستخدمة لتحقيق التوافق القصوى
    • يتم تفريغ أول 4096 مقطعًا لمسح أي MBR حالي (ضروري للكشف عن UDF المناسب)
  • يمكن قراءة وكتابة نظام الملفات الناتج عبر العديد من عائلات نظام التشغيل (Windows و OS X و Linux)
  • يعمل على أي نظام تشغيل يحتوي على بيئة Bash

نظرًا للنقطة الأخيرة ، لا يمكن استخدام هذا البرنامج النصي الذي كتبته على Windows. ومع ذلك ، سيتم تشغيل البرنامج النصي على OS X و Linux. بعد القيام بذلك ، يجب أن يتمكن Windows من اكتشاف محرك الأقراص UDF المنسق حديثًا بشكل سحري.

للإجابة مباشرة على الأسئلة المنشورة ، سيقوم format-udf بما يلي:

  • اختر الأداة المناسبة للتنسيق استنادًا إلى نظام التشغيل والبيئة
  • تلقائيا الكشف عن وملء جميع المعلمات اللازمة للتنسيق
  • زيادة توافق نظام التشغيل (انظر صفحة GitHub لمخطط التوافق)
  • تحقيق أقصى مجموعة من الميزات (والحد الأدنى من القيود) التي يبحث عنها السائل

7
2017-08-29 14:25



لقد ألقيت نظرة على الأداة المساعدة format-udf على Github ولدي سؤال واحد حول هذا الموضوع. يكتشف البرنامج النصي حجم الكتلة الفعلية لمحرك الأقراص. هل أنت متأكد من أن المعلمة لينكس "حجم القطاع الفعلي (كتلة)" وليس "حجم القطاع المنطقي" هو الصحيح لاستخدام؟ يمكن أن تعني المادية والمنطقية الكثير من الأشياء. ماذا hdparm المكالمات "حجم القطاع المنطقي" هو وحدة عنونة يستخدمها بروتوكول SATA ، بينما "حجم القطاع المادي" هو شيء داخلي في محرك الأقراص. بالنسبة لي ، من المنطقي أن "الكتل الفيزيائية" في مواصفات UDF تعني بالفعل "الكتل المنطقية" لـ Linux. - Johan Myréen
كنت على الفور ، @ JohanMyréen. أدعوك للانضمام إلى المناقشة حول هذا الموضوع بالذات على GitHub. github.com/JElchison/format-udf/issues/13  هناك تغيير وشيك على غرار سؤالك ، في انتظار إجراء اختبار إضافي على نظامي التشغيل Windows 7 و 10. - j0nam1el
تنسيق udf هو لطيف حقا. فقط اختبرته على Linux ، واستطاع قراءة / كتابة محرك الأقراص المهيأ على OS X وعلى Windows 10. - mivk
في حين أن القدرة على "العمل على أي نظام تشغيل مع باش" لديها بعض النداء سيكون من الأفضل تنفيذ نفس النهج في mkudffs مباشرة؛ أعني إضافة بعض جديد --best-block-size خيار ل mkudffs. - MarcH


يبدو لي أن أذكر أنني فعلت ذلك ، فإن المشكلة التي وجدتها هي أن نسخة لينكس التي قمت بتركيبها كانت تقرأ فقط ، حيث أن السائق لم يتم بناؤه لـ r / w. انها تعمل في ويندوز ، وأعتقد أن ماك.

نعم ، من الصعب العثور على حل جيد. لفترة من الوقت كان لدي محرك أقراص خارجي مع قسم fat32 التي لديها السائقين للفوز وماك ، وقسم لجنة الهدنة العسكرية ، وقسم ext3 كبير. عملت ، لكنه يعني تثبيت برامج التشغيل. كانت الخدعة الأنيقة أيضاً قابلة للتشغيل على جهاز ماك (fw & usb) ، عليك أن تترك مساحة وتأخذ بعض الملاحظات ، ثم يمكنك إضافة أقسام عبر سطر الأوامر وجدول تقسيم mac أيضاً.

يحتاج العالم إلى نظام مجاني قابل للاستخدام من خلال كل شيء. ZFS سيكون خيارا جيدا. :-)


3
2017-09-12 02:19



ZFS سيكون من الجميل أن يكون ، ولكن سيخلط الكثير من الناس. هو أيضا مبالغة قليلا لوسائل الإعلام الخارجية ، لا تظن؟ أكثر ملاءمة لخوادم الملفات العملاقة ، مما أستطيع قوله. - Mike Cooper
حسنًا ، يقوم برنامج ZFS بالتحقق من التلخيص واسترداد الأخطاء ، الأمر الذي يجعل الأمر منطقيًا بالنسبة إلى الأشياء المستهلكة غير المستقرة. :-D نحن جميعًا نخزن ما يكفي في هذه الأيام ، حيث سيأكل تعفن البتات شيئًا في النهاية (انظر الدراسة التي أجرتها Sun حول المشكلة التي تؤدي إلى ZFS ، كما لاحظ معدل الخطأ غير المكتشف للتشفير على HD). نحتاج إلى خوارزمية حقيقية يمكن لكل شيء استخدامها ، و fatX ليس كذلك. ليس هنا بعد ، حقا. - Ronald Pottol
ZFS لا يعمل في لينكس - ignis


كتب بيتر Wuille أداة لتقسيم وتهيئة قرص لجعل UDF تخطيط متوافق مع كل من Windows (> = Vista ، للقراءة فقط لـ XP) ، MacOS X 10.5 ، Linux 2.6.30+:


2
2018-06-02 15:29



وحيث أن الخادم الذي يحتوي على مخطوطات Pieter Wuille يبدو إلى أسفل ، فهناك نص برمجي أحدث من JElchisson: (Format-UDF) [github.com/JElchison/format-udf]، مع الشرح هنا: (مشاركة محرك أقراص Hard / Flash عبر Windows و OS X و Linux مع UDF) [j0nam1el.wordpress.com/2015/02/20/... - DrYak


لتحقيق أقصى قدر من التوافق يجب عليك استخدام mkudffs من udftools مشروع على الأقل في الإصدار 2.0. هناك حاجة إلى معلمات خاصة ، كل شيء يتم الكشف عنها تلقائيا.

هناك 3 قيود كبيرة:

  1. لا تتعرف أنظمة Microsoft Windows على القرص الثابت غير القابل للإزالة إذا لم يكن لديها جدول أقسام MBR أو GPT.

  2. لا تتعرف أنظمة Apple Mac OS X على نظام ملفات UDF على قرص مقسم.

  3. من المحتمل أن جميع الأنظمة (باستثناء نواة لينكس الأخيرة) لا تتعرف على نظام ملفات UDF إذا كان حجم فدرة UDF لا يتطابق مع حجم القطاع المنطقي للقرص.

أداة mkudffs منذ الإصدار 2.0 معالجة كافة القيود 3. عند تهيئة الأقراص الثابتة غير القابلة للإزالة ، فإنه ينشئ جدول MBR "زائف" الذي يبدأ في القطاع 0 ويمتد القرص بأكمله. لذلك ، يمكن قراءة نظام ملفات UDF إما من القسم الأول (المطلوب لنظام Microsoft Windows) أو من القرص الكامل (المطلوب لـ Apple Mac OS X). انظر mkudffs 2.0 man page لمزيد من التفاصيل.


1
2018-01-13 13:22





NTFS ، مع NTFS-3G يمكنك الكتابة إليه باستخدام لينكس وإلقاء نظرة على http://macntfs-3g.blogspot.com/ لجهازك Mac.


0
2017-09-12 01:46



يبدو أن هذا ينطوي على برامج تشغيل إضافية لنظام Mac. - Mike Cooper
إذا لم يكن يريد استخدام FAT فهو عالق و NTFS-3G يعمل على نظام Mac بالفعل فهو بحاجة إلى ما ارتبط به للكتابة. - user10547
مشكلة واحدة بسيطة هي أنها ليست كذلك لي ماك. أفضل عدم تثبيت برنامج تشغيل في أجهزة الكمبيوتر الخاصة بالأشخاص الآخرين. - CesarB


توجد برامج تشغيل لـ Windows (و Mac) يمكنها الوصول إلى أقسام EXT3 ، بحيث يمكنك تهيئتها إلى EXT3 واستخدامها (مع برامج التشغيل) في كل مكان. هناك طريقة أخرى تتمثل في استخدام archiever لتخزين الملف الكبير في ملفين أو أكثر يصل حجم كل منهما إلى 4 جيجابايت. بهذه الطريقة يمكنك استخدام نظام الملفات FAT32 وهو نظام عالمي. على الكمبيوتر المضيف ، يجب عليك استخراج الأرشيف من أجل استخدامه ، ولكنها طريقة للقيام بذلك دون الحاجة إلى برامج تشغيل. استخدم أرشيف تنسيق RAR حيث يعمل على Windows و Linux و Mac ، على الرغم من أنني أعتقد أن تنسيق ZIP يمكن أن يعمل جيدًا أيضًا. لكنني سأذهب مع السائقين بمجرد تثبيت يمكنك القيام بأي شيء دون قيود. في PC لقد استخدمت Ext2Fsd للحصول على EXT2 الكامل ، EXT3 و EXT4 وصول و Macdrive للوصول إلى تنسيق MacOS الكامل. بالتأكيد توجد أدوات مشابهة لـ Linux و MacOS لتتمكن من الوصول إلى أقسام NTFS إلخ. إذا كنت تحتاج فقط إلى الوصول للقراءة ، لا تحتاج إلى أي برامج تشغيل ، يدعم Linux و MacOS قراءة أقسام NTFS ، لذلك قم بتهيئة USB كـ NTFS! إذا كانت جميع أجهزة الكمبيوتر هذه في نفس الشبكة ، فستكون الأمور أسهل! اجعل USB إما تنسيق ومشاركته على الشبكة. يجب ألا تواجه أجهزة الكمبيوتر الأخرى مشكلة في الوصول إليها!


-1
2018-02-23 23:58



-1 لأن الإجابة لا تذكر حتى UDF! - dolmen