Después de no poder copiar un archivo más grande que 4G a mi unidad flash USB 8G , lo formateé como ext3. Si bien hasta ahora esto funciona bien para mí, causará problemas si quiero usarlo para copiar archivos a alguien que no usa Linux.
Estoy pensando en formatearlo como UDF , lo que espero permita que sea leído (y posiblemente incluso escrito) en los tres sistemas operativos más populares (Windows, MacOS y Linux), sin tener que instalar ningún controlador adicional . Sin embargo, por lo que encontré en la web, parece haber varias pequeñas trampas relacionadas con los parámetros que se utilizan para crear el sistema de archivos, lo que puede reducir la compatibilidad (pero la mayoría de las páginas que encontré son sobre medios ópticos, no USB flash). unidades).
Me gustaría saber:
- ¿Qué utilidad debo usar para crear el sistema de archivos? (Hasta ahora he encontrado
mkudffs
ygenisoimage
, ymkudffs
parece la mejor opción.) - ¿Qué parámetros debo usar con la utilidad elegida para una compatibilidad máxima?
- ¿Cuán compatible es en realidad con las versiones más comunes de estos tres sistemas operativos UDF?
- ¿Usar UDF es realmente la mejor idea? ¿Existe otro sistema de archivos que tenga una mejor compatibilidad, sin restricciones problemáticas como el límite de tamaño de archivo FAT32 4G y sin tener que instalar controladores especiales en cada computadora que lo toque?
Respuestas:
Primero, puse a cero completamente la unidad antes de crear el sistema de archivos UDF con:
Esto es para evitar cualquier superbloque sobrante u otros metadatos que puedan confundir la detección del tipo de sistema de archivos del sistema operativo (debería ser necesario al menos poner a cero el primer sector, para borrar la tabla de particiones; los primeros sectores no son utilizados por UDF, y un sobrante) tabla de particiones realmente podría confundir las cosas). También puede usar el
count=1
interruptor en el comando dd, para poner a cero más rápidamente solo los primeros 512 bytes de la unidad (donde generalmente se encuentra el MBR), aunque esto no se probó.Para crear el sistema de archivos, el comando que utilicé fue:
mkudffs
El comando estará disponible en las distribuciones de Linux basadas en Debian (como Ubuntu) después de instalar unudftools
paquete:El tamaño de bloque predeterminado para
mkudffs
2048 es incorrecto para una unidad flash USB (que utiliza sectores de 512 bytes). Dado que el tamaño de bloque se usa para encontrar los metadatos del sistema de archivos, el uso de un tamaño de bloque incorrecto puede hacer que no se reconozca como un sistema de archivos UDF (ya que el ancla no estará donde está esperando el controlador del sistema de archivos). Tenga en cuenta que lamkudffs
página del manual es incorrecta; 512 es un valor válido para el tamaño del bloque (y el código lo acepta explícitamente).También usé todo el disco en lugar de una partición; Esto debería ser más compatible.
El resultado de mis pruebas hasta ahora:
bs=512
opciónmount
, porque usó incorrectamente 2048 en lugar del tamaño del sector del dispositivo (corregido en commit 1197e4d ).Si bien hasta ahora no he intentado crear un archivo más grande que 4G, no veo ninguna razón por la que no funcione.
Dado que funcionó perfectamente en todos los sistemas operativos recientes (solo tener que montar manualmente en Linux, que ya no será necesario tan pronto como Ubuntu 9.10 y Fedora 12 estén fuera), y funcionó de solo lectura en Windows XP (lo cual fue una sorpresa para mí; esperaba que no reconociera el sistema de archivos), usar UDF en lugar de FAT32 o NTFS en grandes unidades flash USB parece una buena idea.
fuente
dd if=/dev/zero of=/dev/sdb bs=1M
, lo que lo deja sin ninguna tabla de particiones.CesarB hizo un gran trabajo al llegar al quid de la cuestión. Una cosa que no se puede subrayar lo suficiente es lo importante que es usar el tamaño de bloque adecuado al formatear UDF.
Inspirado por la publicación de CesarB (y mis otras investigaciones / pruebas), escribí un script para automatizar el proceso de formateo en UDF, utilizando el tamaño de sector detectado correctamente. Ver format-udf en GitHub . Características notables:
Debido al último punto, este script que escribí no se puede usar en Windows. Sin embargo, el script se ejecutará en OS X y Linux. Después de hacerlo, Windows debería poder detectar mágicamente la unidad UDF recién formateada.
Para responder directamente a las preguntas publicadas, format-udf:
fuente
hdparm
llama "Tamaño del sector lógico" es la unidad de direccionamiento utilizada por el protocolo SATA, mientras que el "Tamaño del sector físico" es una cosa interna de la unidad. Para mí tiene más sentido que los "bloques físicos" en la especificación UDF realmente signifiquen los "bloques lógicos" de Linux.mkudffs
directamente; Me refiero a agregar alguna nueva--best-block-size
opción amkudffs
.Creo recordar haberlo hecho, el problema que encontré es que la versión de Linux que lo había montado era de solo lectura, ya que el controlador no había sido creado para r / w. Funcionó en Windows, y creo que Mac.
Sí, una buena solución es difícil de encontrar. Durante un tiempo tuve una unidad externa con una partición fat32 que tenía controladores para win y mac, una partición mac y una gran partición ext3. Funcionó, pero significó instalar controladores. Un buen truco fue que también era arrancable en una Mac (fw y usb), tienes que dejar espacio y tomar algunas notas, luego puedes agregar particiones a través de la línea de comandos y una tabla de particiones de Mac.
El mundo necesita un sistema de archivos gratuito, utilizable por todo. ZFS sería una buena opción. :-)
fuente
Pieter Wuille escribió una herramienta para particionar y formatear un disco para hacer un diseño UDF que sea compatible con Windows (> = Vista, solo lectura para XP), MacOS X 10.5, Linux 2.6.30+:
Alternativamente:
fuente
Para lograr la máxima compatibilidad, debe usar mkudffs del proyecto udftools al menos en la versión 2.0. No se necesitan parámetros especiales, todo se detecta automáticamente.
Hay 3 grandes restricciones:
Los sistemas Microsoft Windows no reconocen el disco duro no extraíble si no tiene una tabla de particiones MBR o GPT.
Los sistemas Apple Mac OS X no reconocen el sistema de archivos UDF en el disco particionado.
Probablemente todos los sistemas (excepto los núcleos Linux recientes) no reconocen el sistema de archivos UDF si el tamaño del bloque UDF no coincide con el tamaño del sector lógico del disco.
Las herramientas mkudffs desde la versión 2.0 manejan las 3 restricciones. Al formatear discos duros no extraíbles, crea una tabla MBR "falsa" que comienza en el sector 0 y abarca todo el disco. Por lo tanto, el sistema de archivos UDF se puede leer desde la primera partición (necesaria para Microsoft Windows) o desde el disco completo (necesario para Apple Mac OS X). Consulte la página de manual de mkudffs 2.0 para obtener más detalles.
fuente
NTFS, con NTFS-3G puede escribirle usando Linux y echar un vistazo a http://macntfs-3g.blogspot.com/ para su Mac.
fuente
Hay controladores para Windows (y Mac) que pueden acceder a las particiones EXT3, por lo que puede formatearlo en EXT3 y usarlo (con controladores) en todas partes. Otra forma sería utilizar un archivador para almacenar el archivo grande en dos o más archivos de hasta 4 GB cada uno. De esta manera puede usar el sistema de archivos FAT32 que es universal. En la computadora host, debe extraer el archivo para poder usarlo, pero es una forma de hacerlo sin controladores. Use un archivador de formato RAR ya que funciona en Windows, Linux, Mac, aunque creo que un formato ZIP también podría funcionar. Pero iría con los conductores. Una vez instalado, puede hacer cualquier cosa sin restricciones. En la PC he usado Ext2Fsd para acceso completo a EXT2, EXT3 y EXT4 y Macdrive para acceso completo a formato MacOS. Seguramente existen herramientas similares para Linux y MacOS también para acceder completamente a particiones NTFS, etc. Si solo necesita acceso de lectura, no necesita ningún controlador, Linux y MacOS admiten la lectura de particiones NTFS, ¡formatee el USB como NTFS! Si todas estas computadoras están en la misma red, ¡las cosas son más fáciles! Haga que el USB sea formateado y compártalo en la red. ¡Otras computadoras no deberían tener problemas para acceder!
fuente