== 1. Introducción == Sistema de archivos ntfs (New Technology File System) es un sistema de archivos diseñado específicamente para Windows NT (incluyendo las versiones Windows 2000, Windows 2003, Windows XP y Windows Vista). Admite compresión nativa de ficheros, cifrado (esto último sólo a partir de Windows 2000) e incluso transacciones (sólo a partir de Windows Vista). Está basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2, y también tiene ciertas influencias del formato de archivos HFS diseñado por Apple. Paquete ntfs-3g Es un driver de tercera generación disponible libre y comercialmente y es soportado por manejadores NTFS para LINUX, FreeBSD, Mac OS, NetBSD, Solaris, Haiku y otros sistemas operativos. Ofrece un manejo seguro y rápido de los sistemas de archivos de Windows XP, Windows 2000, Windows Vista, Windows Server 2008 y Windows 7. ntfs-3g puede escribir, remover, renombrar, mover archivos, directorios. Puede manejar archivos especiales como enlaces simbólicos, dispositivos y FIFOs; además puede leer archivos comprimidos de manera transparente. El volumen a ser montado con ntfs-3g puede ser o un dispositivo de bloque o un archivo de imagen. == 2. Sintaxis de ntfs-3g == ntfs-3g [-o opción [,...]] volumen punto_de_montaje mount -t ntfs-3g [-o opción [,...]] volumen punto_de_montaje == 3. Opciones == La mayoría de las opciones de montaje genéricas que se usan para el comando mount en mount(8) están soportadas(ro, rw, suid, nosuid, dev, nodev, exec, noexec). A continuación hay un resumen de la opciones adicionales que ntfs-3g acepta. * **uid=valor y gid=valor** Configura el usuario y grupo propietario de los archivos y directorios. Los valores son numéricos. Por defecto estos valores son del uid y gid del proceso actual. * **umask=valor** Configura el bitmask de los permisos de archivos y directorios que no están presentes. El valor es dado en octal. El valor por defecto es 0, lo que significa acceso total para todos. * **fmask=valor** Establece el bitmask de permisos de archivos que no están presentes. El valor es dado en octal. El valor por defecto es 0, lo que significa acceso total para todos. * **dmask=valor** Establece el bitmask de permisos de directorios que no están presentes. El valor es dado en octal. El valor por defecto es 0, lo que significa acceso total para todos. * **ro** Monta el sistema de archivos en modo sólo-lectura. Es útil si Windows está hibernado. * **remove_hiberfile** A diferencia del caso de montaje sólo-lectura, el montaje de lectura-escritura es denegado si el volumen NTFS está hibernado. Es necesario reanudar Windows y apagarlo apropiadamente o usar esta opción la cual removerá el archivo de hibernación de Windows. Dese cuenta que esto hará que la sesión de Windows se pierda completamente. Use esta opción bajo su propia responsabilidad. * **recover, norecover** Recupera y repara un volumen NTFS corrupto e inconsistente, si esto es posible. La función por defecto es recover. * **show_sys_files** Muestra el sistema de archivos listando los directorios. De otra manera la función por defecto es ocultar el sistema de archivos. Por favor observe que incluso cuando esta opción esté especificada, “$MFT” puede no ser visible debido a un error de glibc. Además, independientemente de mostrar el sistema de archivos, todos los archivos son accesibles por su nombre, por ejemplo, siempre se puede hacer "ls -l '$ UpCase'". * **max_read=value** Con esta opción el tamaño máximo de las operaciones de lectura puede ser establecido. El default es infinito. Note que el tamaño de lectura solicitada está limitado de cualquier modo a 32 páginas (esto es 128KB en plataformas i386). * **silent** No regresa error al hacer chown y chmod en el manejo de derechos sobre el sistema de archivos, a menos que esté activada cualquiera de las opciones uid, gid, umask, fmask, o dmask. Esta opción está activada por defecto. * **locale=value** Imprime mensajes informativos y de diagnostico en la locale establecida. * **streams_interface=value** Esta opción controla de qué manera el usuario tiene acceso a Secuencias de Datos Alternados o en otras palabras llamado secuencias de datos. Puede establecerse con none, windows, o xattr. Si la opción establecida es none, no tendrá acceso a las llamadas secuencias de datos. Si se ha establecido con windows, entonces el usuario tendrá acceso a estas secuencias como en Windows. Si su valor es xattr, entonces las secuencias de datos son mapeadas con xattr o atributos extendidos del sistema de archivos y los usuarios podrán manipular los datos usando las utilidades {get,set} de fattr. El valor por defecto en Linux es xattr y none en otros sistemas operativos. * **force** Esta opción de montaje ya no se utiliza. Fue sustituida por las opciones recover y norecover. * **debug** Hace que ntfs-3g no se salga de la terminal y que imprima una salida amplia de depuración del driver. * **no_detach** Igual que el anterior, pero con menos salida de depuración. == 4. Instalar ntfs-3g == Debian GNU/Linux contiene NTFS-3G en sus repositorios. Para instalarlo ejecute el siguiente comando: # aptitude install ntfs-3g == 5. Cómo usar ntfs-3g == Para montar /dev/sda1 a /mnt/Windows (asegúrese que el directorio /mnt/Windows existe). # ntfs-3g /dev/sda1 /mnt/Windows ó # mount -t ntfs-3g /dev/sda1 /mnt/Windows Para montar como sólo-lectura /dev/sda5 en /home/user/mnt y hacer que el usuario con UID 1000 sea el propietario de todos los archivos: # ntfs-3g -o ro,uid=1000 /dev/sda5 /home/user/mnt Y si además queremos que /dev/sda5, con estos parámetros, se monte cada vez que arranque el sistema, agregamos lo siguiente al archivo /etc/fstab: /dev/sda5 /home/user/mnt ntfs-3g ro,uid=1000 0 0 Para desmontar /mnt/Windows # umount /mnt/Windows Ejemplo Primero, localizamos el nombre de la partición NTFS a montar. Para mostrar las diferentes particiones del disco duro y el sistema de archivos que usa cada partición, ejecute el siguiente comando: # fdisk -l Tendremos una salida parecida a esta: Disco /dev/sda: 320.0 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0xd9cc64e7 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 1 8928 71714128+ 7 HPFS/NTFS /dev/sda2 8929 10752 14651280 83 Linux /dev/sda5 37694 38058 2931831 83 Linux /dev/sda6 38059 38423 2931831 83 Linux /dev/sda7 38424 38913 3935893+ 82 Linux swap Disco /dev/sdb: 8017 MB, 8017412096 bytes 255 heads, 63 sectors/track, 974 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0x000bee9a Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 1 974 7823623+ b W95 FAT32 En este ejemplo, el disco duro principal es /dev/sda (puede ser /dev/hda si usas Debian Etch) y el número que le acompaña distingue cada partición que existe en él.Ahora bien, interesa montar la partición donde se especifica un sistema de archivos NTFS. Busque la partición /dev/sda que tiene un sistema HPFS/NTFS. En este caso es /dev/sda1. Cree un directorio donde se va a montar la partición o el disco duro NTFS con el siguiente comando: # mkdir /media/Windows y después monte la partición con el siguiente comando: # mount -t ntfs-3g /dev/sda1 /media/Windows Edite el archivo /etc/fstab, con su editor de textos favorito y añada la siguiente línea para cargar la partición al arrancar el sistema. /dev/sda1 /media/Windows ntfs-3g rw,defaults,locale=es_ES.UTF8 0 0 La línea locale=es_ES.UTF8 es opcional, aunque si la coloca podrá ver mensajes informativos y de diagnóstico en la locale configurada. == 6. Código de salida == Para facilitar el uso del driver NTFS-3G en scripts, un código de salida es retornado dando una indicación del estado de montaje de un volumen. El valor 0 significa éxito, y todos los demás valores significan un error. Los códigos de error están documentados en el ntfs-3g.probe(8). == 7. Errores comunes == Imposible montar el volumen seleccionado. hibernated non-system partition, refused to mount. failed to mount '/dev/hda5': operación no permitida "The NTFS partition is hibernated. Please resume and shutdown Windows properly, so mounting could be done safely." Solución: Reinicien, carguen Windows y lo apagan correctamente, ahora no dará error. WARNING: Deficient Linux kernel detected. Some driver features are not available (swap file on NTFS, boot from NTFS by LILO), and unmount is not safe unless it's made sure the ntfs-3g process naturally terminates after calling 'umount'. If you wish this message to disappear then you should upgrade to at least kernel version 2.6.20, or request help from your distribution to fix the kernel problem. The below web page has more information: Solo es una advertencia si sus kernels de Debian, son anteriores al 2.6.20, de todos modos funcionara, ntfs-3g, pero algunas funciones no estarán disponibles, si quieren de una buena vez quitar esa advertencia, actualicen el kernel a la versión 2.6.20 o superior