Unidades de disco en Linux

Particiones lógicas y primarias

  • Particiones primarias

    Las particiones más usadas son las primarias, pero los discos duros sólo pueden contener cuatro, debido al límite del tamaño de la tabla de particiones.

  • Particiones lógicas

    Sin embargo, por cuestiones de administración y de seguridad, muchas veces conviene tener más de 4 particiones. Para poder tener más de 4 particiones en un disco duro se usan particiones lógicas. Se pueden crear hasta 60 particiones lógicas en un disco IDE (12 en un disco SCSI): Linux las numera a partir de 5 porque las posiciones de 1 a 4 las reserva para las 4 particiones primarias posibles.

  • Partición extendida

    Todas las particiones lógicas son contenidas en una partición extendida que no contiene datos sino que actúa como contenedor de las particiones lógicas. Sólo puede haber una partición extendida por disco: en ese caso el disco podrá contener 3 primarias y 1 extendida. La partición extendida no hace falta crearla, el particionador de Debian la creará automáticamente al crear una partición lógica.

Partición swap

¿Por qué debo crear una partición swap y cuántos megas debo asignarle?

Con el fin de incrementar la memoria RAM disponible, Linux utiliza el disco duro como RAM virtual (aunque disponga de suficiente memoria RAM física), llamándose ese área del disco duro espacio de intercambio o swap.

Esto lo hacen todos los sistemas operativos: sin duda, simular la costosa memoria RAM con la barata memoria del disco duro es una buena idea, aunque algunos sistemas operativos lo hacen de manera más eficiente que otros. Windows simula memoria RAM física de un modo desordenado, simplemente coloca bits allí donde encuentra espacio: por eso se mueve tanto el disco duro cuando la computadora está pensando. Los sistemas UNIX, en cambio, simulan memoria RAM física en una partición especial (swap) que por regla general tiene el doble de tamaño que la memoria RAM física (si tienes 128 MB de RAM la partición swap tendrá 256 MB).

La memoria swap es mucho más lenta que la memoria RAM física, pero permite al sistema ejecutar aplicaciones grandes guardando en el disco duro partes de código que están inactivas o aumentar el número de usuarios que el sistema puede atender a la vez.

Atención

Aunque Linux puede funcionar sin swap, por motivos de rendimiento es conveniente crear siempre una partición swap.

¿Son necesarias otras particiones además de swap y raíz?

No, Linux puede funcionar tan sólo con swap y raíz (/). Esta disposición es la más recomendable para nuevos usuarios y para aquellos equipos que sólo los utiliza un único usuario, ya que simplifica la instalación y nos evita el problema de quedarnos sin espacio en alguna partición mientras sobra en otras.

Sin embargo, los usuarios avanzados generalmente utilizan otras particiones además de swap y raíz (/), como por ejemplo /home (donde se ubican los archivos personales de los usuarios) y /var (donde se ubican los archivos del sistema que varían de tamaño, como logs, buffers, etc.), y esto se debe a dos motivos:

  1. Es más seguro para la integridad de los datos tener varias particiones.

    En caso de problemas se podría reiniciar el sistema con un dispositivo de rescate, montar /home y copiar su contenido a un CD o a la red sin perder información, aunque esto no debería preocuparnos demasiado si hacemos copias de seguridad con regularidad.

  2. Es más seguro para la estabilidad del sistema tener varias particiones.

    Si un usuario ocupa gran cantidad de espacio en /home, o si alguna aplicación comienza a generar gran cantidad de logs en /var, en caso de que estos directorios están en particiones individuales se podrá llenar esa partición pero no la partición raíz (/), por lo que la estabilidad del sistema no peligrará: simplemente el proceso dejará de escribir. En caso contrario, si tenemos sólo la partición raíz (/), ésta se llenará y probablemente el sistema se cuelgue.

Sistemas de archivos

Ext2, Ext3, ReiserFS, XFS, JFS. ¿Cuál es el mejor sistema de archivos?

En Windows existen los sistemas de archivos FAT32, NTFS, etc. En Linux existen varios:

  • Ext2

    Fue el sistema de archivos de Linux durante muchos años, estable, eficiente y flexible, pero no tiene journaling, lo que significa que las comprobaciones rutinarias al arrancar pueden tardar bastante tiempo y que un apagón puede afectar a la integridad de los datos.

  • Ext3

    Es una extensión de Ext2 con journals, estable y con un rendimiento similar a Ext2. Guarda más información sobre los datos que los demás sistemas con journals, lo cual lo hace más seguro y algo más lento.

  • ReiserFS

    Basado en journals, estable y rápido. Es el más veloz manejando archivos de tamaño normal.

  • XFS y JFS

    Basados en journals, estables y rápidos, especialmente con archivos enormes de cientos de megas e incluso gigas. Están optimizados para plataformas Linux que dispongan de dispositivos de almacenamiento SCSI de alto rendimiento. Se utilizan en la industria gráfica de efectos especiales y en grandes servidores de bases de datos.

Conclusión

Los sistemas de archivos más usados para Linux son Ext3 y ReiserFS, cualquiera de los dos será buena elección.

¿Qué es el journaling?

