Cómo leer y escribir en particiones NTFS

Si instalaste Ubuntu u otra distro de Linux pensando que inmediatamente podrías escribir sobre tus particiones NTFS (de Windows), te tengo malas noticias: de que se puede, se puede, pero no lo lograrás con sólo un click.
La culpa, en todo caso, no es nuestra.
Resulta que Microsoft nunca liberó las especificaciones de cómo funciona internamente este sistema de archivos, a diferencia de lo que hizo con FAT. Esto significa que para FAT sí hay soporte nativo en Linux, mientras que para NTFS no, al menos no para escritura. Esto, obviamente, ha llevado a varios programadores a lograr el desafío, desarrollando todo en ingeniería inversa, de adelante hacia atrás.
Hoy, después de mucho ensayo y error, se puede hacer sin problemas (un aplauso para los desarrolladores!).
¿Cómo lograrlo? Aquí va el Resumen Resumido™.
Las fórmulas son dos tres, y les recomiendo que las lean hasta el final. Ya verán por qué.
La primera, Captive NTFS
Ésta fue el primer proyecto que permitió leer y escribir en las particiones NTFS, y eso lo hace el proyecto más maduro de todos. Sin embargo, la compatibilidad la logran usando Wine y algunos archivos originales de Windows, lo que dificulta la instalación ya que no es absolutamente “limpia”. De hecho, para poder funcionar Captive te pide que “le consigas” ntfs.sys, ntoskrnl.exe y otros archivos más, ya que por un tema de licencias éstos no pueden venir incluídos en el paquete de Captive.
Por todo esto no recomiendo usar este método, pero si te interesa probarlo, así se usa:
Primero, obviamente bajarlo e instalarlo. Después correr captive-install-acquire para obtener los archivos necesarios (puedes sacarlos de tu instalación de Windows, o bien bajarlos desde el sitio de Microsoft). Ahora, para montar una partición (digamos que la quieres montar en /media/win):
$ sudo mkdir /media/win
$ sudo mount -t captive-ntfs /dev/hda1 /media/win
Y para que quede montada automáticamente cuando bootees, agrega esta línea a /etc/fstab:
/dev/hda1 /media/win captive-ntfs rw,umask=002,nls=utf8
Dependiendo de dónde esté tu partición NTFS tendrás que cambiar hda1 por lo que necesites. Si se trata de la tercera partición del segundo disco, por ejemplo, debería ser hdb3 (la fórmula es hd + orden del disco + número de partición).
Otro dato: éstos últimos comandos son genéricos, es decir también funcionan con los otros drivers, sólo tienes que cambiar ‘captive-ntfs’ por ‘ntfs’ o ‘ntfs-3g’. Pero ya llegaremos a eso.
La segunda, con el driver de linux-ntfs
Este método es el más fácil, aunque no el ideal. El driver viene incluído en la mayoría de las distribuciones y ya es prácticamente un estándar, básicamente porque es bien seguro. La razón de esto es que, si bien permite leer archivos y sobreescribir en los existentes, no permite crear nuevos archivos ni borrar los antiguos. Personalmente uso este método sólo cuando necesito leer algún archivo de la partición donde está Windows instalado (por ejemplo para acceder al escritorio, que está en Documents&Settings).
Demás está decir que no tienes que instalar nada.
Bueno, para montar la partición, usa los mismos comandos de arriba, pero reemplazando captive-ntfs por sólo ntfs. Es decir:
$ sudo mount -t ntfs /dev/hda1 /media/win
Y para que quede montada automáticamente cuando bootees, en /etc/fstab agregar:
/dev/hda1 /media/win ntfs rw,umask=002,nls=utf8
Y la tercera, con el nuevo ntfs-3g
Esta es la última versión del driver linux-ntfs, y en mi opinión es el método ideal. Primero, porque es completamente abierto (a diferencia de Captive que usar partes propietarias de Windows), segundo porque puedes hacer absolutamente todo (copiar, borrar, editar, etcétera), y por último: es rápido. Bien rápido. Al menos así dicen las primeras pruebas que se hiceron con el driver, que incluso lo situaron por sobre ext3, el sistema de archivos estándar de Linux (Reiser ganó por lejos).
Este driver eventualmente llegará a ser parte del kernel (por lo que tendremos soporte nativo después de todo), pero por ahora hay que instalarlo a mano para echarlo a andar.
Todo lo que tienes que hacer es instalar fuse y después ntfs-3g. Por ahora no hay paquetes .DEB para hacerlo vía Synaptic, pero puedes hacerlo compilándolo vía consola. No te asustes, son sólo un par de comandos simples. Yo ya lo hice y he ha funcionado perfecto.
UPDATE: Ya tenemos paquetes para Ubuntu, así que no te costará nada hacerlo funcionar.
Primero, agrega los siguientes repositorios a /etc/apt/sources.list:
deb http://flomertens.keo.in/ubuntu/ dapper main
deb-src http://flomertens.keo.in/ubuntu/ dapper main
Ahora instala el paquete ntfs-3g, después de actualizar el listado con Synaptic. Y para montar la partición:
$ sudo mount -t ntfs-3g /dev/hda1 /media/win
Por último, si quieres que quede montada automáticamente cuando bootees, en /etc/fstab agrega:
/dev/hda1 /media/win ntfs-3g rw,umask=002,nls=utf8
OPCIONAL: Si quieres instalar ntfs-3g compilándolo:
Sólo asegurate que (si tienes Ubuntu) tengas el paquete build-essentials instalado. Ahí viene todo lo necesario para compilar un programa. Puede que también necesites el kernel-headers o quizás el pkgbuild, dependiendo de tu distribución.
¿Listo? Después de bajar y descomprimir ambos paquetes (fuse y ntfs-3g, en ése orden), haz ésto:
$ ./configure
$ make
$ sudo make install
¿Ves que no es nada difícil? El primer comando verifica que todo esté en orden y configura las rutas de acceso para compilar el módulo. El segundo efectivamente lo compila (lo “hace”, por “make”); y el tercero lo instala. Si nunca antes habías compilado un programa, bueno, ahora lo acabas de hacer. :)
Ahora, para montar las particiones, usa el mismo método de arriba pero reemplaza “ntfs” por “ntfs-3g”. Todo listo.


