UDF สามารถและควรใช้เป็นรูปแบบฮาร์ดไดรฟ์หรือไม่?


32

หลายครั้งเมื่อเร็ว ๆ นี้ฉันเคยเห็น UDF แนะนำว่าเป็นวิธีการแก้ปัญหารูปแบบข้ามแพลตฟอร์มสำหรับไดรฟ์ที่ใช้บน Linux, Mac OS X และ Windows XP ขึ้นไป

ฉันค้นหาที่นี่และไม่พบข้อเสนอแนะเดียวกัน (ส่วนใหญ่จะแนะนำ ntfs-3g ซึ่งดูเหมือนว่าจะเสียเงินและไม่ได้ติดตั้งไว้ใน Mac)

ดังนั้นคำถามของฉันคือ: วิธีนี้ถูกต้องและมีใครทำเช่นนี้? คุณเติมไดรฟ์และลบไฟล์บางไฟล์แล้วเพื่อให้มีพื้นที่ในการค้นหาว่าทุกอย่างทำงานในรูปแบบ r / w จริงแม้ว่าดูเหมือนว่าจะเป็นรูปแบบการเขียนครั้งแรก

โทรหาฉันบ้า แต่ฉันชอบจริงๆถ้าระบบ UDF จะเปิดอัตโนมัติและสามารถเขียนได้โดยผู้ใช้ที่ล็อกอิน สิ่งที่ฉันได้ลองมาจนถึงตอนนี้ (การจัดรูปแบบ udftools ตามที่กล่าวไว้โดย kicsyromy) ไม่ได้ตอบสนองความต้องการนี้


1
หนึ่งคำชี้แจง: ntfs-3gฟรี ซอร์สโค้ดของมันคือฟรี (เช่นไม่มีค่าใช้จ่าย) นอกจากนี้ยังเป็นอิสระอย่างอิสระ ntfs-3gเป็นไดรเวอร์ NTFS ในอูบุนตู! เป็นเทคนิคเล็กน้อยที่จะสร้าง / ติดตั้งด้วยตนเองบน OS X และ Tuxera (ผู้พัฒนา) เสนอรุ่นของเครื่องจ่ายที่เป็นกรรมสิทธิ์ซึ่งโดยพื้นฐานแล้วเป็นntfs-3gไดรเวอร์ฟรีที่สร้างขึ้นและจัดทำแพคเกจสำหรับการติดตั้งและใช้งานง่ายบน OS X โดยไม่ต้องใช้ไดรเวอร์เสริม X จะอ่าน (ไม่เขียน) ไดรฟ์ข้อมูล NTFS เท่านั้นดังนั้นคุณจึงควรพิจารณาระบบไฟล์อื่น
Eliah Kagan

@EliahKagan ดังนั้นถ้า ntfs-3g เป็น "ฟรี" แล้วทำไม Apple ถึงไม่รวมมันเพื่อให้สามารถรองรับ NTFS r / w ได้?
user29020

@ user29020 ผมไม่ทราบว่าในขณะที่แอปเปิ้ลเลือกที่จะไม่รวมถึง แต่คุณสามารถตรวจสอบได้ฟรีโดยการดาวน์โหลดซอร์สโค้ด (ปัจจุบันไฟล์นี้ ) สกัดมันและเห็นว่าCOPYINGไฟล์เป็นGNU GPL บางที Apple อาจไม่ต้องการรวมการทำงานเข้าด้วยกันเพื่อให้สามารถใช้งานได้อย่างราบรื่นจาก Finder ดูเพิ่มเติมtuxera.com/products/tuxera-ntfs-for-macและsourceforge.net/projects/catacombae
Eliah Kagan

