ฉันควรฟอร์แมตฮาร์ดไดรฟ์เป็น UDF ด้วยเครื่องมือใด


32

(นี่คือการติดตามเพื่อ " พาร์ทิชัน id / ระบบไฟล์ประเภทสำหรับ UDF คืออะไร ")

ฉันรู้วิธีการฟอร์แมตฮาร์ดไดรฟ์สองวิธีเป็น UDF:

  • Windows Vista หรือใหม่กว่า: " format x: /fs:UDF" (ห้ามใช้/q!)
  • Linux: " mkudffs --media-type=hd --blocksize=512 /dev/sdx"

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

ฉันจะฟอร์แมตฮาร์ดไดรฟ์ในฐานะ UDF เพื่อให้ทั้ง Windows และ Linux สามารถใช้งานได้อย่างไร

แก้ไข: อัปเดตคำสั่งตอนนี้ผลลัพธ์ควรใช้ได้ในทั้ง OS


UDF ได้รับการออกแบบมาสำหรับสื่อออพติคอลอาจเป็นปัญหาหรือไม่
Chopper3

1
คำสั่งที่คุณให้ใช้งานได้ดีบน Linux ฉันจัดรูปแบบบน Karmic และสามารถอ่านและเขียนได้ทั้ง Windows 7 และ Karmic
Matt Joiner

4
อย่าลืมตั้งค่า MBR ก่อน (dd if = / dev / zero ของ = / dev / sdx bs = 512 count = 1) เพื่อหลีกเลี่ยงความสับสนกับตารางพาร์ติชันที่เหลือ (เนื่องจาก UDF ไม่ได้ใช้เซกเตอร์แรก)
CesarB

3
คำถามที่เกี่ยวข้อง: superuser.com/questions/39942/using-udf-on-a-usb-flash-drive
CesarB

1
ขอบคุณ Skolima นี่เยี่ยมมาก ลาก่อน FAT32 ฉันต้องระวังอย่างยิ่งที่จะติดตั้ง UDF เวอร์ชั่น 2.01 และขนาดบล็อก 512 และฉันมีพาร์ติชั่นฮาร์ดดิสก์ที่สมบูรณ์แบบที่ใช้ร่วมกันบน Linux และ Windows
MarcH

คำตอบ:


17

ปรากฎว่าการใช้/qสวิตช์บน Windows เป็นสาเหตุของความผิดพลาด: เปิดใช้งาน 'ฟอร์แมตแบบรวดเร็ว' นั่นคือกระบวนการฟอร์แมตจะดำเนินการต่อในพื้นหลังพร้อมการเขียนทุกครั้งที่ทำบนดิสก์ เมื่อเสร็จสิ้นแล้ว Linux จะจัดการไดรฟ์ได้ดี


ในทางกลับกันการจัดรูปแบบด้วย mkudffs ของ Linux ดูเหมือนว่าจะเสร็จสมบูรณ์ในไม่กี่วินาที
MarcH

จริง ๆ แล้วฉันต้องทำการฟอร์แมตแบบด่วนใน Win7 หลังจากสร้างระบบไฟล์ด้วย mkudffs ใน Linux หากไม่มี Windows ก็ต้องการฟอร์แมตไดรฟ์ มันจบลงด้วยการสร้างพื้นที่ว่าง 5MB ในตอนท้ายของไดรฟ์ไม่ว่าด้วยเหตุผลใดก็ตาม แต่อย่างน้อยก็ใช้งานได้ทั้งในระบบปฏิบัติการตอนนี้
DanMan

ในการตอบกลับด้วยตนเอง: 5MB นั้นอาจเป็นบล็อกข้อมูลเมตาใน UDF รุ่นล่าสุด
DanMan

1
ผิดอย่างสิ้นเชิง! การจัดรูปแบบด่วนไม่ใช่ "การจัดรูปแบบต่อเนื่องในพื้นหลัง" มันเป็นเพียงการเริ่มต้นของระบบไฟล์โดยไม่ต้องจัดรูปแบบแทร็ค
Anixx

6

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

แรงบันดาลใจจากคำตอบที่เชื่อมโยงข้างต้น (และการวิจัย / การทดสอบอื่น ๆ ของฉัน) ฉันเขียนสคริปต์เพื่อทำให้กระบวนการจัดรูปแบบใน UDF เป็นแบบอัตโนมัติโดยใช้ขนาดเซกเตอร์ที่ตรวจพบได้อย่างถูกต้อง ดูรูปแบบ UDF บน GitHub คุณสมบัติที่โดดเด่น:

  • จัดรูปแบบไดรฟ์บล็อก (ฮาร์ดไดรฟ์หรือแฟลชไดรฟ์) ในรูปแบบดิสก์สากล (UDF)
    • UDF revision 2.01 ใช้เพื่อความเข้ากันได้สูงสุด
    • 4096 ภาคแรกจะถูก zeroed out เพื่อลบ MBR ที่มีอยู่ (จำเป็นสำหรับการตรวจจับ UDF ที่เหมาะสม)
  • ระบบไฟล์ที่เป็นผลลัพธ์สามารถอ่าน / เขียนข้ามตระกูลของระบบปฏิบัติการหลายระบบ (Windows, OS X และ Linux)
  • ทำงานบนระบบปฏิบัติการใด ๆ ที่มีสภาพแวดล้อม Bash

