PDA

Ver versión completa : Linux y NTFS


Linux_devil2
11-ago-2006, 03:30
¿Qué versiones de NTFS puede leer Linux?

El Driver de Linux puede leer todas las versiones de NTFS. Cada versión es un tanto diferente, pero el driver sólo tiene que interpretar los archivos y directorios. Todos los ¿ndices que mantiene NTFS pueden ser ignorados y no corren peligro alguno.
Cuando el driver tiene la opción de escribir en un Volumen NTFS, esto puede hacer que las propiedades varíen un porco dependiendo de la versión de NTFS en la que se está escribiendo.

¿Puede el controlador escribir en una partición NTFS también?

No realmente, pero si sólo se necesita copiar archivos desde Linux a Windows en una máquina con sistema de arranque dual, vea Cómo escribir en NTFS para una posible forma de trabajar ante la falta de soporte para la escritura. Para soporte de escritura en Linux, lea a continuación.
Hay 2 drivers actualmente. El driver original, en 2.4 tiene algún código referente a la escritura, pero es extremadamente peligroso usarlo. La posibilidad de destruir el sistema de archivos es muy alta.
El nuevo driver, introducido en 2.5.11, tiene código de escritura, pero es muy limitado. El driver puede sobrescribir archivos existentes, pero no puede modificar su largo, agregar archivos nuevos o borrar existentes.

Agregar soporte de escritura tomará bastante tiempo. NTFS está construida como una base de datos. Cualquier cambios que se haga, requiere hacer cambios en varias partes, para mantener la consistencia. Cometer un error y el sistema de archivos resultará dañado, cometer demasiados errores y el sistema de archivos resultará destruido. Además, los desarrolladores actuales sólo están trabajando en NTFS como hobby, durante sus ratos libres. Si te gustaría, por favor envíame un email: linux-ntfs-dev@lists.sourceforge.net (linux-ntfs-dev@lists.sourceforge.net).

Como escribir en NTFS. Si estás usando una máquina con arranque dual y sólo necesitas soporte de escritura en NTFS para transferir archivos desde Linux a Windows, puedes usar un driver Windows para ext2/ext3 y, mientras esté corriendo Windows, leer los archivos desde la Linux. De esta forma, usando 2 drivers de sólo-lectura, puedes copiar archivos desde un sistema de archivos a otro.
Conocemos estos drivers Windows de código abierto para ext2 y ext3 en sistemas de archivos Linux, al 4 de Junio del 2003:

<LI class=level1>explore2fs
<LI class=level2>Página web: http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm (http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm)
Para Windows NT, Windows 2000 y Windows XP.<LI class=level1>ext2fsd

<LI class=level2>Página web: http://ext2fsd.sourceforge.net (http://ext2fsd.sourceforge.net/)
Para Windows NT, Windows 2000 y Windows XP.<LI class=level1>winext2fsd