1
@ user29020 ค่าใช้จ่ายในการสนับสนุน (ถ้าเป็นรถเล็ก) ข้อ จำกัด ทางกฎหมาย? ฟรีภายใต้สิทธิ์ใช้งาน GNU GPL หมายความว่าสามารถเพิ่มลงในแหล่งที่มา / ไบนารีที่มีอยู่ซึ่งยังสามารถใช้งานได้ภายใต้ GPL (LGPL จะอนุญาตให้ใช้เป็นห้องสมุดด้วยรหัสอื่นที่ไม่ใช่ GPL) เนื่องจากรหัสของแอปเปิลนั้นเป็นกรรมสิทธิ์ส่วนใหญ่และภายใต้ APSL ซึ่งไม่ใช่ใบอนุญาตที่เข้ากันได้กับ GPL นั่นเป็นข้อ จำกัด ที่พวกเขาต้องปฏิบัติตาม gnu.org/philosophy/apsl.html
dlamblin

คำตอบ:


14

เลขที่

เราอยู่ในปี 2558 ในเวลาที่ตอบกลับนี้ ฉันใช้ OSX Yosemite, Ubuntu 14.10 และตัวอย่างทางเทคนิคของ Windows 10 สำหรับองค์กรในเครื่อง Mactel (Macmini 7,1)

ฉันลองทั้ง UDF และ exFat ฉันใช้ Ubuntu เพื่อการพัฒนาและต้องการสิทธิ์แบบ Unix

คำแนะนำในอดีตทั้งหมดไม่สามารถใช้งานได้อีกต่อไป:ไดรเวอร์ UDF ได้รับการพัฒนาและระบบปฏิบัติการทั้งหมดจะยอมรับพาร์ติชัน UDF ที่มีปัญหาและความเสถียรมากกว่าที่ฉันสามารถตั้งชื่อได้

  • รูปแบบไดรฟ์ UDF บน Mac OS: ไม่สามารถติดตั้งบน Windows 10
  • รูปแบบไดรฟ์ UDF บน Linux: ไม่สามารถติดตั้งบน Windows 10
  • ไดรฟ์ UDF ที่จัดรูปแบบบน Windows 10: เมานต์อ่าน / เขียนบน Linux อ่านอย่างเดียวบน OSX

อย่างไรก็ตาม Windows ไม่อนุญาตให้คุณระบุขนาดบล็อกเมื่อทำการฟอร์แมตวอลุ่ม UDF และด้วยเหตุนี้ขนาดบล็อกโลจิคัลของคุณอาจแตกต่างจากขนาดฟิสิคัลบล็อกสำหรับพาร์ติชัน

ฉันไม่ชัดเจนว่าสิ่งนี้เกี่ยวข้องกับปัญหาที่ติดตั้งไว้บนอ่าน / เขียนบน OSX หรือไม่ แต่หลังจากลบไฟล์จำนวนหนึ่งโดยใช้ Linux ฉันไม่สามารถติดตั้งไดรฟ์อีกครั้งบน OSX ได้

ระบบเข้าสู่ความตื่นตระหนกของเคอร์เนลและล้มเหลวอย่างน่าเสียดาย

สิ่งนี้และคำตอบที่หลากหลายในเรื่องนี้ระบุถึงการสนับสนุนที่ไม่สอดคล้องกันสำหรับรูปแบบนี้ ณ จุดนี้

ดูเหมือนว่าจะมีวิธีที่ฉันสามารถใช้โวลุ่มNTFSเพื่อให้เกิดความสมดุลระหว่างคุณสมบัติของระบบไฟล์ที่ทันสมัยการอนุญาต Unix สไตล์ฉันอาจสามารถตั้งค่า - และติดตั้งการอ่าน / เขียนบนระบบปฏิบัติการทั้งหมด


1
OSX ขึ้นอยู่กับ BSD ดังนั้นใช่มันเป็น OSX Yosemite (10.10.2) ซึ่งพบกับความตื่นตระหนกของเคอร์เนล ฉันลงเอยด้วยการใช้ NTFS และ NTFS 3d สำหรับ OSX
Mauro Colella


1
@ มาถึงสถานะอ้างอิงที่สอง "-b 512 คือการบังคับขนาดบล็อกระบบไฟล์ให้เท่ากับขนาดบล็อกฟิสิคัลของแท่ง USB ตามที่กำหนดโดยข้อกำหนด UDF ปรับถ้าคุณโชคดีที่มีแท่ง USB กับ ขนาดบล็อกที่เหมาะสมยิ่งขึ้น " ดังนั้นจะช่วยให้คุณระบุขนาดบล็อก แต่ต้องระบุว่าเป็นค่าที่ต้องการ
JDługosz