เนื่องจากจุดสุดท้ายสคริปต์นี้ฉันเขียนไม่สามารถใช้บน Windows อย่างไรก็ตามสคริปต์จะทำงานบน OS X และ Linux หลังจากทำเช่นนั้น Windows จะสามารถตรวจจับไดรฟ์ UDF ที่จัดรูปแบบใหม่ได้อย่างน่าอัศจรรย์

หากต้องการตอบคำถามที่โพสต์โดยตรง format-udf จะ:

  • เลือกเครื่องมือที่เหมาะสมสำหรับการจัดรูปแบบตามระบบปฏิบัติการและสภาพแวดล้อม ( mkudffsบน Linux)
  • ตรวจจับและเติมพารามิเตอร์ทั้งหมดที่จำเป็นสำหรับการจัดรูปแบบโดยอัตโนมัติ (รวมถึงblocksize)
  • เพิ่มความเข้ากันได้ของระบบปฏิบัติการให้สูงสุด (ดูที่หน้า GitHub สำหรับแผนภูมิความเข้ากันได้)
  • ให้ผลสูงสุดชุดคุณสมบัติ (และข้อ จำกัด น้อยที่สุด) ที่ถามหา

5

คุณปรับการค้นพบของคุณในคำถามก่อนหน้านี้อย่างไร (ระบบไฟล์ UDF ควรถูกสร้างขึ้นบนดิสก์ทั้งหมดไม่ใช่พาร์ติชั่น) ด้วยคำสั่ง Windows นั้น ("format x: / fs: UDF") ในความพยายามของฉัน Windows ให้ตัวอักษรไดรฟ์กับพาร์ติชันเท่านั้น

เท่าที่การจัดรูปแบบเพื่อความเข้ากันได้ฉันคิดว่ากุญแจอยู่ในขนาดบล็อก เนื่องจากฮาร์ดไดรฟ์และ USB flash sticks ส่วนใหญ่มีขนาดบล็อก 512 ไบต์ฉันจึงมีความเข้ากันได้มากที่สุดเมื่อฉันสร้าง FS ขนาดบล็อกนั้น ฉันคิดว่า format.com กำลังใช้ขนาดบล็อกนั้นและ mkudffs มีสวิตช์คำสั่งสำหรับเปลี่ยนขนาดบล็อก ฉันสามารถรับ OS X และ Windows เพื่อติดตั้งระบบไฟล์ได้เมื่อฉันใช้บล็อกขนาด 512 ไบต์ Linux เวอร์ชันที่เก่ากว่าถือว่าขนาดบล็อกเป็น 2048 แต่คุณสามารถเมานต์ได้ด้วย "-o bs = 512"

ปัญหาเกี่ยวกับพาร์ทิชัน vs disk ทั้งหมดยังคงทำให้เกิดปัญหาความเข้ากันได้ Windows จะไม่ต่อเชื่อมเมื่อฉันฟอร์แมตดิสก์ทั้งหมดและ OS X จะไม่ดูเกินกว่าหมายเลขประเภทของพาร์ติชันเมื่อพิจารณาระบบไฟล์ของมันบังคับให้ฉันต้องติดตั้งด้วยตนเอง Linux ไม่สนใจตราบใดที่ฉันให้ชื่ออุปกรณ์ที่เหมาะสม (sda vs sda1)

โดยสรุปการตั้งค่าที่เข้ากันได้มากที่สุดที่ฉันพบคือพาร์ติชัน singe ประเภท 06 (FAT16) ซึ่งจัดรูปแบบด้วย UDF ที่ขนาดบล็อก 512 ทำงานโดยอัตโนมัติบน Windows และการแทรกแซงด้วยตนเองเล็กน้อยบน Linux และ OS X


3
ฉันลองการทดลองอื่น ครั้งนี้ฉันใช้แฟลชไดรฟ์ USB แทนฮาร์ดไดรฟ์ จัดรูปแบบด้วย "mkudffs --media-type = hd --blocksize = 512 / dev / sda" ทำงานโดยไม่ต้องวุ่นวายกับ Linux, OS X และ Vista Windows แย่เกินไปดูเหมือนว่าจะอนุญาตรูปแบบพาร์ติชันบน USB sticks แต่ไม่ใช่ฮาร์ดไดรฟ์
Simon

แน่นอนคุณต้องการให้บล็อกขนาดเดียวกันก่อนเวลาอันควรที่จะหลีกเลี่ยงการสวมใส่หน่วยความจำแฟลชดู: lwn.net/Articles/428584
มีนาคม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.