Với công cụ nào tôi nên định dạng ổ cứng là UDF?


32

(Đây là phần tiếp theo của " Loại hệ thống tập tin / id phân vùng cho UDF là gì? ")

Tôi biết hai cách để định dạng ổ cứng là UDF:

  • Windows Vista trở lên: " format x: /fs:UDF" (không sử dụng /q!)
  • Linux: " mkudffs --media-type=hd --blocksize=512 /dev/sdx"

Vấn đề là hệ điều hành 'khác' không nhận ra đĩa là định dạng nào cả: nó chỉ đơn giản là từ chối gắn nó, bất kể tôi thử lệnh nào.

Làm cách nào tôi có thể định dạng ổ cứng là UDF để cả Windows và Linux đều có thể sử dụng?

EDIT: đã cập nhật các lệnh, bây giờ kết quả sẽ hoạt động trong cả hai hệ điều hành.


UDF được thiết kế cho phương tiện quang học, có lẽ đó là vấn đề?
Chopper3

1
Lệnh bạn đưa ra hoạt động rất tốt trên Linux. Tôi định dạng trên Karmic và có thể đọc và viết trong cả Windows 7 và Karmic.
Matt Joiner

4
Đừng quên zero MBR trước (dd if = / dev / zero of = / dev / sdx bs = 512 Count = 1), để tránh nhầm lẫn với bất kỳ bảng phân vùng còn sót lại nào (vì UDF không sử dụng cung đầu tiên).
CesarB


1
Cảm ơn Skolima, điều này thật tuyệt. Tạm biệt FAT32. Tôi chỉ cần cẩn thận để bám vào UDF phiên bản 2.01 và kích thước khối 512 và tôi có phân vùng đĩa cứng hoàn hảo được chia sẻ trên Linux và Windows.
MarcH

Câu trả lời:


17

Hóa ra, việc sử dụng công /qtắc trên Windows là thủ phạm: nó cho phép 'định dạng nhanh', tức là quá trình định dạng tiếp tục ở chế độ nền với mỗi lần ghi vào đĩa. Khi nó kết thúc, ổ đĩa được Linux xử lý tốt.


Mặt khác, định dạng với mkudffs của Linux dường như hoàn thành một cách thành công trong vài giây.
MarcH

Tôi thực sự phải thực hiện một định dạng nhanh trong Win7 sau khi tạo hệ thống tệp với mkudffs trong Linux. Không có điều đó, Windows chỉ muốn định dạng ổ đĩa. Nó đã kết thúc việc tạo ra một không gian trống 5 MB ở cuối ổ đĩa, vì bất kỳ lý do gì. Nhưng ít nhất nó hoạt động trong cả hai hệ điều hành.
DanMan

Trả lời bản thân tôi: 5 MB đó có thể là khối dữ liệu meta trong các phiên bản UDF gần đây.
DanMan

1
Hoàn toàn sai! Định dạng nhanh KHÔNG phải là "định dạng tiếp tục trong nền". Nó chỉ là khởi tạo hệ thống tập tin mà không định dạng các bản nhạc.
Anixx

6

Khi định dạng UDF, một điều không thể nhấn mạnh đủ là tầm quan trọng của việc sử dụng kích thước khối phù hợp khi định dạng UDF. Như đã giải thích ở đây , sử dụng kích thước khối được định cấu hình không khớp với kích thước khu vực vật lý có thể có nghĩa là một số hệ điều hành sẽ không thể phát hiện ổ đĩa là UDF hợp lệ.

