Loại id / hệ thống tập tin phân vùng cho UDF là gì?


10

Điều này có thể không quan trọng để kiểm tra bằng cfdisk trên CD / DVD / Blu-Ray có định dạng UDF, nhưng tôi không có chúng trong tay.

Tôi đã tạo một phân vùng định dạng UDF trên ổ cứng USB để chia sẻ dữ liệu giữa các máy tính Linux và Windows (FAT không xử lý các tệp 4GB, hỗ trợ quyền truy cập NTFS không ổn định trong Linux). Bây giờ tôi chỉ có một vấn đề - Windows từ chối gắn phân vùng vì id loại hệ thống tệp được đặt thành '83' ('Linux'). Tôi đã nhìn khá rộng rãi và không thể tìm thấy số nào tôi nên đặt ở đó?

(theo dõi: " Với công cụ nào tôi nên định dạng ổ cứng là UDF? ")


2
Tôi không nghĩ rằng bạn sẽ nhận được bất kỳ kết quả có ý nghĩa nào từ việc thực thi cfdisk trên CD, DVD hoặc Blu-Ray. Các phân vùng được thiết lập bởi một vài byte MBR, tồn tại trong ổ cứng và ổ đĩa bút, không phải trong đĩa mềm hoặc phương tiện quang học.
Juliano

Câu trả lời:


9

Câu trả lời là loại phân vùng 06 (FAT16). Đừng hỏi tôi tại sao, hãy hỏi Microsoft.


Hơn 5 năm sau, câu trả lời đơn giản này đã giúp tôi rất nhiều. Cảm ơn bạn user48160, bất cứ ai và dù bạn đang ở đâu!
JakeGould

6

Hóa ra không có bảng phân vùng cho UDF và không có ID phân vùng được gán cho nó. Hệ thống tập tin này phải mở rộng toàn bộ đĩa trong oder để được Windows nhận ra. Định dạng ổ đĩa cứng vì UDF không chạm vào bảng phân vùng hiện có (hãy cẩn thận - nó sẽ chứa thông tin cũ và nếu bạn gắn ổ đĩa của mình bằng cách sử dụng nó, bạn sẽ phá hủy dữ liệu!).

Vì tò mò - UDF 2.5 và mới hơn tạo các phân vùng riêng (một hoặc hai trên mỗi đĩa) cho siêu dữ liệu. Tuy nhiên, các phân vùng đó cũng không hiển thị trong bảng phân vùng DOS tiêu chuẩn.


1
Chỉ cần định dạng là UDF một trong những phân vùng logic (MBR) trên ổ cứng của tôi và Windows 7 không có vấn đề gì với nó
MarcH

@MarcH: vậy ID phân vùng nào Windows hoặc một số công cụ báo cáo phân vùng là có? (gặp khó khăn để đưa ra các câu hỏi, xin lỗi nếu nó bị bệnh hình thành)
ata

@Juaco cuộn xuống để trả lời. Hoặc có một cái nhìn tại BOOTICE.
MarcH

Một số công cụ phân vùng cho phép bạn tạo phân vùng mà không cần hệ thống tệp. Chính xác những gì bạn cần để gán cho nó một ký tự ổ đĩa trong Windows và sau đó định dạng UDF nó.
DanMan

3

Câu trả lời ngắn: Tôi sẽ đề nghị sử dụng MBR id 0x07 cho các phân vùng UDF.


Câu trả lời dài:

Linux không quan tâm đến id phân vùng MBR và bỏ qua nó (*).