<LI class=level2>Página web: winext2fsd project page (http://sourceforge.net/projects/winext2fsd)
Según se informa (http://sourceforge.net/forum/forum.php?thread_id=787262&forum_id=220066) funciona con Windows NT y Windows XP, así como con Windows 2000.<LI class=level1>ext2forxp

<LI class=level2>Página web: http://sourceforge.net/projects/ext2forxp (http://sourceforge.net/projects/ext2forxp)
En desarrollo, no está listo para su uso (4 de junio de 2003).<LI class=level1>vmware

<LI class=level2>Página web: http://www.vmware.com (http://www.vmware.com/)
<LI class=level2>VMWare te permite correr todo un sistema operativo con otros sistemas operativos.
Así, puedes correr Windows dentro de Linux y utilizarlo para escribir en particiones NTFS nativamente.
Tan seguro como el Windows que estás corriendo, pero caro.
¿Qué características de NTFS soporta Linux?

NTFS soporta un amplio rango de características, pero pocas son las que cumple el Driver NTFS de Linux.
El Driver NTFS de Linux soporta: Nombres de archivo Unicode (convertidos a un código de página local, o utf8); archivos comprimidos; archivos sparse.
Sin embargo, el driver no puede leer archivos encriptados, ignora la información de seguridad de Windows e ignora las quotas establecidas por Windows.

¿Qué podría hacer en caso de algún error?

El driver es bastante seguro para sólo lectura, pero es imposible poder probar cada eventualidad. Si algo sale mal, por favor ayúdanos a encontrar el problema y así poder solucionarlo.
Por favor envía un email al grupo desarrollador a: linux-ntfs-dev@lists.sourceforge.net (linux-ntfs-dev@lists.sourceforge.net) y cuéntanos cual versión del driver estás usando, cual versión de Linux (uname -a) y cual versión de NTFS (Win NT, 2K o XP).
Adicionalmente, si hay algún logs (/var/log/messages) que creas que pueda ser de utilidad, por favor inclúyelo.

Linux_devil2
11-ago-2006, 03:32
¿Cómo agrego soporte a NTFS en Linux?

La mayoría de los usuarios no tendrán que compilar nada para habilitar el soporte NTFS. Casi todas las distribuciones Linux (con la notable excepción de RedHat) incluyen soporte NTFS por defecto.
Si estás usando RedHat 9 (Shrike), 8.0 (Psyche) o 7.3 (Valhalla), entonces simplemente instala un rpm para soporte NTFS. El paquete rpm viene con instrucciones detalladas.
Si tienes una versión anterior de RedHat, u otra distribución que no tenga soporte NTFS, entonces tendrás que compilar el kernel tu mismo. Esto no es tan difícil como suena.

¿Cómo fue escrito el Driver de NTFS para Linux?

Microsoft no ha liberado ninguna documentación acerca de los detalles internos de NTFS, así que hemos tenido que usar ingeniería reversa al sistema de archivos desde cero. El método fue bastante rudo:
<LI class=level1>Mirar el volumen con un editor hexadecimal
<LI class=level1>Realizar alguna operación, e.j. crear un fichero
<LI class=level1>Usar el editor hexadecimal para observar los cambios
<LI class=level1>Clasificar y documentar los cambios
Repetir los pasos 1 al 4 hasta el infinito y más allá
Si esto suena a un montón de trabajo, entonces podrán comprender cuan dura fue la tarea desarrollada. Ahora entendemos mucho más todo sobre NTFS y lo hemos documentado para el beneficio de los demás: http://www.linux-ntfs.org/content/view/103/42 (http://www.linux-ntfs.org/content/view/103/42)
En realidad escribir el driver fue tan simple como recoger la inforamación.

¿Cómo monto una partición NTFS?

Antes de nada, sería una buena idea saber que tu kernel comprende el sistema NTFS. El siguiente comando entregará una lista de todos los sistemas de archivos que comprende Linux. Si ves ntfs, entonces está todo OK. También es una buena idea leerte el manual del mount, man 8 mount.
cat /proc/filesystemsA continuación necesitas crear un lugar donde montar la partición NTFS. Luego podrás montarlo.
mkdir /mnt/windowsmount /dev/hda1 /mnt/windows -t ntfs -rhttp://wiki.linux-ntfs.org/lib/exe/fetch.php?w=16&h=16&cache=cache&media=http%3A%2F%2Fdata.linux-ntfs.org%2Fred.png (http://wiki.linux-ntfs.org/lib/exe/fetch.php?cache=cache&media=http%3A%2F%2Fdata.linux-ntfs.org%2Fred.png) Para modificar los permisos de los sistemas de archivos montados, revise la opción umask en Sección 4.6 (http://wiki.linux-ntfs.org/doku.php?id=ntfs-es#opciones_mas_comunes_de_montaje). Si prefieres que la partición sea montada en forma automática al momento de iniciar, vea Sección 4.10 (http://wiki.linux-ntfs.org/doku.php?id=ntfs-es#como_monto_un_volumen_ntfs_automaticamente).
Cuando hayas finalizado, puedes desmontar la partición con alguno de estos comandos:
umount /mnt/windowsumount /dev/hda1http://wiki.linux-ntfs.org/lib/exe/fetch.php?w=16&h=16&cache=cache&media=http%3A%2F%2Fdata.linux-ntfs.org%2Fred.png (http://wiki.linux-ntfs.org/lib/exe/fetch.php?cache=cache&media=http%3A%2F%2Fdata.linux-ntfs.org%2Fred.png) El comando se llama umount (sólo con una ‘n’).
Arriba (http://wiki.linux-ntfs.org/doku.php?id=ntfs-es#top)

4.6 Opciones más comunes de montaje (http://www.voyazteca.com/vb/)

Estas opciones de montaje son comunes para ambos Drivers. Se recomienda también leer la página man para montaje. La forma general de montaje es:
mount dispositivo directorio [opciones]opciones adicionales de la forma -o se pueden dar en forma individual, o como parámetros separados por comas. Ambos comandos son equivalentes:
mount /dev/hda1 /mnt/windows -o X -o Y -o Zmount /dev/hda1 /mnt/windows -o X,Y,Z
-t ntfs (http://www.voyazteca.com/vb/)

Le informa a mount el tipo de sistema de archivos que se montará. Esta opción no es necesaria, ya que mount sabe como identificar la mayoría de los tipos de sistemas de archivos.

-r (http://www.voyazteca.com/vb/)

Monta el volumen, como solo lectura. Por defecto, mount intentará montar el volumen como escritura lectura. A menos que sea forzado, el driver montará de forma automática el sistema para sólo lectura.

-o ro (http://www.voyazteca.com/vb/)

Es equivalente que hacer -r.

-o umask={VALUE} (http://www.voyazteca.com/vb/)

Los permisos otorgados a un volumen NTFS que ha sido montado son rwx—— (esto por razones de seguridad). El parámetro umask controla los permisos de los archivos y directorios. Para más detalles y ejemplos, vea la Sección 4.9 (http://wiki.linux-ntfs.org/doku.php?id=ntfs-es#como_puedo_cambiar_los_permisos_de_una_particio n_ntfs_ya_montada).
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
-o uid={USERID} (http://www.voyazteca.com/vb/)

Por defecto todos los archivos de un volumen NTFS que ha sido montado le pertenecerán al usuario root. Si se provee el parámetro uid se pueden configurar los usuarios propietarios de los archivos. El user id puede ser cualquier nombre proveniente de /etc/passwd, o cualquier número que represente un user id.
mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcapmount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
-o gid={GROUPID} (http://www.voyazteca.com/vb/)

Por defecto todos los archivos de un volumen NTFS que ha sido montado estarán en un grupo cuyo propieatario es root. Si se da el parámetro gid es posible configurar los grupos para los archivos. El group id puede ser cualquier nombre proveniente de /etc/group, o cualquier número que represente un group id.
mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusersmount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520

Linux_devil2
11-ago-2006, 03:35
Opciones de montaje para el Driver original

Para saber que Driver estás usando. En esta sección trata de las opciones para el Driver Original solamente. Muchas opciones poseen un parámetro que tiene un valor true o false.
Puede reemplazarse true con yes o 1.
Puede reemplazarse false con no o 0.

-o iocharset={NAME} (http://www.voyazteca.com/vb/)

NTFS almacena todos los nombres de archivos y directorios en formato Unicode el cual puede representar cualquier caracter de cualquier lenguaje. Por defecto el driver de Linux NTFS convierte los nombres al formato ASCII lo que está bien para algunos, pero no así para quienes su lenguaje incluye cosas como ¿ o é.
NLS (Native Language Support) controla la forma como los caracteres son desplegados. Se puede elegir con utf8 que al igual, que Unicode, puede representar todos los caracteres, o tu propio lenguaje mediante un codepage, p.ej. iso8859-1 (Europa del Este), iso8859-2 (Europe Central), gb2312 (Chino simplificado), iso8859-8 (Hebreo). A continuación hay algunos ejemplos:
mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=utf8mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=iso8859-2mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=gb2312
-o utf8=true (http://www.voyazteca.com/vb/)

Si tu kernel no tiene soporte para utf8, entonces es posible usar esta opción para trabajar con soporte para utf8 desde el Driver NTFS . Se debería usar -o iocharset=utf8 cuando sea posible.
mount /dev/hda1 /mnt/windows -t ntfs -r -o utf8=true
-o posix={BOOL} (http://www.voyazteca.com/vb/)

Windows respeta el uso de mayúsculas o minúsculas en el nombre de los archivos, pero no hace distinción al momento de leerlos. De esta forma se puede crear un archivo llamado MyFileName y luego abrirlo llamando a mYfILEname.
Por defecto Linux discrimina en el uso demayúsculas o minúsculas, asMyFile, Myfile y myfile son archivos diferentes. Si deseas que Linux se comporte como Windows, para un volumen NTFS, configura la opción posix a false. Poniendo la opción a true el driver se comportará como Linux (por defecto).
mount /dev/hda1 /mnt/windows -t ntfs -r -o posix=true
-o show_sys_files={BOOL} (http://www.voyazteca.com/vb/)

Si esta opción es configurada a true, entonces los metadata del sistema de archivos serán visibles. Si no están visibles, aún pueden ser listadols de forma explícita dando su nombre, p. ej. ls -l \$MFT.
A raíz de una limitación de glibc, $MFT podría no aparecer en la lista pues es un inode número cero.
mount /dev/hda1 /mnt/windows -t ntfs -r -o show_sys_files=true

Linux_devil2
11-ago-2006, 03:36
¿Cómo puedo cambiar los permisos de una partición NTFS ya montada?

Una vez que estás satisfecho con tu comando mount, puedes decirle a Linux que monte el volumen automáticamente añadiendo una linea en el /etc/fstab (filesystem table).

Debajo tienes algunos ejemplos del comando mount y su equivalente fstab.

No te preocupes por el significado de 0 0.
mount /dev/hda1 /mnt/windows -t ntfs -r/dev/hda1 /mnt/windows ntfs ro 0 0Aquí hemos transformado “-r” en su equivalente “-o ro”.
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222/dev/hda1 /mnt/windows ntfs ro,umask=0222 0 0mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222,uid=flatcap,gid=winuser/dev/hda1 /mnt/windows ntfs ro,umask=0222,uid=flatcap,gid=winuser 0 0

¿Qué distribuciones soportan NTFS por defecto?

Las distribuciones de Linux que se sabe que soportan NTFS son: Mandrake (http://www.mandrake.com/), Debian (http://www.debian.org/), SuSE (http://www.suse.com/), Gentoo (http://www.gentoo.org/), Lindows (http://www.lindows.com/) y Caldera (http://www.caldera.com/)
De hecho, la regla es que si el nombre no es RedHat, soportará NTFS.

¿Por qué RedHat no soporta NTFS?

Realmente me gustaría saberlo. Algunos rumores apuntan a un tema legal.

¿Por qué RedHat se bloquea al acceder a particiones con NTFS?

Comprueba qué versión del kernel estás usando con el comando uname -a. Si la versión es la 2.4.9 entonces es importante que actualices el kernel. Consulta el Website de RedHat (http://www.redhat.com/) Para más detalles.
Si lo prefieres, puedes compilar tu propio kernel.

¿Es posible instalar NTFS en cualquier distribución Linux?

No exactamente. Phat Linux (http://phatlinux.com/) se puede instalar en una partición FAT con Windows, y entonces arrancarlo desde los ficheros en Windows. El nuevo driver casi tiene el suficiente soporte para usar este truco con NTFS.

Drancer
12-ago-2006, 02:41
bastante interezante brother muy buena informacion, bastante detallada y muy util magnifico aporte saludos!!

Quetzalcoatl
01-sep-2006, 02:43
Linux ya existe un controlador 99% seguro para escritura en ntfs!!! :) ya es posible escribir de manera segura en NTFS desde linux

Quetzalcoatl
01-sep-2006, 02:44
se llama NTFS-3g