martes, 29 de diciembre de 2009

Preguntas habituales, y sus respuestas, sobre el archivo fstab

Aunque este tema este dividido en varias preguntas, No es conveniente leer solo la pregunta que en principio parezca importarnos mas en un momento dado, sino que para una mejor comprensión  Es Recomendable leerse Todo el tema.

También hay que tener en cuenta que las líneas que aparecen en color son solo ejemplos, ya que varían de un sistema a otro en función de en que partición este montado el sistema o un pendrive o disco duro.

¿Que es, para que sirve el archivo /etc/fstab?: La lista de sistemas de ficheros disponibles en nuestro Pc, está contenida en el fichero /etc/fstab. Este archivo esta constituido por varias lineas de texto, y cada línea da información sobre cada uno de los sistemas de ficheros que deberían estar disponibles para tu PC.

Este archivo, contiene todos los parámetros para que se monten todas las particiones de uno o varios discos que tengamos en el ordenador. El archivo fstab es donde se guardan los diferentes datos sobre el montaje de los dispositivos físicos: de discos duros fijos y extraibles, y de sus particiones, de disquetes, cdroms, dvd,pendrives-usb
Lo que en el está escrito nos sirve fundamentalmente para que podamos tener acceso a nuestros discos/particiones, asi como también a su funcionamiento, una vez que iniciamos Linux:
- montar la partición donde está Linux y lo que podemos hacer en ella.
- montar o no, al arrancar un disco duro externo, o un pen-drive que tengamos conectado en ese momento.
- poder o no borrar, o escribir en archivos de otras particiones, como la que contenga Windows, si tenemos ambos sistema operativos en el PC.

¿Como se edita manualmente?: es un archivo de texto que se puede ver su contenido con gedit, pero para editarlo y que se guarden los cambios hay que abrirlo con permisos de root; para ello, ejecuta en la terminal: sudo gedit /etc/fstab; después de editarlo guarda los cambios , y cierra la terminal. Una vez editado, para que surtan efectos los cambios realizados hay que reiniciar el pc.

¿ Que componentes tiene el archivo fstab?: por cada partición o dispositivo fisico hay una linea operativa ( las lineas que empiezan por # son solo comentarios a las lineas operativas ) que a su vez consta de varios componentes:

1)--  Sistema de Archivos: es el dispositivo que se va a montar; podemos montar cualquier dispositivo, que ya exista físicamente creado en el disco, tanto particiones, como discos: por ejemplo un disquet, un pen-drive, un disco duro externo, un dvd, un cdrom. Todos ellos poseen un formato determinado, y una ubicación del tipo: /dev/nombre_de_dispositivo, por ejemplo: /dev/hda1 . Tenemos que saber lo que tenemos montando en nuestro PC: para ver que particiones tenemos montadas: ejecutar en la terminal: sudo fdisk -l . Con esta información sabemos los discos duros: por ejemplo /dev/hda y /dev/hdc, y la ubicación ( por ejemplo /dev/hdc2 ) y el tipo de las particiones que hay en nuestro PC. El dispositivo que se va a montar puede aparecer en fstab en vez de por el sistema de archivos, como una etiqueta o un número UUID ( ver explicación mas abajo ).

2)-- Punto de montaje: Es el lugar donde hacemos posible que se pueda acceder a un dispositivo ya montado , es decir que lo veamos como una carpeta, dentro de una ubicación del tipo: /media/punto_de_montaje ( por ejemplo /media/pendrive ). Para que un dispositivo se monte al iniciar el sistema es necesario que esté su línea correspondiente en el archivo fstab, y que exista la carpeta correspondiente en el directorio /media ;  si no existe, hay que crearla después de modificar el archivo /etc/fstab:  para ello hay que abrir Nautilus con permisos de root ( alt+f2 y gksu nautilus ) e ir a la carpeta /media, y en ella crear el directorio correspondiente.

Las particiones del sistema / , /home y /swap no se montan en /media sino en / , /home y /swap respectivamente .