Windows 2000 và mới hơn có thể gán ký tự ổ đĩa cho một số phân vùng với id Phân loại id khi và chỉ khi IsRecognizedPartition (PartitionType) là đúng. Ngoài ra, đối với các phân vùng không phải FT phải cho rằng IsFTPartition (PartitionType) là sai (nếu không thì phân vùng đó được phát hiện là FT và không phải là FAT / NTFS / UDF / ... thông thường.

Điều kiện IsRecognizedPartition (PartitionType) &&! IsFTPartition (PartitionType) áp dụng cho các id phân vùng MBR này: 0x01, 0x04, 0x06, 0x07, 0x0B, 0x0C, 0x0E (**). Điều đó có nghĩa là Windows 2000 (và mới) có thể nhận ra và sử dụng phân vùng UDF nếu id phân vùng MBR là một trong số đó. Có lẽ không có hạn chế nào khác và bất kỳ hệ thống tệp được hỗ trợ nào cũng chấp nhận phân vùng với bất kỳ id MBR nào. Điều đó có nghĩa là các id MBR đó không được sử dụng để phát hiện hệ thống tệp.

Nhưng có một số khuyến nghị của Microsoft khi sử dụng Phân loại cụ thể:

  • 0x01 - Phân vùng chính hoặc ổ đĩa logic FAT12 (có ít hơn 32.680 cung trong ổ đĩa)
  • 0x04 - Phân vùng hoặc ổ đĩa logic1616 (32.680, 656535 hoặc 16 MB, 33 MB)
  • 0x06 - Phân vùng hoặc ổ đĩa logic BIGDOS FAT16 (33 MB, 4 GB)
  • 0x07 - Hệ thống tệp có thể cài đặt (phân vùng NTFS hoặc ổ đĩa logic)
  • 0x0B - Phân vùng FAT32 hoặc ổ đĩa logic
  • 0x0C - Phân vùng FAT32 hoặc ổ đĩa logic sử dụng phần mở rộng BIOS INT 13h (***)
  • 0x0E - Phân vùng hoặc ổ đĩa logic BIGDOS FAT16 sử dụng phần mở rộng BIOS INT 13h (***)

Và cũng có nghĩa bởi Microsoft:

  • 0x01 - Chỉ định phân vùng có các mục nhập 12 bit.
  • 0x04 - Chỉ định phân vùng có các mục nhập 16 bit.
  • 0x06 - Chỉ định phân vùng lớn MS-DOS V4.
  • 0x07 - Chỉ định phân vùng IFS.
  • 0x0B - Chỉ định phân vùng FAT32.
  • 0x0C - Windows 95/98: Chỉ định phân vùng sử dụng các dịch vụ INT 13 mở rộng.

Trên Wikipedia cũng có thể được tìm thấy một số khuyến nghị:

  • 0x01 - CHS / LBA - DOS 2.0+ - FAT12 làm phân vùng chính trong 32 MB vật lý đầu tiên của đĩa ... (thay vào đó sử dụng 0x06 thay thế)
  • 0x04 - CHS / LBA - DOS 3.0+ - FAT16 với ít hơn 65536 cung (32 MB) ... (thay vào đó sử dụng 0x06 thay thế)
  • 0x06 - CHS / LBA - DOS 3.31+ - FAT16B với 65536 ngành trở lên. Nó phải nằm trong 8 GB vật lý đầu tiên ... (thay vào đó sử dụng 0x0E). Cũng được sử dụng cho các ổ đĩa FAT12 và FAT16 trong các phân vùng chính nếu chúng không nằm trong 32 MB vật lý đầu tiên của đĩa.
  • 0x07 - CHS / LBA - HĐH / 2 1.2+, Windows NT / CE - IFS / HPFS / NTFS / exFAT / QNX
  • 0x0B - CHS / LBA - DOS 7.1+ - FAT32 với địa chỉ CHS
  • 0x0C - LBA - DOS 7.1+ - FAT32 với LBA
  • 0x0E - LBA - DOS 7.0+ - FAT16B với LBA

Để hoàn thành danh sách id, đây là một số thông tin về các hệ thống cũ không hỗ trợ phân vùng đĩa cứng được định dạng UDF.

Windows NT 4.0 trở lên chỉ có thể gán ký tự ổ đĩa cho các phân vùng có id MBR: 0x01, 0x04, 0x06, 0x07.

Windows dựa trên DOS (95, 98 và ME) chỉ có thể gán ký tự ổ đĩa cho các phân vùng có id MBR: 0x01, 0x04, 0x06, 0x0B, 0x0C, 0x0E. Bản thân MS-DOS chỉ có thể truy cập các phân vùng với id MBR: 0x01, 0x04, 0x06. Lưu ý rằng các hệ thống này sử dụng id phân vùng MBR để phát hiện hệ thống tệp. Id phân vùng MBR phải khớp với hệ thống tệp trên phân vùng.

Phần kết luận:

Nhìn vào kích thước phân vùng: 0x01 và 0x04 chỉ nên được sử dụng cho các phân vùng trong 32 MB đầu tiên của đĩa. 0x06 chỉ trong 8GB đĩa đầu tiên. 0x0B dành cho địa chỉ CHS có giới hạn cho các đĩa 8GB. Vì vậy, không có giới hạn như vậy chỉ có id: 0x07, 0x0C và 0x0E. Vì 0x0C và 0x0E được sử dụng cho các phân vùng FAT, tôi sẽ đề nghị chọn 0x07 . Nó có nghĩa là cho các phân vùng IFS (Hệ thống tệp có thể cài đặt) và theo Wikipedia, Microsoft đã thêm hỗ trợ cho UDF vào Windows 2000 IFS API. Việc sử dụng 0x0C hoặc 0x0E sẽ khiến các hệ thống dựa trên DOS hiển thị phân vùng đó dưới dạng FAT, thậm chí nó sẽ được định dạng là UDF. Các phân vùng với MBR id 0x07 được ẩn trên các hệ thống đó. Họ không hỗ trợ UDF, do đó, lựa chọn tốt hơn là 0x0C hoặc 0x0E.

GPT:

Bố cục phân vùng GPT nằm ngoài câu hỏi này, nhưng nó có vấn đề tương tự như MBR. Không có phân vùng GUID (tương đương GPT cho MBR id) được gán cho UDF. Vì Windows XP x64 hỗ trợ UDF và chỉ có thể nhận ra phân vùng dữ liệu GPT với GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Phân vùng dữ liệu cơ bản của Microsoft), nên đây là lựa chọn khả thi duy nhất cho GPT.

