¿Cómo formatear una memoria USB (unidad flash) con FAT32 para usar en Linux y Windows?

11

Quiero formatear una tarjeta de memoria para mover datos entre Windows 7 y un servidor Ubuntu no conectado en red (Precise).

No estoy seguro de que ninguna de las dos formas que he probado sean correctas, aunque puedo leer y escribir en la unidad en ambas máquinas.

Obtengo una lista de particiones de aspecto muy extraño fdisksi formateo la unidad en Windows (usando la herramienta Administración de discos), pero parece estar bien en términos de lectura y escritura en Linux y Windows.

imagen que muestra la salida de fdisk para una unidad con formato de Windows

e cfdiskinformes

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

Si, como algunos recomiendan , utilizo cfdiskpara crear una partición primaria de tipo de disco completo b(o fdiskpara crear una partición que comience en el bloque dos mil y algo) y luego emita

sudo mkfs.vfat -n some_label /dev/sdf1

entonces Windows no reconocerá el sistema de archivos (después de eones de pensarlo).

Linux y Windows felizmente leerán y escribirán una inmersión de 2GB si hago esa misma partición, pero luego emiten:

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

pero esto hace que el programa de partición de disco completo como el espacio libre en cfdisky fdisky Windows no le gusta la unidad de 16 GB.

Intenté usarlo partedtambién, pero Windows nunca está contento con las particiones que creo en Linux.

Me preocupa que, si bien la unidad parece funcionar, puedo descubrir que los datos no se transfieren fielmente.

Estoy usando unidades SanDisk Cruzer de varias edades, sabores y tamaños.

¿Es la forma correcta de formatear en Windows e ignorar los problemas que tienen cfdisk y fdisk o hay otra forma correcta de que todos estén contentos con la unidad?

jah
fuente
¿Has intentado utilizar la herramienta "HP USB Format" en lugar de diskmgmt.msc?
GENiEBEN
1
use gparted, cree un disco NTFS, úselo en windows. Otra forma es simplemente eliminar todo de él (sin particiones), luego particionarlo en Windows con compmgmt.msc o HP USB Tool, luego usarlo en Windows y Linux.
72DFBF5B A0DF5BE9
@GENiEBEN No lo he hecho y parece que tampoco puedo encontrar una fuente confiable para ello.
jah

Respuestas:

9

Ventanas con frecuencia utiliza los medios de comunicación externos, como unidades flash USB, en un particionado manera - es decir, no hay ninguna tabla de particiones y el sistema de archivos se escribe en el disco completo. Si su disco está configurado de esta manera, debe usarlo /dev/sdfdirectamente, como en:

mount /dev/sdf /mnt

Puede usar mkfs, fscky otras herramientas de manera similar. Puede usar blkidpara verificar esto, como en blkid /dev/sdf. Si te dice que /dev/sdfes un sistema de archivos FAT (o algún otro), entonces mi hipótesis es correcta.

Si el disco no tiene datos que desea conservar y que desea crear un sistema de archivos fresco en él, se puede hacer ya sea por lo que en todo el disco o se puede usar fdisk, partedo alguna otra herramienta para crear una nueva tabla de particiones (vacío). En fdisk, harías esto con el ocomando en el menú principal. Esto borrará las "particiones" existentes (que probablemente son solo fdiskel intento desesperado de interpretar el primer sector de un sistema de archivos FAT) y creará una nueva tabla de particiones vacía. Luego lo usaría npara crear una nueva partición, guardar los cambios con wy usar mkfso mkdosfsfuera de fdiskpara crear un nuevo sistema de archivos /dev/sdf1.

Tenga en cuenta que Windows solo reconoce la primera partición en una unidad flash USB que contiene una tabla de particiones. Por lo tanto, si desea más de una partición, asegúrese de que la primera sea la que será accesible desde Windows.

Rod Smith
fuente
1
Ese desastre reportado por fdisk (vea la captura de pantalla en la pregunta) se puede corregir poniendo a cero la unidad con dd if=/dev/zero of=/dev/sdfo shred -n 0 -z /dev/sdfantes de crear una partición.
jah
3
Crear una partición con fdisk /dev/sdf(utilizando los valores por defecto presentados en modo interactivo) de tipo b (Windows95)(que sea el tipo c (Windows95 (LBA))de una unidad de 16 GB - esto es lo que hace Windows) y el formato utilizando uno mkfs.vfat /dev/sdf1o en Windows con la herramienta Administración de discos (que informa el sistema de archivos como 'RAW' cuando la unidad se conecta por primera vez). Ambas formas darán como resultado una unidad que fdisk informa constantemente. Tenga en cuenta que esto da como resultado una partición que no es 'disco completo' y también lo /dev/sdf1es el que debe mount.
jah
No pude confirmar su hipótesis @Rod Smith porque esta unidad no es ahora 'disco completo': sudo blkid /dev/sdfno informa nada en absoluto, pero sudo blkid /dev/sdf1sí informa TYPE="vfat". Muchas gracias por su respuesta, ahora tengo unidades de trabajo en las que confío.
jah