1
Windows 10 ที่ไม่ได้ประกอบเข้าด้วย OS X / OS X ที่ไม่ได้ต่อเชื่อมนั้นมีสาเหตุมาจากความแตกต่างของวิธีการที่แต่ละ OS จัดการตารางพาร์ติชัน Windows 10: จำเป็นต้องมีหนึ่ง Mac OS X: ต้องการให้ UDF อยู่ในไดรฟ์เปล่าเนื่องจากเป็นพาร์ติชันทั้งหมด
DrYak

2
: มีเครื่องมือ formating ซึ่งดูแล incosistencies เป็นgithub.com/JElchison/format-udf
velop

15

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

  • Windows 7มีการรองรับเต็มที่ถึง UDF v2.6 แต่ขนาดบล็อก UDF ต้องตรงกับขนาดบล็อกของอุปกรณ์ที่รองรับ (ซึ่งสำหรับ USB-sticks และดิสก์ส่วนใหญ่คือ 512 ไบต์ส่วนดิสก์ "ฟอร์แมตขั้นสูง" คือ 4096 ไบต์) เห็นได้ชัดว่าดิสก์จะต้องแบ่งพาร์ติชัน

  • Linux 2.6.30และสูงกว่ารองรับ UDF อย่างน้อยสูงสุด 2.5 รุ่น

  • Mac OS X 10.5รองรับ UDF เต็มที่จนถึง UDF 2.01 แต่เฉพาะเมื่อใช้กับดิสก์แบบเต็มดังนั้นจึงไม่ได้แบ่งพาร์ติชัน

ตามที่อธิบายไว้ข้างต้นสำหรับฮาร์ดไดรฟ์ USB Windows ต้องใช้ดิสก์เพื่อแบ่งพาร์ติชัน อีกด้านหนึ่ง UDF ใช้งานได้ใน OS X เท่านั้นเมื่อใช้กับดิสก์แบบเต็ม (ไม่แบ่งพาร์ติชัน) ค่อนข้างแปลกใจมีวิธีแก้ปัญหาที่เหมาะสำหรับทั้งสอง: การแบ่งพาร์ติชันดิสก์และไม่แบ่งพาร์ติชันในเวลาเดียวกัน

ตารางพาร์ติชัน DOS ถูกเก็บในไบต์ 446-510 ของมาสเตอร์บูตเรกคอร์ด มาสเตอร์บูตเรกคอร์ดนี้ถูกเก็บไว้ในเซกเตอร์แรกบนดิสก์เซกเตอร์ 0 โดยทั่วไปพาร์ติชันแรกที่ระบุจะเริ่มบางกิโลไบต์เพิ่มเติม อย่างไรก็ตามดูเหมือนว่าเป็นไปได้ที่จะสร้างตารางพาร์ติชันซึ่งมีพาร์ติชันแรกเริ่มที่เซกเตอร์ 0 ดังนั้นผลลัพธ์คือพาร์ติชันที่มีตารางพาร์ติชันอยู่ โปรแกรมตัวแก้ไขพาร์ติชันดูเหมือนจะปฏิเสธที่จะสร้างตาราง แต่อย่างน้อยเคอร์เนล Linux และ Windows ล่าสุดก็ดูเหมือนจะไม่น่ารำคาญ

สิ่งที่ดีคือ UDF ไม่ได้ (ฉันคิดว่าจงใจ) ใช้สองสามกิโลไบต์แรกของพาร์ติชันหรือดิสก์ที่วางไว้ดังนั้นสถานที่นี้สามารถใช้เพื่อจัดเก็บตารางพาร์ติชันแบบดั้งเดิมได้โดยอ้างถึงพาร์ติชันที่ครอบคลุมทั้งหมด ดิสก์. การทดสอบบางอย่างแสดงให้เห็นว่าสิ่งนี้ใช้งานได้จริงบน Linux, Windows และ Mac OS X:

  • เมาท์อ่าน - เขียนโดยอัตโนมัติใน Linux 2.6.30+, Mac OS X 10.5+, Windows Vista +
  • สามารถใช้แบบอ่านอย่างเดียวใน Windows XP และสามารถใช้หลังจากเมานต์บรรทัดคำสั่งใน Linux 2.6.0+
  • รองรับไฟล์ขนาดใหญ่, การอนุญาต UNIX, ชื่อไฟล์ Unicode, symlink, hardlinks เป็นต้น

