Jak sformatować pamięć USB (dysk flash) za pomocą FAT32 do użytku w systemie Linux i Windows?

11

Chcę sformatować kartę pamięci do przenoszenia danych między Windows 7 a nie sieciowym serwerem Ubuntu (Precise).

Nie jestem pewien, czy którykolwiek z dwóch sposobów, które wypróbowałem, są poprawne, mimo że mogę czytać i zapisywać na dyskach na obu komputerach.

Otrzymuję bardzo dziwnie wyglądającą listę partycji, fdiskjeśli sformatuję dysk w systemie Windows (za pomocą narzędzia do zarządzania dyskami), ale wydaje się być OK, jeśli chodzi o czytanie i pisanie w systemie Linux i Windows.

obraz przedstawiający wyjście fdisk dla dysku sformatowanego w systemie Windows

i cfdiskraporty

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

Jeśli, jak niektórzy zwolennicy , używam cfdiskdo utworzenia partycji podstawowej z pełnym dyskiem typu b(lub fdiskdo utworzenia partycji, która zaczyna się od bloku 2000 i coś takiego), a następnie wydaje

sudo mkfs.vfat -n some_label /dev/sdf1

wtedy system Windows nie rozpozna systemu plików (po eonach myślenia o nim).

Linux i Windows z przyjemnością odczytują i zapisują nurkowanie o pojemności 2 GB, jeśli utworzę tę samą partycję, ale problem:

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

ale to sprawia, że w pełnym wymiarze partycji dysku pokaz jako wolnej przestrzeni cfdiska fdiski Windows nie lubi dysku 16GB.

Próbowałem partedteż użyć , ale Windows nigdy nie jest zadowolony z żadnych partycji, które tworzę w systemie Linux.

Obawiam się, że chociaż dysk wydaje się działać, mogę odkryć, że dane nie są wiernie przesyłane.

Używam dysków SanDisk Cruzer w różnym wieku, o różnych smakach i rozmiarach.

Czy prawidłowy sposób formatowania w systemie Windows i ignorowanie problemów, które mają cfdisk i fdisk, czy jest inny prawidłowy sposób, w jaki wszyscy są zadowoleni z napędu?

jah
źródło
Czy próbowałeś użyć narzędzia „HP USB Format” zamiast diskmgmt.msc?
GENiEBEN,
1
użyj gparted, utwórz dysk NTFS, użyj go w systemie Windows. Innym sposobem jest po prostu usunięcie z niego wszystkiego (bez partycji), następnie podziel go na partycje w systemie Windows za pomocą compmgmt.msc lub HP USB Tool, a następnie użyj go w systemie Windows i Linux.
72DFBF5B A0DF5BE9
@GENiEBEN Nie mam i wydaje mi się, że nie jestem w stanie znaleźć wiarygodnego źródła.
jah

Odpowiedzi:

9

Windows często korzysta z zewnętrznych nośników, takich jak dyski flash USB, w sposób niepodzielony na partycje - to znaczy nie ma tablicy partycji, a system plików jest zapisywany na całym dysku. Jeśli twój dysk jest skonfigurowany w ten sposób, powinieneś użyć /dev/sdfbezpośrednio, jak w:

mount /dev/sdf /mnt

Możesz użyć mkfs, fscki innych narzędzi w podobny sposób. Możesz blkidto sprawdzić, jak w blkid /dev/sdf. Jeśli powie ci, że /dev/sdfjest to system plików FAT (lub jakiś inny), moja hipoteza jest poprawna.

Jeśli dysk nie ma danych, które chcesz zachować, a chcesz utworzyć nową plików na nim, można to zrobić na całego dysku lub można użyć fdisk, partedlub inne narzędzie do tworzenia świeżego (pusty) tablicę partycji. W fdiskzrobiłbyś to za pomocą opolecenia w menu głównym. Spowoduje to usunięcie istniejących „partycji” (które są prawdopodobnie fdiskdesperacką próbą interpretacji pierwszego sektora systemu plików FAT) i utworzenie nowej pustej tablicy partycji. Następnie użyjesz go ndo utworzenia nowej partycji, zapisz zmiany wi użyj mkfslub mkdosfspoza nim, fdiskaby utworzyć nowy system plików /dev/sdf1.

Pamiętaj, że system Windows rozpoznaje tylko pierwszą partycję na dysku flash USB, który zawiera tablicę partycji. Dlatego jeśli chcesz mieć więcej niż jedną partycję, upewnij się, że pierwsza z nich będzie dostępna z systemu Windows.

Rod Smith
źródło
1
Ten bałagan zgłoszony przez fdisk (patrz zrzut ekranu w pytaniu) można poprawić, zerując dysk z dd if=/dev/zero of=/dev/sdflub shred -n 0 -z /dev/sdfprzed utworzeniem partycji.
jah 12.12.13
3
Utwórz partycję za fdisk /dev/sdfpomocą (używając ustawień domyślnych przedstawionych w trybie interaktywnym) typu b (Windows95)(ustaw typ c (Windows95 (LBA))na dysk 16 GB - tak robi Windows) i sformatuj ją za pomocą jednego z nich mkfs.vfat /dev/sdf1lub w systemie Windows za pomocą narzędzia do zarządzania dyskami (które zgłasza system plików jako „RAW” po pierwszym podłączeniu dysku). Oba sposoby spowodują utworzenie dysku, który fdisk będzie raportował konsekwentnie. Zauważ, że skutkuje to partycją, która nie jest „całym dyskiem” i tak też /dev/sdf1jest mount.
jah 12.12.13
Nie mogłem potwierdzić twojej hipotezy @Rod Smith, ponieważ ten dysk nie jest teraz „całym dyskiem”: sudo blkid /dev/sdfnic nie zgłasza, ale sudo blkid /dev/sdf1zgłasza TYPE="vfat". Dziękuję bardzo za odpowiedź, teraz mam działające dyski, do których mam zaufanie.
jah 12.12.13