UDF có nên và được sử dụng như một định dạng ổ cứng không?


32

Gần đây, tôi đã thấy UDF được đề xuất là giải pháp cho định dạng đa nền tảng cho một ổ đĩa được sử dụng trên Linux, Mac OS X và Windows XP trở lên.

Tôi đã tìm kiếm ở đây và không tìm thấy đề xuất tương tự (hầu hết đều đề xuất ntfs-3g có vẻ tốn tiền và không được cài đặt sẵn trên máy Mac).

Vì vậy, câu hỏi của tôi là: làm thế nào điều này được thực hiện đúng, và có ai đã làm điều này? Sau đó, bạn đã lấp đầy ổ đĩa và xóa một số tệp để tạo không gian cho thấy mọi thứ hoạt động giống như định dạng r / w thực sự mặc dù nó dường như chủ yếu là định dạng ghi một lần?

Gọi tôi là điên nhưng tôi thực sự thích nó nếu hệ thống UDF cũng tự động đếm và có thể ghi được bởi người dùng đã đăng nhập. Những gì tôi đã thử cho đến nay (định dạng udftools như được đề cập bởi kicsyromy) không giải quyết được mong muốn này.


1
Một điều rõ ràng: ntfs-3glà miễn phí. Mã nguồn của nó là miễn phí (nghĩa là có sẵn miễn phí). Nó cũng miễn phí như trong tự do . ntfs-3glà trình điều khiển NTFS trong Ubuntu! Đó là một chút kỹ thuật để xây dựng / cài đặt thủ công trên OS X và Tuxera (nhà phát triển của nó) cung cấp phiên bản phần mềm thanh toán độc quyền về cơ bản là ntfs-3gtrình điều khiển miễn phí được xây dựng và đóng gói để dễ dàng cài đặt và sử dụng trên OS X. Không có trình điều khiển bổ trợ, HĐH X sẽ chỉ đọc (không ghi) các tập NTFS, vì vậy bạn có quyền xem xét một hệ thống tập tin khác.
Eliah Kagan

@EliahKagan Vậy nếu ntfs-3g là "miễn phí" thì tại sao Apple không bao gồm nó để cho phép r / w hỗ trợ cho NTFS?
user29020

@ user29020 Tôi không biết trong khi Apple chọn không bao gồm nó, nhưng bạn có thể xác minh nó miễn phí bằng cách tải xuống mã nguồn (hiện tại là tệp này ), giải nén nó và thấy rằng COPYINGtệp đó là GNU GPL . Có lẽ Apple đã không muốn thực hiện công việc tích hợp nó để nó được sử dụng hoàn toàn từ Finder. Xem thêm tuxera.com/products/tuxera-ntfs-for-macsourceforge.net/projects/catacombae .
Eliah Kagan

1
@ user29020 Chi phí hỗ trợ (nếu đó là một lỗi nhỏ) thì sao? Hạn chế pháp lý? Miễn phí theo Giấy phép GPL GNU có nghĩa là nó chỉ có thể được thêm vào nguồn / nhị phân hiện có, lần lượt cũng có sẵn theo GPL. (LGPL sẽ cho phép nó được sử dụng làm thư viện bằng mã không GPL khác). Cho rằng mã của apple phần lớn là độc quyền và theo quy định khác của APSL không phải là giấy phép tương thích GPL, đó là một hạn chế mà họ phải tuân theo. gnu.org/philatics/apsl.html
dlamblin

Câu trả lời:


14

Không.

Chúng tôi đang ở năm 2015 tại thời điểm trả lời này. Tôi đang sử dụng OSX Yosemite, Ubuntu 14.10 và bản xem trước kỹ thuật Windows 10 cho các doanh nghiệp trên máy Mactel (Macmini 7.1).

Tôi đã thử cả UDF và exFat. Tôi sử dụng Ubuntu để phát triển và cần các quyền theo kiểu Unix.

Tất cả các hướng dẫn trước đây không áp dụng nữa: Trình điều khiển UDF đã phát triển và tất cả các hệ điều hành sẽ chấp nhận phân vùng UDF, với nhiều vấn đề và sự không ổn định hơn tôi có thể đặt tên.

  • Ổ UDF được định dạng trên Mac OS: không thể gắn trên Windows 10.
  • Ổ UDF được định dạng trên Linux: không thể được gắn trên Windows 10.
  • Ổ UDF được định dạng trên Windows 10: gắn kết đọc / ghi trên Linux, chỉ đọc trên OSX.