El journaling se basa en el concepto de journal o registro y permite que si se apaga inadecuadamente la máquina, al arrancar no necesita hacer un chequeo de comprobación sino que recupera automáticamente su último estado.

El journal guarda la información de las modificaciones de los archivos en el dispositivo de almacenaje, de esta manera si la máquina se apaga por un fallo eléctrico u otra eventualidad, el sistema en lugar de revisar todo el disco duro buscando inconsistencias acude exactamente al punto donde el journal le indica que existe un error y lo repara. Esto proporciona mayor integridad a los datos y más rapidez en la detección de errores.

Acceder a unidades de disco

  • ¿Cómo nombra Linux los discos duros?

    En Linux el primer disco duro IDE se conoce como /dev/hda. Si tenemos un segundo disco duro IDE se llamará /dev/hdb, etc.

    Los discos duros SCSI y SATA se denominan /dev/sda, /dev/sdb, etc.

  • Acceder a unidades de disco

    Para acceder a una unidad de disco (partición, CD, disquete, unidad de red o imagen), hay que montarla con el comando mount. Su sintaxis es:

    # mount -t <file_sustem> <dispositivo> <directorio>

    Por ejemplo:

    • para montar una partición FAT de Windows:
      # mount -t vfat /dev/hda1 /mnt
    • para montar un disquete MS-DOS:
      # mount -t msdos /dev/fd0 /media/floppy
    • para montar el CD:
      # mount -t iso9660 /dev/cdrom /media/cdrom
    • para montar un CD-RW haremos:
      # mount -t udf /dev/cdrom /media/cdrom
    • para montar un archivo imagen:
      # mount -o loop /home/francis/qemu.img /mnt
  • Montar en el inicio

    Las unidades que figuran en /etc/fstab se montan automáticamente al iniciar el sistema. El contenido de /etc/fstab es:

    # File_system  Mount_point     Type    Options      Dump  Pass
    proc           /proc           proc    defaults       0      0
    /dev/hda2      /               ext3    defaults       0      1
    /dev/hda5      none            swap    sw             0      0
    /dev/hdd       /media/cdrom0   iso9660 ro,user,noauto 0      0
    /dev/fd0       /media/floppy0  auto    rw,user,noauto 0      0

Desmontar unidades de disco

  • Desmontar unidades de disco

    Antes de sacar el disquete o el CD debemos desmontarlo:

    # umount dispositivo

    Si sacamos el disquete sin desmontarlo puede que el kernel no haya volcado los últimos cambios, con lo que perderemos esos datos.

  • Error ‘Device is busy’

    Si al intentar desmontar una unidad obtenemos el error:

    No se pudo desmontar dispositivo, el dispositivo est&aacute; ocupado

    algún proceso está leyendo esa unidad. Para saber cuál es el proceso usaremos el comando fuser (paquete psmisc):

    $ fuser -v /dev/fd0
                 USER     PID  ACCESS  COMMAND
    /dev/fd0:    francis  265  f....   xfe

    Vemos que el proceso 265 xfe tiene el dispositivo abierto, de manera que si queremos desmontar la unidad tendremos que dejar que termine o matarlo. El comando fuser, con la opción -k, nos permite matar directamente los procesos que están usando el dispositivo:

    # fuser -k /dev/fd0
  • Expulsar un CD

    El comando eject (paquete eject) expulsa el CD, desmontándolo si es necesario.

Comprobar las unidades de disco

  • Unidades montadas: mount sin argumentos mostrará las unidades montadas.
  • Espacio ocupado en el disco: el comando df (disk free) informa del espacio usado en las unidades de disco que se encuentran montadas:
    $ df
    S.archivos  1K-blocks   Used   Available Use% Montado en
    /dev/hdd1    6040288   3247924  2485528   57% /
    /dev/hda2   11719052   3526412  8192640   31% /home
    none          128008         0   128008    0% /dev/shm

    Y el comando du (disk usage) muestra el espacio ocupado por un directorio:

    $ du /mnt
    2928    /mnt
  • Chequear y reparar un filesystem Linux: el comando fsck (file system check) permite chequear y reparar un filesystem Linux o de otro tipo.

Manejar unidades de disco en el entorno gráfico

Para manejar unidades de disco en el entorno gráfico disponemos de varios frontales para mount, df y du:

  • KDiskFree (paquete kdf): frontal de df, du y mount de KDE.

    KDiskFree

  • Baobab (paquete baobab): frontal de df/du de GNOME.

    Baobab

  • FileLight (paquete filelight): frontal de df/du de KDE, muestra mediante segmentos concéntricos el espacio de disco usado.

    FileLight

Artículos en la categoría "Archivos y directorios en Linux"

  1. Estructura de directorios FHS en Linux
  2. Renombrado masivo de archivos en Linux
  3. Buscar archivos en Linux
  4. Comparar archivos en Linux
  5. Unidades de disco en Linux
  6. Formatear disquetes en Linux
  7. Disquetes de arranque en Linux

Un comentario:

  1. Quiero clonar Mandriva que tengo instalado en una PC que tiene un HDD IDE, el proceso se hace bien con el programa Acronis, pero cuando hago hago el clone para un arreglo de disco SCSI no logro levantar el Linux nuevamente.

    Gracias por cualquier ayuda.