Creación de sistemas de ficheros

Para crear un sistema de ficheros lo primero que tenemos que hacer es crear una partición. Para ello podemos utilizar el comando fdisk o parted.

Los sistemas de ficheros ext2/ext3

El comando mkfs

Este comando es utilizado para crear los sistemas de ficheros ext2 y ext3, entre otros. Para más información mirar la página del manual.

Su sintaxis es muy sencilla:

[root@sal]# mkfs -t ext2 /dev/fd0
mke2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
184 ubidesm 1440 blocks
72 blocks (5.00\%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
184 inodes per group

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or 
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@sal]# 

La opción más interesante es -c para que busque bloques en mal estado durante el formateo.

Sugerencia

Para los tipos de sistemas de ficheros manejados por mkfs existe el comando mkfs.tipo donde tipo es ext2, ... y su uso es igual al de mkfs sólo que no es necesario especificar el tipo de sistema de ficheros a crear.

Conversión de sistemas de ficheros en ext2 a ext3

En GNU/Linux los sistemas de ficheros más extendidos son ext2 y ext3.

En realidad ext3 se puede considerar como ext2 con algunas mejoras. La más significativa de ellas es el journaling.

Para convertir un sistema de ficheros ext2 a ext3:

[root@sal]# tune2fs -j /dev/sda1

El superbloque y tune2fs

El superbloque es bloque especial que contiene información sobre el sistema de ficheros. Para los sistemas de ficheros ext2/ext3 se puede ver o modificar con tune2fs:

[root@sal]# tune2fs -l /dev/hda2
tune2fs 1.40-WIP (02-Oct-2006)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          85314ef9-3429-42d2-b8bc-41b51b328ffa
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              24068096
Block count:              48104626
Reserved block count:     2405231
Free blocks:              43311411
Free inodes:              23958460
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1012
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         16384
Inode blocks per group:   512
Filesystem created:       Sun Mar 25 06:10:23 2007
Last mount time:          Thu Apr  5 04:55:15 2007
Last write time:          Thu Apr  5 04:55:15 2007
Mount count:              9
Maximum mount count:      26
Last checked:             Sun Mar 25 06:10:23 2007
Check interval:           15552000 (6 months)
Next check after:         Fri Sep 21 06:10:23 2007
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      1ff4a0e4-fceb-45c1-93f8-5e9799e39496
Journal backup:           inode blocks
[root@sal]# 

Las opciones más interesantes que podemos realizar:

  • -c n indicar después de cuantas operaciones de montaje se ha de realiza el chequeo del sistema de ficheros.

  • -j añadir la zona de journaling a un sistema de ficheros ext2 para convertirlo en ext3.

  • -C n cambiar el número de veces que el sistema ha sido montado. Si se estable a un valor mayor del indicado por -c n en el siguiente montaje se chequeará de forma automática.

  • -g gid indicar el GID del grupo para el que se reservará espacio en el sistema de ficheros.

  • -i n [d|w|m] establece el periodo máximo de tiempo tras el cual se chequeará el sistema de ficheros. Independientemente de si se ha llegado al número máximo de operaciones de montaje.

  • -L label establece la etiqueta del sistema de ficheros.

  • -m n establece el tanto por ciento de bloques que se reservan.

  • -r n establece el número de bloques que se reservan.

  • -u uid establece el usuario para el que se reservará espacio.

El comando mke2fs

La función de este comando es la de crear sistemas de ficheros ext2/ext3 y su uso es preferible al de mkfs.

Se utiliza el fichero /etc/mke2fs.conf para determinar los valores por defecto cuando se crea un sistema de ficheros.

Aviso

No modificar /etc/mke2fs.conf a menos que se sepa lo que se está haciendo.

Recuperación de sistemas de ficheros ext2/ext3

Cuando nos encontremos errores en los sistemas de ficheros tendremos que chequearlos y para ello tendrán que estar desmontados.

El comando utilizado para chequear estos sistemas de ficheros es e2fsck.

Algunas opciones interesantes:

  • -b n donde n indica una copia del superbloque.

    En los sistemas de ficheros ext2/ext3 se hacen copias de seguridad del superbloque repartidas por todo el sistema de ficheros (ver página del manual).

  • -c se utiliza el comando badblocks para localizar bloques defectuosos y marcarlos como tales.

  • -f forzar el chequeo aunque el sistema de ficheros parezca limpio.

  • -p reparará de forma automática el sistema de ficheros si se puede hacer de forma segura.

Sugerencia

Al igual que en el caso de mke2fs existía mkfs para chequear sistemas de ficheros también se puede utilizar el comando fsck.

El comando badblocks

Este comando se utiliza para localizar bloques defectuosos en un sistema de ficheros.

La forma más sencilla de utilizarlo es:

[root@sal]# badblocks /dev/sda1

Sugerencia

Podemos guardar la lista de bloques defectuosos en un fichero utilizando -o filename.

El sistema de ficheros ReiserFS

ReiserFS es otro sistema de ficheros transaccional.

Sugerencia

Será necesario instalar las utilidades de administración de dicho sistema de ficheros ya que no se suelen instalar por defecto.

Las principales utilidades de administración son:

  • mkreiserfs para crear sistemas de ficheros.

  • reiserfsck para chequear sistemas de ficheros.

  • reiserfstune para ajustar los parámetros del sistema de ficheros.

  • resize_reiserfs para redimensionar sistemas de ficheros.

El sistema de ficheros JFS

Este sistema de ficheros lo desarrolló IBM y al igual que ext3 y ReiserFS es un sistema de ficheros transaccional.

Sugerencia

Será necesario instalar las utilidades de administración de dicho sistema de ficheros ya que no se suelen instalar por defecto.

Las principales utilidades de administración son:

  • jfs_mkfs para crear sistemas de ficheros.

  • jfs_fsck para chequear sistemas de ficheros.

  • jfs_tune para ajustar los parámetros del sistema de ficheros.

El sistema de ficheros XFS

Este sistema de ficheros lo desarrolló SGI y al igual que ext3 y ReiserFS es un sistema de ficheros transaccional.

Sugerencia

Será necesario instalar las utilidades de administración de dicho sistema de ficheros ya que no se suelen instalar por defecto.

Las principales utilidades de administración son:

  • mkfs.xfs para crear sistemas de ficheros.

  • xfs_check para chequear sistemas de ficheros.

  • xfs_repair para reparar sistemas de ficheros.

  • xfs_admin para ajustar los parámetros del sistema de ficheros.

  • xfs_freeze congela el acceso al sistema de ficheros. Util para la creación de snapshots.

  • xfs_growfs redimensionar el sistema de ficheros.

  • xfs_quota manejo de cuotas.