3)-- Tipo: define el tipo del sistema de ficheros. Las entradas más frecuentes en éste campo son:
- ntfs : Si es de WindowsXP
- fat : Si es Windows98 con particion tipo fat 32,
- vfat: Si es Windows 98 con particion tipo fat 16
- iso9660: Para cdroms, dvd y regrabadoras de cd y dvd
- sw: Para la particion de intercambio swap
- ext3 o ext4 : Para / y /home ( en Guadalinex es ext3) ( ext4 a partir de Ubuntu 9.04)
- auto: Si deseas, porque no estas seguro de que tipo se trata, puedes poner auto, y así fstab lo detecta automáticamente, por lo que vale tanto si la partición es fat32 o ntfs, o ext3 o ext4.

4)-- Opciones: Parámetros opcionales para Fstab. Contiene una lista de parámetros, separados por comas, con las opciones que necesite el comando mount para montar el sistema de ficheros. Muchas de estas opciones son específicas de cada sistema de ficheros, y lo iremos viendo según que tipo de partición se quiera montar. Estos parámetros no son estudiados aquí ( si quieres saber mas sobre ellos, ver los enlaces que aparecen al final de este tema ), sino que en las siguientes respuestas se indican los que creo que son mas adecuados en cada caso, sin mas explicación.

¿ Como identificar una partición para montarla ? En el archivo fstab las particiones ( también sirve para pendrives/discos duros externos - el fstab trata de la misma forma a un pendrive y a un disco duro externo) que queramos montar se pueden identificar de tres formas distintas:

1)-Por su sistema de archivos: para ver que particiones tenemos montadas: ejecutar en la terminal: sudo fdisk -l ( ejecutar dicho comando con todas las particiones - incluidos pendrives/discos externos conectados por usb al pc- que queramos montar ).

Este método de identificación si es posible que varíe cada vez que conectes el dispositivo, por lo que no es recomendable para dispositivos del tipo de pendrives o discos duros externos ; si se puede usar para particiones del disco duro interno, como en las particiones en las que se instala el sistema ( particiones / y /home )

2)-Por su UUID ( número que hace de etiqueta identificativa única ):

--Para saber el UUID de las particiones: teclear en una terminal el comando:
ls -l  /dev/disk/by-uuid/ ; Se puede sustituir una partición, por ejemplo /dev/hdc4 por su número UUID.

--Para encontrar el UUID de un pendrive conectado , ejecuta en una terminal: sudo blkid | grep ‘UUID’
y cambia /dev/sdxx por su UUID=123-abc

Este tipo de identificación varia si formateas una partición, en cuyo caso tras formatear una partición tienes que volver a averiguar su uuid y modificar el archivo /etc/fstab

3)-Por su etiqueta: una etiqueta es un nombre ( o uno compuesto de dos unidos por un guión) que se pone sustituyendo al sistema de archivos para facilitar la identificación de cada partición o pendrive o disco duro externo.

--Para poner una Etiqueta si el pendrive no la tiene: Sistema->Administración->Editor de particiones: eliges el pendrive, lo desmontas, y ya le puedes poner una etiqueta ( los dos últimos pasos con el botón derecho del ratón). Y luego cambia en el archivo /etc/fstab el sistema de archivos /dev/sdxx por LABEL=LABELNAME    ( por ejemplo LABEL=pendrive-cruzer ) ( no poner una etiqueta con dos nombres separados, sino unidos por un guión, o por un solo nombre).

--Para encontrar la Etiqueta del pendrive conectado, ejecuta en una terminal: sudo blkid | grep ‘LABEL’

Para un pendrive o disco duro externo, este el tipo de identificación que recomiendo poner en el archivo /etc/fstab, ya que una vez puesta la etiqueta al dispositivo y modificado el fstab, no se cambia cada vez que montes/conectes o desmontes/desconectes el dispositivo, sino que si quieres cambiar la etiqueta, tanto en el dispositivo como en fstab, tienes que hacerlo tu a mano.

¿ Como montar la partición donde esta instalado Windows ? Normalmente Windows se instala en la 1ª partición del 1º disco - si hay mas de una partición y mas de un disco - y la línea que hace referencia a él es: /dev/hda1  /media/hda1  ntfs-3g defaults,locale=es_ES.UTF-8  0 1 ( naturalmente si Windows se hubiera instalado en otra partición hay que cambiar hda1 por la partición en la que este instalado).