Tuy nhiên, Windows không cho phép bạn chỉ định kích thước khối khi định dạng âm lượng UDF và do đó, kích thước khối logic của bạn có thể khác với kích thước khối vật lý cho phân vùng.

Tôi không rõ liệu điều này có liên quan đến những khó khăn mà tôi đã cài đặt nó đọc / ghi trên OSX hay không, nhưng sau khi xóa một số tệp nhất định bằng Linux, tôi không bao giờ có thể gắn ổ đĩa lại trên OSX.

Hệ thống đi vào hoảng loạn hạt nhân và sụp đổ một cách ô nhục.

Điều này, và một loạt các câu trả lời về chủ đề này, cho thấy sự hỗ trợ không nhất quán cho định dạng này tại thời điểm này.

Dường như có nhiều cách tôi có thể sử dụng âm lượng NTFS để đạt được sự cân bằng giữa các tính năng của hệ thống tệp hiện đại, quyền kiểu Unix - tôi có thể đặt chúng - và đọc / ghi trên tất cả các hệ điều hành.


1
OSX dựa trên BSD. Vì vậy, có, đó là OSX Yosemite (10.10.2), trải qua một cơn hoảng loạn hạt nhân. Tôi đã kết thúc bằng NTFS và NTFS 3d cho OSX.
Mauro Colella


1
@Argo trạng thái tham chiếu thứ hai, "-b 512 là buộc kích thước khối hệ thống tệp bằng với kích thước khối vật lý của thanh USB, theo yêu cầu của thông số UDF. Điều chỉnh nếu bạn có may mắn có thẻ USB với một kích thước khối phù hợp hơn. " Vì vậy, nó cho phép bạn chỉ định kích thước khối nhưng nó phải được chỉ định là giá trị bắt buộc.
JDługosz

1
Windows 10 không được gắn bởi OS X / OS X không được gắn kết là do sự khác biệt trong cách mỗi hệ điều hành xử lý các bảng phân vùng. Windows 10: Cần một. Mac OS X: Cần UDF trên ổ đĩa trần, dưới dạng toàn bộ phân vùng ổ đĩa.
DrYak

2
Có một công cụ Formating mà sẽ chăm sóc của các incosistencies: github.com/JElchison/format-udf
velop

15

Ai đó đã thực hiện một số nghiên cứu về cách định dạng ổ đĩa flash bằng udf để có thể sử dụng nó trên càng nhiều hệ điều hành càng tốt. Dưới đây là những phát hiện của anh ấy (trước đây là ở đó , bây giờ ngoại tuyến):

  • Windows 7 có hỗ trợ đầy đủ lên tới UDF v2.6, nhưng kích thước khối UDF phải phù hợp với kích thước khối của thiết bị bên dưới (đối với thanh USB và hầu hết các đĩa là 512 byte; đĩa "định dạng nâng cao" là 4096 byte). Rõ ràng đĩa phải được phân vùng.

  • Linux 2.6.30 trở lên hỗ trợ UDF đầy đủ ít nhất lên tới phiên bản 2.5.

  • Mac OS X 10.5 hỗ trợ UDF hoàn toàn lên tới UDF 2.01, nhưng chỉ khi được sử dụng trên một đĩa đầy đủ, do đó không được phân vùng.

Như đã giải thích ở trên, đối với ổ cứng USB, Windows yêu cầu đĩa phải được phân vùng. Mặt khác, UDF chỉ hoạt động trong OS X khi nó được sử dụng trên một đĩa đầy đủ (không liên kết). Thật đáng ngạc nhiên, có một giải pháp hoạt động cho cả hai: có đĩa được phân vùng và không phân chia cùng một lúc.