สคริปต์เพื่อจัดรูปแบบดิสก์อย่างถูกต้อง: สคริปต์ Perlหรือสคริปต์ทุบตี


12

ฉันเพิ่งทดสอบสิ่งนี้ใน VM ดูเหมือนว่าคุณจะต้องสร้างพาร์ติชันของคุณใน Windows ใหม่เพื่อกำหนดอักษรระบุไดรฟ์ แต่ไม่ต้องฟอร์แมตไปที่ระบบไฟล์ใด ๆ หลังจากนั้นให้บู๊ตเข้าสู่ Ubuntu และเพียงทำตามคำแนะนำและควรทำงานเพื่ออ่าน / เขียน

อย่าลืมสำรองข้อมูลทั้งหมดของคุณ!

ก่อนปิดการติดตั้งเครื่องมือ UDF:

sudo apt-get install udftools

แทนที่บล็อกแรกด้วยไม่มีอะไรบนพาร์ติชันที่คุณต้องการจัดรูปแบบเป็น UDF ^:

sudo dd if=/dev/zero of=/dev/sdxN bs=512 count=1

และรูปแบบสุดท้ายเป็น UDF ^:

sudo mkudffs --media-type=hd --blocksize=512 /dev/sdxN

^ โดย:

  • x เป็นตัวยึดสำหรับจดหมายที่มอบหมายให้ hardisk ของคุณ

  • N เป็นตัวยึดสำหรับหมายเลขพาร์ติชัน

ขอให้โชคดีและแจ้งให้เราทราบหากคุณได้ผล


ขอบคุณนี้ตอบวิธี; ฉันจะยังคงสนใจในการค้นหาว่ามันทำงานได้ดีพอกับสถานการณ์ข้างต้น
dlamblin

มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน ปัญหาเดียวคือฉันต้องติดตั้งพาร์ติชันใน Windows ด้วยตนเองโดยใช้ Disk Manager นอกเหนือจากนั้นฉันสามารถยืนยันได้ว่าสามารถใช้งานได้กับหลายพาร์ติชันบนฮาร์ดดิสก์เช่นกัน (ฉันใช้ 1udf + 2ext4)
Nemo

กุญแจสำคัญในที่นี้ดูเหมือนจะเป็นการสร้างพาร์ติชันจริง ๆ แล้วสร้างระบบไฟล์ UDF ในนั้น หากคุณไม่ได้สร้างพาร์ติชันใด ๆ พาร์ติชันนั้นจะทำงานใน Linux แต่จะไม่ทำงานใน Windows (7) นั่นคือประสบการณ์ของฉัน
DanMan

@DanMan Dan ดูเหมือนว่าจะพบคนที่แก้ไขปัญหานั้นและให้สคริปต์สำหรับการจัดรูปแบบดิสก์ทั้งหมดด้วย UDF สำหรับ Linux, Mac และ Windows 7 รวมถึงอ่านอย่างเดียวใน Win XP
dlamblin

@kicsyromy: การจัดรูปแบบพาร์ติชัน (sdxN) ไปยัง UDF ไม่ทำงานการดำเนินการsudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1ให้ข้อความแสดงข้อผิดพลาดต่อไปนี้: trying to change type of multiple extents อย่างไรก็ตามฉันประสบความสำเร็จในการจัดรูปแบบ UDF โดยใช้ดิสก์ทั้งหมด (sdd) ตามที่อธิบายไว้ที่นี่: superuser.com/questions/39942/using- udf-on-a-usb-flash-drive
Tim Banchi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.