Tienes que tener instalados los paquetes ntfs-3g y ntfs-config: permite crear, renombrar, mover o borrar archivos de cualquier tamaño en particiones NTFS, con la excepción de archivos comprimidos por NTFS o cifrados.

La codificación del sistema de la partición de Windows ( que en prinicipio es ISO8859-15 ) y la usada por Linux ( que usa UTF-8 de forma predeterminada ) debe ser la misma, para que el sistema pueda ver bien los nombres de archivos y directorios de la partición Windows sin encontrar caracteres extraños en ellos. Para conseguir esto hay que poner la opción iocharset=utf8

Esto es válido para Windows xp, que es la última versión de Windows que he usado.

¿ Que hay que hacer si aparecen caracteres extraños en los nombres de algunos archivos / directorios de una partición de Windows montada ?.
Cuando eliges 'Español' como idioma en la instalación Ubuntu o Mint, te asigna como 'locale' es_ES.UTF-8
Si hay una partición de Windows en el disco duro el instalador la monta automáticamente durante la instalación y configura las opciones iocharset en el archivo /etc/fstab como iso-8859-15; Éste no es el valor correcto y el sistema no puede visualizar bien los nombres de archivos y directorios,encontrando caracteres extraños en los nombres de algunos archivos / directorios de esa partición montada.
Este problema se debe al desacuerdo entre la codificación del sistema de la partición montada (Windows XP sigue usando codificación ISO8859-15 )y la usada por el sistema operativo Linux (usa UTF-8 como juego de caracteres predeterminado ) sobre la que se monta dicha partición.La codificación usada en un partición montada y la del sistema sobre la que se monta, deben ser la misma para no tener problemas con determinados caracteres (ñ, €, acentos, etc ).

Para corregir esto y que si que se puedan ver los archivos o los nombres de los directorios en el formato adecuado para el español, hay que poner la opción iocharset=utf8

¿ Como montar pendrives/discos duros externos ? Los Pendrives/discos duros externos pueden ser manejados (montados/desmontados ) sin necesidad de que haya una entrada en el archivo /etc/fstab en relación con ellos. La razón para que normalmente no haya ninguna linea en relación a ellos en el /etc/fstab es que su designación es dinámica, es decir una vez puede ser /dev/sdc otra /dev/sdg, etc, y el archivo /etc/fstab no reconocería el cambio de designación.

Si se quiere incluir una entrada en el archivo /etc/fstab en relación a un  pendrive/disco duro externo, como su designación (/dev/sdxx) no es fija cuesta algo mas de trabajo hacerlo. La línea en el archivo /etc/fstab debería identificar el pendrive de acuerdo a una “Etiqueta” o a un “UUID” ( ver mas arriba como identificar una partición ).

De esta forma se pueden crear en /etc/fstab todas las entradas que quieras para todos los pendrives que tengas, asignando a cada uno un UUID o una Etiqueta determinada que los identifique.

Un ejemplo ( naturalmente se puede poner otra etiqueta y montarlo en otro directorio en /media/ )del archivo /etc/fstab, con la línea correspondiente a un pendrive en el archivo /etc/fstab:
— Con una Etiqueta:
LABEL=Cruzer /media/cruzer auto users, defaults, utf8,umask=0 0 2
— Con un UUID:
UUID=4693C6431F7DAB23 /media/cruzer auto users, defaults, utf8,umask=0 0 2

¿ Como poner una etiqueta a un pendrive/disco duro externo ?

Una etiqueta es un nombre ( o uno compuesto de dos unidos por un guión) que se pone sustituyendo al sistema de archivos para facilitar la identificación de cada partición o pendrive o disco duro externo.

--Para poner una Etiqueta si el pendrive no la tiene: Sistema->Administración->Editor de particiones: eliges el pendrive, lo desmontas, y ya le puedes poner una etiqueta ( los dos últimos pasos con el botón derecho del ratón). Y luego cambia en el archivo /etc/fstab el sistema de archivos   /dev/sdxx por LABEL=LABELNAME , ( por ejemplo LABEL=pendrive-cruzer ) ( no poner una etiqueta con dos nombres separados, sino unidos por un guión, o por un solo nombre).

--Para encontrar la Etiqueta del pendrive conectado, ejecuta en una terminal: sudo blkid | grep ‘LABEL’