Nguồn:

(*) Có một ngoại lệ: Id MBR 0x05, 0x0F và 0x85 được sử dụng để phát hiện các phân vùng MBR mở rộng.
(**) Định nghĩa của hai cuộc gọi này có thể được tìm thấy trong tệp WinIoCtl.h khi chúng được khai báo là macro C.
(***) Phần mở rộng BIOS INT 13h có nghĩa là sử dụng LBA thay vì CHS.


Trang này chỉ ra rằng các phân vùng 0x0E phải nhỏ hơn 2 GiB. Điều đó có nghĩa là đối với UDF, nó phải là 0x07 hoặc 0x0C. Cái sau nghe có vẻ tốt hơn đối với tôi, đặc biệt khi bạn đọc trang được liên kết. Nghiên cứu ấn tượng, mũ ra!
Milind R

2

Trên đĩa CD và DVD tôi xử lý, không có bảng phân vùng. Trên ổ cứng USB của bạn, bạn đã viết một bảng phân vùng cho phương tiện truyền thông. Tôi nghi ngờ nếu bạn định dạng toàn bộ ổ đĩa dưới dạng đĩa UDF mà không có bảng phân vùng, Windows sẽ không gặp vấn đề gì khi gắn nó.

Bạn không nói kích thước ổ USB của bạn là bao nhiêu và bạn có thể miễn cưỡng dành toàn bộ ổ đĩa dưới dạng UDF, bạn có thể thử đặt loại phân vùng với fdisk là NTFS hoặc một trong các loại MS 'được hỗ trợ' khác.


Tôi cũng đang khởi động Linux từ cùng một ổ đĩa, vì vậy tôi cần một phân vùng có định dạng được hỗ trợ bởi grub. Tôi mới phát hiện ra rằng grub2 (thử nghiệm) có thể khởi động Linux từ UDF, vì vậy tôi sẽ thử điều này.
skolima

0

Tôi đã có cùng một vấn đề. Ổ cứng USB của tôi là 320GB. Bảng phân vùng trông như thế này:

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44fdfe06

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       27963   224612766    c  W95 FAT32 (LBA)
/dev/sda2           27964       38913    87955875    5  Extended
/dev/sda5           27964       33366    43399566    7  HPFS/NTFS
/dev/sda6           33367       38913    44556246   83  Linux

Phân vùng sda5 là một UDF rev. 1.5 và shoulb có thể đọc được bằng Windows XP trở lên. Tất nhiên, Linux đọc nó đúng cách. Windows tuy nhiên bị nhầm lẫn. Nó nhận ra phân vùng là NTFS và sau đó nó giả sử đó là phân vùng thô.

Thử nghiệm của tôi với UDF trên Pendrive cho tôi thấy rằng các hệ thống có xu hướng nhầm UDF với FAT. Họ giải thích UDF là FAT. Nó phải là điểm tương đồng khá lớn vì tôi có thể thấy cấu trúc thư mục của các ký tự ngẫu nhiên. Linux nói rằng đĩa bị hỏng nhưng nó không từ chối sử dụng.

Tôi nghĩ UDF (ít nhất là rev 1.5) không được hỗ trợ tốt trên các ổ USB.


1
Nếu phương tiện được sử dụng để có FAT, có thể vẫn khiến UDF bị nhầm lẫn với FAT. Bạn nên đảm bảo rằng FAT đã bị xóa / không trước khi định dạng bằng UDF.
osvein
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.