Làm cách nào để định dạng thanh USB (ổ flash) với FAT32 để sử dụng trên Linux và Windows?


11

Tôi muốn định dạng thẻ nhớ để di chuyển dữ liệu giữa Windows 7 và máy chủ Ubuntu không nối mạng (Chính xác).

Tôi không chắc chắn rằng một trong hai cách tôi đã thử là chính xác, mặc dù tôi có thể đọc và ghi vào ổ đĩa trên cả hai máy.

Tôi nhận được một danh sách phân vùng trông rất kỳ lạ fdisknếu tôi định dạng ổ đĩa trên Windows (sử dụng công cụ Quản lý đĩa), nhưng có vẻ ổn về mặt đọc và ghi trên Linux và Windows.

hình ảnh hiển thị đầu ra của fdisk cho ổ đĩa được định dạng windows

cfdiskbáo cáo

FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk.

Nếu, như một số người ủng hộ , tôi sử dụng cfdiskđể tạo một phân vùng chính toàn đĩa b(hoặc fdiskđể tạo một phân vùng bắt đầu từ khối hai nghìn và một cái gì đó) và sau đó phát hành

sudo mkfs.vfat -n some_label /dev/sdf1

sau đó Windows sẽ không nhận ra hệ thống tệp (sau khi suy nghĩ về nó).

Linux và Windows sẽ vui vẻ đọc và viết một lần lặn 2GB nếu tôi tạo cùng một phân vùng, nhưng sau đó phát hành:

sudo mkfs.vfat -I -n some_label /dev/sdf

nhưng điều này làm cho rằng toàn bộ ổ đĩa phân vùng hiển thị như không gian tự do trong cfdiskfdiskvà Windows không giống như các ổ đĩa 16GB.

Tôi cũng đã thử sử dụng parted, nhưng Windows không bao giờ hài lòng với bất kỳ phân vùng nào tôi tạo trên Linux.

Tôi lo ngại rằng, trong khi ổ đĩa dường như hoạt động, tôi có thể phát hiện ra rằng dữ liệu không được truyền một cách trung thực.

Tôi đang sử dụng các ổ đĩa SanDisk Cruzer ở nhiều độ tuổi, hương vị và kích cỡ khác nhau.

Là cách chính xác để định dạng trên windows và bỏ qua các vấn đề mà cfdisk và fdisk có hoặc có một cách chính xác khác mà mọi người đều hài lòng với ổ đĩa?


Bạn đã thử sử dụng công cụ "HP USB Format" thay vì diskmgmt.msc chưa?
GENiEBEN

1
sử dụng gparted, tạo đĩa NTFS, sử dụng nó trong windows. Một cách khác là chỉ cần xóa mọi thứ khỏi nó (không có phân vùng nào), sau đó phân vùng nó trong windows bằng compmgmt.msc hoặc HP USB Tool, sau đó sử dụng nó trong Windows và linux.
72DFBF5B A0DF5BE9

@GENiEBEN Tôi đã không và dường như tôi không thể tìm thấy một nguồn có uy tín cho nó.
jah

Câu trả lời:


9

Windows sẽ thường sử dụng phương tiện bên ngoài, chẳng hạn như ổ đĩa flash USB, theo cách không liên kết - nghĩa là không có bảng phân vùng và hệ thống tệp được ghi vào toàn bộ đĩa. Nếu đĩa của bạn được thiết lập theo cách này, bạn nên sử dụng /dev/sdftrực tiếp, như trong:

mount /dev/sdf /mnt

Bạn có thể sử dụng mkfs, fsckvà các công cụ khác trong một cách tương tự. Bạn có thể sử dụng blkidđể xác minh điều này, như trong blkid /dev/sdf. Nếu nó cho bạn biết đó /dev/sdflà một hệ thống tập tin FAT (hoặc một số khác), thì giả thuyết của tôi là đúng.

Nếu đĩa không có dữ liệu bạn muốn giữ gìn và bạn muốn tạo một hệ thống tập tin mới vào nó, bạn có thể làm như vậy trên toàn bộ đĩa hoặc bạn có thể sử dụng fdisk, partedhoặc một số công cụ khác để tạo ra một tươi (trống) bảng phân vùng. Trong fdisk, bạn sẽ làm điều này với olệnh ở menu chính. Điều này sẽ xóa sạch các "phân vùng" hiện có (có lẽ chỉ fdisklà nỗ lực tuyệt vọng để diễn giải khu vực đầu tiên của hệ thống tập tin FAT) và tạo một bảng phân vùng trống mới. Sau đó, bạn sẽ sử dụng nđể tạo một phân vùng mới, lưu các thay đổi wvà sử dụng mkfshoặc mkdosfsbên ngoài fdiskđể tạo một hệ thống tệp mới /dev/sdf1.

Lưu ý rằng Windows chỉ nhận ra phân vùng đầu tiên trên ổ flash USB có chứa bảng phân vùng. Vì vậy, nếu bạn muốn có nhiều hơn một phân vùng, hãy chắc chắn rằng cái đầu tiên là cái có thể truy cập được từ Windows.


1
Rối loạn đó được báo cáo bởi fdisk (xem ảnh chụp màn hình trong câu hỏi) có thể được sửa bằng cách xóa ổ đĩa bằng dd if=/dev/zero of=/dev/sdfhoặc shred -n 0 -z /dev/sdftrước khi tạo phân vùng.
jah

3
Tạo phân vùng với fdisk /dev/sdf(sử dụng mặc định được trình bày ở chế độ tương tác) loại b (Windows95)(tạo loại c (Windows95 (LBA))cho ổ 16 GB - đây là những gì Windows làm) và định dạng nó bằng cách sử dụng mkfs.vfat /dev/sdf1hoặc trong Windows bằng công cụ Quản lý đĩa (báo cáo hệ thống tệp như 'RAW' khi ổ đĩa được cắm lần đầu tiên). Cả hai cách sẽ dẫn đến một ổ đĩa mà fdisk báo cáo một cách nhất quán. Lưu ý rằng điều này dẫn đến một phân vùng không phải là 'toàn bộ đĩa' và đó /dev/sdf1cũng là một phân vùng mount.
jah

Tôi không thể xác nhận giả thuyết của bạn @Rod Smith vì ổ đĩa này hiện không phải là 'toàn bộ đĩa': sudo blkid /dev/sdfkhông báo cáo gì cả, nhưng sudo blkid /dev/sdf1không báo cáo TYPE="vfat". Cảm ơn bạn rất nhiều vì câu trả lời của bạn, bây giờ tôi có ổ đĩa làm việc mà tôi tin tưởng.
jah 12/12/13
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.