¿ Como montar particiones fat32/ntfs o ext3/ext4? ambos tipos de particiones pueden ser montadas con una línea similar:
/dev/hdc1 /media/hdc1 auto users,defaults  0  2
ya que la opción "auto" sirve para montar tanto fat32/ntfs como ext3/ext4; en esta línea lo que hay que variar para montar una partición en particular es el sistema de archivos y el punto de montaje: es decir /dev/xxxx  y /media/xxxx ; para averiguar el sistema de archivos ejecutar en una terminal:  sudo fdisk -l .

Para dar permisos de escritura a una partición ntfs hay que instalar los paquetes: ntfs-config y ntfs-3g,  y reiniciar el sistema. De forma que la linea en el archivo /etc/fstab para una partición ntfs debería de ser en este caso del tipo: /dev/xxxx /media/xxxx ntfs-3g rw,users 0 2

¿ Que línea hay para la partición / ?: La linea que hace referencia a esta partición es mejor no tocarla ya que ha sido escrita al instalar el sistema por el propio sistema.
Esta línea es del tipo:  uuid   / ext4 relatime,errors=remount-ro   0 1
( naturalmente el número uuid varia;  y el tipo ext4 es a partir de Ubuntu 9.04, en versiones anteriores es ext3 )

¿ Que línea hay para la partición /home ? si además tienes esta partición aparte, la línea que hace referencia a esta partición es mejor no tocarla ya que ha sido escrita al instalar el sistema por el propio sistema ; en el fstab la línea que aparece es del tipo: uuid /home   ext4 relatime   0   2 (naturalmente el número uuid varia, y el tipo ext4 es a partir de Ubuntu 9.04, en versiones anteriores es ext3 )

¿ Que línea hay para la partición /swap ?: la línea que hace referencia esta partición debe ser similar a esta:  /dev/hdc3  none swap  sw   0   0 ( naturalmente hdc3 debe ser cambiado por la partición en formato swap que se haya creado al instalar el sistema)

¿ Como montar un Cdrom/DVD ? Para averiguar como configurar la linea correspondiente en el /etc/fstab ,abre una terminal y ejecuta ls -l /dev/cd* ( para el cdrom ) y  ls -l /dev/dvd* (para el dvd ) esto te dará los lectores y grabadores de cd/dvd que tengas y el nombre del bus que usan.

Por ejemplo, si en la terminal sale esto:
usuario@Mint ~ $ ls -l /dev/dvd*
lrwxrwxrwx 1 root root 3 2009-12-29 03:00 /dev/dvd -> sr0
lrwxrwxrwx 1 root root 3 2009-12-29 03:00 /dev/dvdrw -> sr0
habría que poner  /dev/sr0  en el archivo fstab

La línea que hace referencia a un dvd, cdrom ( tanto si es solo lector como si es además grabador ) debe ser similar a:
/dev/sr0   /media/cdrom0   udf,iso9660 user,noauto,exec,utf8   0   0 cambiando /dev/sr0 por lo que te salga con el comando anterior ; si tienes un cdrom y un dvd, uno de ellos estará montado en /media/cdrom0 y el otro en /media/cdrom1

¿ Como se monta un disquet ? La linea que hay que poner en el archivo /etc/fstab para que se monte un disquet con permisos de escritura es:

#disquet
/dev/fd0 /media/disquet auto rw,users,noauto 0 0

Naturalmente en Nautilus debe existir, o si no se debe crear la carpeta /media/disquet

¿Como se edita con un programa gráfico?: con el programa pysdm, que se puede instalar desde Synaptic. Se ejecuta con permisos de root , sudo pysdm , y una vez ejecutado, en la pestaña “configuración general”:



1- se selecciona la partición que queremos editar en /etc/fstab
2- se pone la etiqueta
3- el punto de montaje
4- el tipo
5- las opciones se ponen bien con clik en “por defecto” o bien en “asistente”.
( no tocar la pestaña del programa “Reglas de configuración dinámica )
Al hacer click en "asistente" se abre otra ventana con varias pestañas (montado-archivos especiales-journaling-rendimiento-otras opciones) en las que se puede ir marcando/desmarcando las opciones que queramos usar. Aconsejo solo señalar las opciones que queramos en la pestaña "montado", dejando las opciones que vienen por defecto en las otras pestañas, a no ser que se sepa bien lo que se hace.

