PDA

Ver la Versión Completa : Linux y NTFS


Linux_devil2
06-feb-2007, 06:33
¿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
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/f....org%2Fred.png Para modificar los permisos de los sistemas de archivos montados, revise la opción umask. Si prefieres que la partición sea montada en forma automática al momento de iniciar.
Cuando hayas finalizado, puedes desmontar la partición con alguno de estos comandos:
umount /mnt/windowsumount /dev/hda1http://wiki.linux-ntfs.org/lib/exe/f....org%2Fred.png El comando se llama umount (sólo con una ‘n’).
Arriba

Opciones más comunes de montaje

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

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

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

Es equivalente que hacer -r.

-o umask={VALUE}

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.
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
-o uid={USERID}

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}

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

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}

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

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}

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}

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

¿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, Debian, SuSE, Gentoo, Lindows y Caldera
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 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 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.