Các bảng phân vùng DOS được lưu trữ theo byte 446-510 của bản ghi khởi động chính. Bản ghi khởi động chính này được lưu trữ trong khu vực đầu tiên trên đĩa, khu vực 0. Thông thường, phân vùng đầu tiên được chỉ định sẽ bắt đầu thêm một số kilobyte. Tuy nhiên, dường như có thể xây dựng một bảng phân vùng có phân vùng đầu tiên bắt đầu ở sector 0, do đó, kết quả là một phân vùng chứa chính bảng phân vùng. Các chương trình soạn thảo phân vùng dường như từ chối tạo ra một bảng như vậy, nhưng ít nhất các hạt nhân Linux và Windows gần đây dường như không bận tâm.

Điều tuyệt vời là UDF không (tôi cho là cố tình) sử dụng một vài kilobyte đầu tiên của phân vùng hoặc đĩa được đặt trên đó, vì vậy nơi này thực sự có thể được sử dụng để lưu trữ một bảng phân vùng cũ, đề cập đến một phân vùng kéo dài toàn bộ đĩa. Một số thử nghiệm cho thấy điều này thực sự hoạt động trên Linux, Windows và Mac OS X:

  • Gắn kết tự động đọc-ghi trong Linux 2.6.30+, Mac OS X 10.5+, Windows Vista +
  • Có thể được sử dụng chỉ đọc trong Windows XP và được sử dụng sau khi gắn kết dòng lệnh trong Linux 2.6.0+
  • Hỗ trợ các tệp lớn, quyền UNIX, tên tệp Unicode, liên kết tượng trưng, ​​liên kết cứng, v.v.

Tập lệnh để định dạng đĩa đúng cách: Tập lệnh Perl hoặc tập lệnh Bash


12

Tôi vừa thử nghiệm điều này trong một VM. Có vẻ như bạn cần (tái) tạo phân vùng của mình trong Windows gán cho nó một ký tự ổ đĩa nhưng không định dạng nó cho bất kỳ hệ thống tập tin nào. Sau đó khởi động vào Ubuntu và chỉ cần làm theo hướng dẫn và nó sẽ hoạt động để đọc / ghi.

Hãy nhớ sao lưu tất cả dữ liệu của bạn!

Trước hết hãy cài đặt các công cụ UDF:

sudo apt-get install udftools

Thay thế khối đầu tiên bằng không có gì trên phân vùng bạn muốn định dạng thành UDF ^:

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

Và cuối cùng định dạng thành UDF ^:

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

^ ở đâu bởi:

  • x là một trình giữ chỗ cho chữ cái được gán một cách cẩn thận cho ổ cứng của bạn

  • N là một giữ chỗ cho số phân vùng

Tốt nhất của may mắn và cho tôi biết nếu nó làm việc cho bạn.


Cảm ơn câu trả lời này như thế nào; Tôi vẫn sẽ quan tâm đến việc tìm hiểu xem nó có hoạt động đủ tốt với kịch bản trên không.
dlamblin

Điều này làm việc hoàn hảo cho tôi. Vấn đề duy nhất là tôi phải tự gắn kết phân vùng trong Windows bằng Disk Manager. Ngoài ra, tôi cũng có thể xác nhận rằng nó cũng hoạt động với nhiều phân vùng trên đĩa cứng (Tôi đang sử dụng 1udf + 2ext4)
Nemo

Chìa khóa ở đây dường như là thực sự tạo một phân vùng và sau đó tạo một hệ thống tệp UDF trong đó. Nếu bạn không tạo bất kỳ phân vùng nào, nó sẽ hoạt động trong Linux, nhưng nó sẽ không hoạt động trong Windows (7). Đó là kinh nghiệm của tôi.
DanMan

@DanMan Dan dường như đã tìm thấy ai đó đã giải quyết vấn đề đó và cung cấp một tập lệnh để định dạng toàn bộ đĩa bằng UDF cho Linux, Mac và Windows 7, cũng như chỉ đọc trong Win XP.
dlamblin

@kicsyromy: định dạng phân vùng (sdxN) thành UDF không hoạt động, thực thi sudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1đưa ra thông báo lỗi sau: trying to change type of multiple extents Tuy nhiên tôi đã thành công trong việc định dạng UDF bằng cách sử dụng toàn bộ đĩa (sdd) như được mô tả ở đây: superuser.com/questions/39942/USE- udf-on-a-usb-flash-drive
Tim Banchi
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.