En la pestaña Montado para una partición ext (ext3 o ext4 ), ésta suele ser una configuración típica:



Para una partición ntfs, en cambio, las mejores opciones son las siguientes (en especial, asegurate de que "Mount file system in read-only mode" se encuentre deshabilitada):



Si sabemos editar manualmente el archivo /etc/fstab nos será bastante fácil editarlo con este programa gráfico, pero a mi me gusta mas editar el archivo /etc/fstab a mano.

-------------------------------------

Cuando se modifica el archivo /etc/fstab se crea una copia de seguridad en /etc/fstab.back que nos puede servir para recuperar un fstab que antes nos funcionaba bien; Aconsejo de todas formas hacer por nuestra cuenta una copia de seguridad de este archivo una vez que nos funcione bien.

------------------------------------

Editado: 11-3-2012:

Hasta ahora siempre había creído que para que los cambios que realicemos en /etc/fstab se ejecutaran había que apagar y volver a encender el pc, pero...
Para recargar el fstab, sin necesidad de reiniciar el pc,  desmontaremos y volveremos a montar todas las particiones. Para ello hay que ejecutar en la terminal:
sudo umount -a  (desmonta todas las particiones que no estén en uso)
Y para volver a montarlas:
sudo mount -a

-------------------------------------

Estas son las preguntas habituales que se realizan sobre el archivo fstab, pero si se te ocurre alguna otra estaré encantado en saberla...e intentare contestarla.

------------------------------------

Si quieres leer mas sobre este archivo /etc/fstab: lee fstab-1 , fstab-2, y montar/desmontar pendrives

------------------------------

6 comentarios:

  1. Hola Hatteras, ¿Cómo te va?
    Te dije que la próxima vez te escribiría. Que qué hago aquí, pues ya ves, informándome de cómo montar un externo/usb, pero mi caso no está contemplado en este apartado, no sé si en alguno lo estará.

    Verás, yo tengo un internet de banda ancha móvil con su correspondiente módem usb. Un Huawei E226. Se conecta a las mil maravillas y todo bien, lo único que para que lo reconozca, ya que lo reconoce como módem y no como pen-drive ni nada, tengo que enchufarlo antes de encender el ordenador, lo cual no es que sea incomodísimo, pero a veces que se me olvida hacerlo, pues eso, a reiniciar se ha dicho. Recordé que cuando te pregunté acerca de la Memory Stick me hablaste de esto del fstab, para poder montar el módem y poder enchufarlo cuando me dé la gana.

    Si sabes cómo puedo hacerlo, te agradecería que me lo comentaras.

    De todas maneras muchas gracias y felices fiestas.

    ResponderEliminar
  2. Ganaël:
    El hecho de que algo se conecte al pc a través de un puerto usb no significa necesariamente que se pueda automontar como un pendrive, editando el archivo /etc/fstab.
    Sobre tu módem he encontrado esta página donde parece que explican como hacerlo: http://www.taringa.net/posts/info/1221276/huawei-e226--con-claro-arg-funcionando-en-ubuntu.html

    ResponderEliminar
  3. Muchas gracias compañero por la pronta respuesta, la verdad es que ya había visto este post, pero a parte de que dan datos de Argentina, lo cual no me sirve, a ellos les pasa lo contrario, es decir si yo conecto el módem cuando el ordenador está ya encendido, no me lo reconoce ni como módem ni como usb, ni nada.

    Pnsé que podría haber una manera desde etc/fstab, pero si no, prefiero dejarlo como está y no arriesgarme a desconfigurarlo todo y quedarme sin internet, imagínate, sin internet no podría daros la lata como os la doy!!!

    Feliz año.

    ResponderEliminar
  4. En http://geowworld.blogspot.com/2011/08/como-poner-la-carpeta-windows-dentro-de.html explican como montar la partición Windows como un directorio mas dentro de /home/usuario

    Dice:
    Montar la partición windows en /home, editando /etc/fstab con:
    uuid=****** /home/windows ntfs defaults,umask=007,gid=46 0 0

    hay que sustituir los asteriscos por el número adecuado al de la partición windows

    ResponderEliminar
  5. Muchas gracias por esta pequeña clase.Me ha servido de mucho

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.