Sistema de Archivos
Sistema de Archivos
Objetivos:
- Manejo del sistema de archivos:
o Particiones o Tipos de sistema de archivos o Montajes o Uso del espacio y verificación.
En GNU/Linux, los archivos se organizan en directorios, y se distribuyen en un gran árbol formando la jerarquía de archivos que cuelga de /.
Los archivos y directorios pueden encontrarse en distintos dispositivos, el comando mount permite anexar el sistema de archivos situado en un determinado dispositivo al árbol de archivos principal. Por otra parte, el comando umount permite desmontarlo. Particiones:
Hay tres tipos de particiones:
- primaria: almacena su información en el MBR, como el MBR puede almacenar hasta 512 bytes, sólo pueden definirse cuatro particiones primarias.
- extendida: es una partición primaria especial (una de las cuatro posibles particiones primarias) la cual contiene más particiones.
- lógica: es aquella que está dentro de la partición extendida, no se definen dentro del MBR, sino que se declaran dentro de la partición extendida.
Comandos:
- fdisk, elemental pero funciona casi siempre
o fdisk -l lista todas las particiones o fdisk /dev/sda modifica la tabla de particiones del disco sda
- cfdisk, en terminal con curses (parece ventana gráfica), no siempre funciona.
- parted, una herramienta potente (y peligrosa); hay versión gráfica gparted, no instalada por defecto.
Generalmente se crean dos particiones / (root filesystem) y swap (área de intercambio) para instalaciones de tipo usuario final, para instalaciones mas técnicas se utilizan varias particiones como / /boot /home /opt /tmp /usr /var swap, las cuales pueden estar montadas desde diferentes discos o incluso por red; esto se realiza para separar las partes estáticas de las dinámicas del sistema, realizar backups mas fácilmente.
Tipos de sistema de archivos:
- GNU/Linux: el estandard ext2, ext3 evolución del anterior con concepto de journaling (soporte de log de operaciones realizadas en el sistema de fichero que puede permitir su recuperación en caso de algún desastre que lo haga inconsistente), y actualmente ext4 con importantes reducciones del tiempo de arranque.
- No GNU/Linux (Windows): msdos, vfat, ntfs, acceso a los diferentes sistemas de fat16, fat32, y ntfs respectivamente.
- Sistemas asociados a soportes físicos, como CD/DVD como los iso9660, y udf.
- Otros sistemas Unix, FS2 (IBM), XFS (SGI), o ReiserFS, ofrecen generalmente mejor rendimiento a veces a costa de mayor consumo de recursos.
- Sistemas de ficheros en red (más tradicionales): NFS, Samba (smbfs, cifs), permiten acceder a sistemas de ficheros disponibles en otras máquinas de forma transparente por red.
- Pseudo Sistemas de ficheros, como procfs (/proc) o sysfs (/sys).
Montajes:
- Para montar una partición o un dispositivo se debe crear primero el directorio a donde lo vamos a montar, por ejemplo:
$ sudo mkdir /media/<nombre_carpeta>
- El comando para montaje es mount:
$ sudo mount -t <sistema_archivos> [-o <opciones>] /dev/<particion> <carpeta_montaje>
<sistema_archivos>:puede ser vfat (FAT16 y FAT32), ntfs (NTFS) o ufs (UFS y UFS2) u otros.
<opciones>: puede tomar más de un valor, y se separan con comas, por ejemplo defaults (valores por defecto), ro (Read Only), ufstype (para especificar el tipo de sistema de archivos UFS).
<particion>: es el identificador de la partición que vamos a montar; pude ser sdxy en caso de ser un disco SATA, donde la x es la letra del disco rígido (a para el primero, b para el segundo, etc.) y la y es el número de partición (1 para la primera, 2 para la segunda, etc.).
Para saber el nombre de las particiones que tenemos en el equipo, basta con ejecutar el siguiente comando:
$ sudo fdisk -l
- Ejemplos:
$ sudo mount -t vfat /dev/<particion> /media/<carpeta_montaje>
$ sudo mount -t ntfs /dev/<particion> /media/<carpeta_montaje>
$ sudo mount -t ufs -o ro /dev/<particion> /media/<carpeta_montaje>
$ sudo mount /dev/<particion> /media/<carpeta_montaje>
- Para que la partición se monte cada vez que iniciamos el sistema, editar archivo /etc/fstab:
$ sudo vi /etc/fstab
- Para montar todos los dispositivos listados en el archivo /etc/fstab tenemos que ejecutar el siguiente comando:
$ sudo mount -a
- /etc/mtab, muestra lo que está montado.
- El comando umount es para desmontar.
$ sudo umount <carpeta_montaje> o /dev/<particion>
- Para desmontar medios extraíbles como un cd-rom, se puede usar el comando eject
$ eject /dev/cdrom
- Para montar una imagen iso en un directorio:
sudo mount -o loop -t iso9660 <imagen iso> <punto de montaje>
ls -l <punto de montaje>
sudo umount <punto de montaje>
Uso de espacio y verificación:
- Espacio en disco, uso del disco, comandos df, du y baobab:
$ df, por partición
$ df -h muestra en unidades GB, BM, etc; es "h" por "human readable". $ du, por directorio
$ du -h muestra en unidades GB, BM, etc. baobab <directorio>, herramienta gráfica para uso de disco, puede DEMORAR MUCHO si se le pide analizar todo el disco, empezar por baobab -h, o baobab <directorio chico>.
- El espacio en disco se puede controlar fijando cuotas por usuario o grupo de usuarios, paquete quota, no instalado por defecto. Inconveniente: enlentece.
- Verificación del sistema de archivos comando fsck
Qué procesos usan qué recursos: fuser; e.g. fuser -mv <archivo o directorio>
Información de procesos que usan un recurso: ps -fp `fuser -m /home/victor`
Referencias:
- http://www.debian.org/doc/manuals/debian-reference/ch-tutorial.es.html#s-unixfile
- http://www.gentoo.org/doc/es/handbook/2005.1/handbook-x86.xml?part=1&chap=4
- http://www.guia-ubuntu.org/index.php?title=Particionar_el_disco_duro
- http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/administracion-avanzada-del-sistema-operativo-gnu-linux/materiales/ (Modulo 5 – Administración local)
- http://www.guia-ubuntu.org/index.php?title=Montar_particiones