Lấy cảm hứng từ câu trả lời được liên kết ở trên (và nghiên cứu / thử nghiệm khác của tôi), tôi đã viết một tập lệnh để tự động hóa quá trình định dạng trong UDF - sử dụng kích thước khu vực được phát hiện đúng. Xem định dạng-udf trên GitHub . Các tính năng đáng chú ý:

  • Định dạng ổ đĩa khối (ổ cứng hoặc ổ Flash) ở Định dạng đĩa chung (UDF)
    • Bản sửa đổi UDF 2.01 được sử dụng để tương thích tối đa
    • 4096 lĩnh vực đầu tiên được loại bỏ để xóa mọi MBR hiện có (cần thiết để phát hiện UDF thích hợp)
  • Hệ thống tệp kết quả có thể được đọc / ghi trên nhiều họ hệ điều hành (Windows, OS X và Linux)
  • Chạy trên mọi hệ điều hành có môi trường Bash

Vì điểm cuối cùng, tập lệnh này tôi viết không thể được sử dụng trên Windows. Tuy nhiên, tập lệnh sẽ chạy trên OS X và Linux. Sau khi làm như vậy, Windows sẽ có thể phát hiện một cách kỳ diệu ổ đĩa UDF mới được định dạng.

Để trả lời trực tiếp các câu hỏi được đăng, format-udf sẽ:

  • chọn công cụ thích hợp để định dạng dựa trên hệ điều hành và môi trường ( mkudffstrên Linux)
  • tự động phát hiện và điền vào tất cả các tham số cần thiết để định dạng (bao gồm blocksize)
  • tối đa hóa khả năng tương thích hệ điều hành (xem trang GitHub để biết biểu đồ tương thích)
  • mang lại bộ tính năng tối đa (và giới hạn tối thiểu) mà người hỏi đang tìm kiếm

5

Làm thế nào bạn điều hòa khám phá của bạn trong câu hỏi trước (rằng hệ thống tệp UDF nên được tạo trên toàn bộ đĩa chứ không phải phân vùng) với lệnh Windows đó ("format x: / fs: UDF")? Trong nỗ lực của tôi, Windows chỉ cung cấp các ký tự ổ đĩa cho các phân vùng.

Theo định dạng để tương thích, tôi nghĩ rằng khóa nằm ở kích thước khối. Vì hầu hết các ổ đĩa cứng và thẻ nhớ flash USB có kích thước khối 512 byte, tôi đã có khả năng tương thích cao nhất khi tôi tạo ra kích thước khối đó. Tôi nghĩ format.com đang sử dụng kích thước khối đó và mkudffs có một công tắc lệnh để thay đổi kích thước khối. Tôi chỉ có thể có được OS X và Windows để gắn kết hệ thống tập tin khi tôi sử dụng các khối 512 byte. Các phiên bản cũ hơn của Linux giả định kích thước khối là 2048, nhưng bạn luôn có thể gắn kết với "-o bs = 512".

Toàn bộ vấn đề đĩa và phân vùng vẫn gây ra vấn đề tương thích. Windows sẽ không gắn kết khi tôi định dạng toàn bộ đĩa và OS X không nhìn xa hơn số loại của phân vùng khi xác định hệ thống tệp của nó, buộc tôi phải gắn thủ công. Linux không quan tâm, miễn là tôi đặt cho nó tên thiết bị phù hợp (sda vs sda1).

Tóm lại, thiết lập tương thích nhất mà tôi tìm thấy là phân vùng singe loại 06 (FAT16), được định dạng bằng UDF ở kích thước khối 512. Hoạt động tự động trên Windows và một chút can thiệp thủ công vào Linux và OS X.


3
Tôi đã thử một thí nghiệm khác. Lần này tôi sử dụng thẻ nhớ USB thay vì ổ cứng. Được định dạng với "mkudffs --media-type = hd --blocksize = 512 / dev / sda", hoạt động mà không gặp rắc rối trên Linux, OS X và Vista. Windows quá tệ dường như cho phép các định dạng không phân vùng trên thanh USB nhưng không phải ổ cứng.
Simon

Bạn chắc chắn muốn giữ cùng kích thước khối để tránh việc sử dụng bộ nhớ flash sớm, xem: lwn.net/Articles/428584
MarcH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.