Como siempre comentarios impecables, para un mundo en desastre, me parece bien!!
Este metodo es seguro? (por que he oido que pueden pasar desastres)
lo 1º es lo 1º, muy buen post y además justo a tiempo, ya que este fin de semana me disponía a hacer una búsqueda para lo mismo :)
2º no me gusta mucho el instalar con “make install”. un amigo me recomendo checkinstall que genera automágicamente los tan queridos .deb, muy weno…héchenle un ojo.
http://asic-linux.com.mx/~izto/checkinstall/
3º me pregunto lo siguiente : ¿porque el autor de ntfs-3g se hecha el pollo al artico, justo cuando saca la “versión estable”? (leer lanzamiento oficial donde dice “recién lanzado”)
¿no será que es porque tiene alguna pifia por ahi?
mmm
Hito: en este momento estoy traspansando por ahí por 20Gb de datos con música y todo tipo de archivos a una partición ntfs con el driver nuevo.
cero problema. :)
vladimir: jaja, ¿crees que el tipo se está escapando por si queda alguna cagada? lo dudo, de hecho los ítemes que describe en “known issues” son cosas menores por lo general.
checkinstall no lo conocía, voy a revisarlo.
si pues, checkinstall es bueno, ya que sino…como desintalas un programa instalado con “make install”?
es fácil de usar y como dije…genera un deb del software.
pd: este post es mas que nada para probar el tag , ya que no veo por ninguna parte que tags html puedo usar, ni menos tengo un preview que sería harto weno tenerlo.
Cómo leer y escribir en particiones NTFS…
Una útil guía que describe tres formas para leer y escribir en esa porfiada partición NTFS desde el sistema operativo del pingüino. Ideal para usuarios de Ubuntu….
Tres formas de leer y escribir en particiones NTFS…
Una útil guía que describe cómo leer y escribir en esa porfiada partición NTFS desde el sistema operativo del pingüino. Ideal para usuarios de Ubuntu….
Estuve intentando con Captive, pero como tengo Service Pack 2 en el XP me decía que no encontraba esos archivos que necesita Captive para funcionar. Googleé un poco y efectivamente ese es un problema común. Lo dejé así y llegaste con éste post justo a tiempo :P
Ahorita tengo Ubuntu y el problema que me está lanzando el log al preparar la instalación de Fuse con ./configure es que mi compilador de C no genera ejecutables. Instalé el gcc. ¿Que puede ser?
“ya que sino… como desintalas un programa instalado con “make install”?”
Pues con un “make uninstall”, por ejemplo.
vladimir: quizás a futuro ponga un preview, pero lo de los tags ya es casi un estándar en todos los blogs, por eso decidí no ponerlo. :)
Angel: instalaste build-essentials?
Excelente noticia Tomás, solo por esa razón tenía formateado windows con fat 32.
Consulta aparte, alguien ha instalado dapper en una MB Pcchips (810) con video integrado sis (y lo ha dejado operativo 100%. Lo que pasa es que lo instale, pero por diferentes problemas solo me queda en 8 bits de color (con diferentes drivers, sis, vesa, etc) y se ve feísimo.
Salu2.
Muchas gracias Tomás! No te imaginas lo util que me ha resultado la guía, porque por no poder leer y escribir (escribir más bien) sobre mis particiones NTFS me veía constantemente obligado a estar haciendo malabares y reinicios para cambiar a Windows. Sabía que se podía, pero que no era lo más seguro del mundo, y como yo no soy el rey del backup ni mucho menos…
Esta opción me parece confiable, además la guía te quedó super didáctica! Agradecido
AnGeL:
si tu gcc dice q no puede generar ejecutables, instala libc6-dev
Eso soluciona todo ;)
Saludos
Pons
Gracias Pons y Tomás, aunque lo único que ya me faltaba era build-essentials.
Ya está instalado pero nunca he modificado un fstab, y más que tengo 3 particiones NTFS. A ver si no me cargo el sistema xD
“Sólo asegurate que (si tienes Ubuntu) tengas el paquete build-essentials instalado. Ahí viene todo lo necesario para compilar un programa. Puede que también necesites el kernel-headers o quizás el pkgbuild, dependiendo de tu distribución.” no me di cuenta de que no tenia el kernel-headers, e hice el proceso y no me funka… ahora, el .configure se hace estando dentro de la carpeta fuse o dentro de ntfs-3g :? ehhh???
“Pues con un “make uninstall”, por ejemplo”
jejeje si, pero mejor con dpkg o mejor aun con synaptic, pero para ello debes instalarlo con un .deb y ahi es donde entra checkinstall
Ignatius: make uninstall sólo funciona cuando el programador incluyó un “uninstall” dentro del .tar.gz… si no no funciona.
soundwave: primero en fuse, después dentro de ntfs-3g. el primer paquete es una dependencia del segundo.
lo acabo de instalar de buena forma …¬_¬ pero ahora no logro accederla …como deberia quedar en fstab ?
Lo mismo, como hago para que todos puedan acceder a la partición? (pregunta newbie)
soundwave: mira arriba en la guía:
/dev/hda1 /media/win ntfs rw,umask=002,nls=utf8
Rodrigo: agrega la línea a /etc/fstab para que se cargue al inicio. si quieres que los otros usuarios también tengan permisos de escritura, asegúrate de que agregar “gid=usuarios”, donde “usuarios” es el nombre de un grupo al que pertenezcan todos ellos.
también puedes setearlo como “gid=##”, con el número ID del grupo.
hola, una guia variada para montar particiones win…
pero el ntfs-3g es beta, no seria peligroso confiar q sea la mejor manera de acceder a tu particion win?
Hola a todos, me estoy volviendo loco con esto.
Tengo instalado el kubuntu, y despues de instalar todos los paquetes que encontré (el build-essentials no lo encuentro por apt) el ./configure me da un aviso de que el modulo de fuse no esta cargado en el kernel, no se si esto es importante, y a la hora de hacer el make me dice “orden no encontrada”.
Esto lo hago dentro de la carpeta fuse y todavia no he probado de hacerlo en la de ntfs-3g.
Como se ve no tengo mucha exp en linux, a ver si alguien me echa una mano.
Un saludo.
Berserker : make te funcionará si instalas make. búscalo con synatpic (es mas fácil).
si sabes inglés, te recomiendo ubuntuforums y ubuntuguide (.org)
sólo escribía para decir que no me funciona bien ntfs-3g, cree los .deb con check install, puedo leer, pero de 20 archivos (mp3), 10 se pueden leer en Hasefroch y los otros 10 apesar de que están, no los puede leer.
al volver a ubuntu, no monta la partición porque dice que está corrupta. al regresar a Hasefroch, me manda al scandisk y me borra todos los archivos con problemas.
con mas tiempo probaré las otras alternatvias de escritura en ntfs.
Hola a todos pues bien yo tengo ubuntu y mi problema es que no puedo leer mis archivos en ntfs ya instale todo lo aqui se menciona pero aun asi no mas no funciona cuando monto la particion me da un mensaje que no tengo los permisos suficientes para poder leer en win2 alguien me puede ayudar por favor me voy a volver loco, gracias.
caim: sí, es beta, pero está bien probado, de hecho ya están pensando en integrarlo oficialmente al Linux-NTFS oficial. eso dice mucho, no?
Berserker: revisa si tienes los repositoros necesarios activados en /etc/apt/sources.list.
vladimir: “Hasefrock” == “Windows” ?? jaja
luinux: no puedes ni siquiera accesar la partición? recuerda que tienes que montarla con sudo.
si te llega a aparecer un mensaje de que no encuentra fuse (habiéndolo compilado antes), carga el módulo así: “sudo modprobe fuse“.
tomás : si hasefroch = windows
finalmente me funcionó, pero no tomando tu método.
sino que uno mostrado en ubuntu forums, bueno al menos la version de ntfs-3g que sale ahi es mas nueva de la que probé a lo mejor por eso fue.
Hola, me podrían explicar ¿como leer y escribir en NTFS a través de discos removibles USB con Kubuntu?.
Estuve leyendo algo de ocupar un Sript pero hablan de nautilus y eso es de Ubuntu :(
Dejen sus particiones propietarias ntfs ya olvidense de gates.. usen reiser o ext
luzbel: tienes que instalar ntfs-3g, como explica el post, que es independiente de si usas KDE o GNOME.
Por fin pude despues de muchos dias de intentos…
a todo esto.. para montar una particion ntfs pude hacerlo con
sudo ntfs-3g /dev… /mnt/…
ya tenia tiempo buscando esto,
leer/escribir en ntfs pero no habia hallado nada
creen que funcione en mandriva linux 2006??
les agradeceria que me echaran una mano
tengo winxp sp2
gracias por adelantado
Torreón, Coahuila, México
joer, soy incapaz de hacer esto
he hecho todo lo que pone y aun asi me da todos estos errores:
error opening partition device: dispositivo ó recurso ocupado
failed to startup volume: dispositivo ó recurso ocupado
failed to mount ‘/dev/sda1′: dispositivo ó recurso ocupado
mount is denied because the ntfs volume is already exclusively opened.
the volume may be already mounted, or another software may use it which
could be identified for example by the help of the ‘fuser’ command.
Es que acabo de instalarlo y no hay manera
Venga muchas gracias
Saludos
Tomas habra algun problema con Edgy con respecto a esto ?
Desde hace algun tiempo que debo hacer un sudo umount -a, seguido de un sudo mount -a, para recien poder escribir en NTFS alguna idea ?
saludos
Hola he echo paso a paso lo que indica en el post y he seguido la explicacion para el ntfs-3g me sale este error, si alguein es amable podria indicarme el porque?? gracias comunidad.
fusermount: failed to access mountpoint /media/XP: No such file or directory
Retrying mount …
fusermount: failed to access mountpoint /media/XP: No such file or directory
Failed to mount NTFSUnmounting /dev/hda1 (XP)
ph_azer: por supuesto. lo único es que el paquete con todo lo necesario para compilar debe llamarse distinto.
g4b1: todo parece que la partición ya la tienes montada. escribe “mount” y ve si está montada (y dónde). después desmóntala con “sudo umount /mnt/lugar” y vuelve a hacerlo con ntfs-3g.
soundwave: hmmmno, no se me ocurre. pero eso es con el driver por defecto o con NTFS-3g?
friki: parece que escribiste mal el nombre de la carpeta. ¿estás seguro que es /media/XP? recuerda que en Linux, “XP” no es lo mismo que “xp”. :)
hola a todos, hace unos meses que uso el ntfs-3g y me ha funcionado de maravilla, pero desde hace una semana más o menos no me funciona, actualicé algo entonces y desde ese momento me dice que no puede usar el comando ntfs-3g porque necesita versiones nuevas de fuse-utils y libc6… por qué actualiza cosas que no se pueden usar despues??… ahora no tengo acceso a mis discos duros…
alguien me puede echar una mano???
gracias.
Impresionante tutorial. “Chapó”
[...] un tiempo escribí una guía que explicaba cómo lograr esta antigua proeza. Y si digo antigua es porque ya dejó de serlo. Ahora es tan [...]
buenas soy novato en esto del mundo linux
y necesito montar mi particion ntfs de win estoy usando centos 5
si trato de montar de la forma tradicional osea
mount /dev/sda1 /mnt/windows
me manda el siguiente error
mount: unknown filesystem type ‘ntfs’
por lo tanto baje un paquete de actualizacion
fuse-ntfs.3g
y use el siguiente comando
ntfs-3g /dev/sda1 /mnt/windows/
y sale este error
FATAL: Module fuse not found.
fusermount: fuse device not found, try ‘modprobe fuse’ first
FUSE mount point creation failed
Unmounting /dev/sda1 ()
no se porque no encuentra la particion ya que si hago este comando
/sbin/fdisk -l
me sale esto
Disk /dev/sda: 40.0 GB, 40020664320 bytes
240 heads, 63 sectors/track, 5169 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3793 28675048 7 HPFS/NTFS
/dev/sda2 3794 5147 10236240 f W95 Ext’d (LBA)
/dev/sda5 3794 4972 8908042 83 Linux
/dev/sda6 4972 5111 1052226 82 Linux swap / Solaris
por lo tanto sda1 seria la particion ntfs
porfa ayuda
gracias
son unos genios, muchas gracias
Consultación,
Cuando mencionas la línea “deb http://flomertens.keo.in/ubuntu/ dapper main”, debo suponer que estás hablando de Ubuntu Dapper. Si esto lo quiero hacer en Feisty tendría que finalizar dicha línea en “feisty main” en vez de “dapper main”?
@Raspu: Feisty ya trae de una vez el driver ntfs-3g, recién instalado ya esta en capacidad de leer y escribir particiones ntfs.
Hola a todos… tengo una inquietud, monte CentOs en una maquina virtual VmWare bajo windows, esta me creo un disco duro virtual, pero ahora quiero ver la informacion de mis particiones fisicas, que será que puedo hacer en este caso??? Somebody Help me
@Eleazar: uuhhh!! de pelos!!!!
[...] Visto en: -bootlog- [...]
Hola, yo tenía el siguiente problema al montar una partición NTFS, me daba este error:
$ sudo mount -t ntfs-3g /dev/sda5 /media/sda5
fusermount: mount failed: Device or resource busy
FUSE mount point creation failed
Unmounting /dev/sda5 ()
Me decía que la partición estaba siendo usada… Entonces para solucionar esto, desmonte la unidad SDA5: sudo umount /dev/sda5 y la volvi a montar como me decia en el tutorial y listo(sudo mount -t ntfs-3g /dev/sda5 /media/sda5)
La cuestion es la siguiente, cuando cargo la linea en el fstab (/dev/sda5 /media/disk ntfs-3g rw,umask=002,nls=utf8) al iniciar el SO la particion esta montada, pero no tengo permiso para escribir, por terminal bajo usuario root la desmonto la monto con “ntfs-3g /dev/sda5 /media/disk” y al entrar tengo los permisos, como puedo hacer para que una vez que inicie el SO quede montada y tenga los permisos de R/W sin desmontar y volver a montar??
@Tincho706, cambia rw,umask=002,nls=utf8 por:
defaults,locale=es_VE.utf8
Por supuesto el es_VE.utf8 variara dependiendo de donde rayos estas tu, lo averiguas corriendo en consola el comando locale, la primera linea que escupe el comando dice LANG=???, ese ??? es lo que tienes que poner
Buen post pero…
Ya se puede hacer mas fácil y con 3 clicks.
aquí hay un ejemplo
http://www.empresario.com.mx/linux/escribe-en-unidades-ntfs-desde-linux.htm
Gracias por el consejo.
se agradece el ultimo post xd
Tengo el Kernel linux 2.6.20-16-generic en Ubuntu Feisty — segui los pasos descargé “fuse” compilé e instalé. instalé ntfs-3g
y continua quitandome este error
Unmounting /dev/disk/by-uuid/F298D72698D6E7DD (DATOS)
fusermount: mount failed: Device or resource busy
FUSE mount point creation failed
Unmounting /dev/disk/by-uuid/EA040D92040D6345 (WINDOS (C:))
¿NTFS?, ¿eso no era un filesystem de un S.O. obsoleto?.
Bromas aparte, muy bueno el articulo y como le ha pasado a otros lo he leído antes de pifiarla.
Ola a todos.Tengo Ubuntu feisty yt engo un problema:
No puedo ni pegar ni borrar nada de mi particion de güindolous, aunque si qe puedo leer los arxivos, apesar de haber hecho todo lo que aveis dicho.Lo único que e conseguio es la Herramienta de Configuración NTFS,pero sólo puedo marcar `Activar soporte de escritura de soportes externos´ y el otro,(el de soportes internos) está en gris y no lo puedo marcar.Tiene algo qe ver?y si no, aver si alguien me puede ayudar y muxas gracias de antemano
Pregunta: esto sirve pa poder escribir en una particion ntfs k este en red???
[...] partición adicional para los documentos, compartida entre los dos SO’s, y que puede ser FAT o NTFS (más adelante ext3). Esto porque, según los pasos de Linux.com, estaríamos dejando todos [...]
[...] ReBootLog (Instalación de NTFS-3g en Ubuntu). [...]