Está en la página 1de 109

Unidad 103: Sistema de Archivos

104.1: Crear particiones y FS (2)


104.2: Manteniendo la integridad del FS (3)
104.3: Control de montaje de sistema de archivos (3)
104.4: Manejar cuotas (1)
104.5: Permisos y propietarios
104.6 Crear y cambiar enlaces simbólicos (2)
104.7: Encontrar archivos y localizaciones (2)
Particiones

• Una partición es una división lógica en una unidad de


almacenamiento.

• En las particion alojaremos y organizaremos nuestros archivos


mediante un sistema de ficheros (filesystem).
Particiones MBR

• Existen tres tipos de particiones:

• Partición Primaria .- Sólo pueden haber 4 particiones primarias en


una unidad de disco.
• Partición Extendida .- En realidad es una partición contenedora de
otras particiones. Sólo puede existir una partición extendida en el
disco. Contiene particiones lógicas.
• Partición Lógica .- Son particiones que están dentro de una
partición extendida. Funcionan como las primarias, a excepción de
algún sistema operativo (Windows) que no permite arrancar desde
ésta.
Particiones GPT
– Ventajas de GPT

 Utiliza GUID (UUID) para identificar los tipos de particiones. Sin


colisiones.

 Proporciona un GUID único de disco y un GUID único de partición para


cada partición. Un buen sistema de archivos independiente referenciado
a las particiones y discos.

 Número arbitrario de particiones. Depende del espacio asignado por la


tabla de particiones. No hay necesidad de particiones extendidas y
lógicas. Por defecto, la tabla GPT contiene espacio para la definición de
128 paticiones. Sin embargo, si el usuario desea definir más particiones,
se puede asignar espacio para esto. (Actualmente con la herramienta
gdisk)
Particiones GPT

– Ventajas de GPT

 Utiliza 64-bits LBA para almacenar números del Sector. El tamaño


máximo del disco manejable es de 2 ZiB.

 Almacena una copia de seguridad del encabezado y de la tabla e


particiones al final del disco que ayuda en la recuperación en el
caso de que los primeros estén dañados.

 Checksum CRC32 para detectar errores y daños de la cabecera y en


la tabla de particiones.
)

Particiones

• Particionando nuestro disco, obtendremos las siguientes ventajas:

• Si se daña una partición, las otras particiones permanecen intactas.


• Si tenemos que darle formato a una de las particiones, los datos de las otras
particiones no les afecta.
• Los archivos que crecen rápidamente, como son los logs y archivos de correo,
pueden ser almacenados en particiones separadas para prevenir de que tomen
todo el espacio disponible.
• Actulizaciones son más fáciles de ejecutar porque el sistema y los archivos son
separados unos de otros.
• Los Backups son más simples ya que los archivos del sistema y los datos son
mantenidos en particiones separadas.
• El tiempo requerido para revisar el sistema de archivos es más reducido.
Estructuras

• Cuando generamos un sistema de ficheros (Filesystem) a una partición


de un volumen en linux, crearemos la siguiente estructura:

• El bloque de arranque (boot) .- Ocupa la parte del principio del


sistema de archivos, normalmente en el primer sector, y puede
contener el código de arranque. Este código es un pequeño
programa que se encarga de buscar el sistema operativo y cargarlo
en memoria.
Estructuras
• Cuando generamos un sistema de ficheros (Filesystem) a una partición de un
volumen en linux, crearemos la siguiente estructura:

• El superbloque .- Describe el estado de un sistema de archivos. Contiene


información acerca de su tamaño, total del archivo que puede contener,
qué espacio libre queda, etc. Dependiendo del sistema de archivos, puede
contener:
Número de bloques en sistema de archivos.
Tamaño de bloques
Dirección del primer bloque de datos libre.
Dirección del primer nodo libre.
Varias banderas de estado.(status flags).
Estructuras
• Cuando generamos un sistema de ficheros (Filesystem) a una partición de un
volumen en linux, crearemos la siguiente estructura:

• La lista de i-nodos (nodos índice) .- Se encuentra a continuación del


superbloque. Esta lista tiene una entrada por cada archivo, donde se
guarda una descripción del mismo: situación del archivo en el disco,
propietario, permisos de acceso, fecha de actualización, etc. El
administrador del sistema es el encargado de especificar el tamaño de la
lista de inodos al configurar el sistema.
Estructuras
• Cuando generamos un sistema de ficheros (Filesystem) a una partición de un
volumen en linux, crearemos la siguiente estructura:

• Los bloques de datos .- Empiezan a continuación de la lista de inodos y


ocupa el resto del sistema de archivos. En esta zona es donde se
encuentra situado el contenido de los archivos a los que hace referencia la
lista de inodos. Cada uno de los bloques destinados a datos sólo puede
ser asignado a un archivo, tanto si lo ocupa totalmente como si no.
i-nodos
• Lo primero que vamos a ver es que son los i-nodos. Este concepto
aparecerá continuamente en este tema dedicado a particiones y
filesystem.

• Los i-nodos son metadatos de los datos, o sea, una serie de datos que
complementan al dato en si.

• Un ejemplo para verlo más claro sería disponer en disco de un fichero


de texto MiFichero.doc, que sería el dato en si, y la información del
propietario, permisos de lectura y escritura, fecha de creación,
modificación, etc… que serían los metadatos del dato.
Bloques

• Cuando damos formato a una partición de un volumen, le hemos


de indicar el tamaño del bloque, o bien cogerá un valor por
defecto.

• El bloque será cada una de las porciones en las que se dividirá un


disco para guardar un archivo. El tamaño normal de los bloques
suele ser 1024 bytes.

• Otros posibles tamaños serían 512, 1024 & 2048 Bytes.


FS, o “filesystem”
Sistema para organizar directorios y ficheros ,
para ver como es implementado el disco del
sistema operativo.
En este objetivo veremos como podemos
realizar configuraciones de disco y crear
sistemas de ficheros en un disco duro.
Tipos de FileSystems:
• Ext2fs: sin journal. Buena opción para particiones pequeñas
• Ext3fs: Igual que su predecesor pero con journal añadido
• Ext4fs: Posibilidad de trabajar con FS grandes (32TiB)
• ReiserFS: Con journal y útil para trabajar con FS grandes y muchos archivos. Lo utilizan
alguas distribuciones Linux, como Suse, knoppix, Xandros, Yoper. Actualmente se está
desarrollando Reiser4.
 JFS: Desarrolado por IBM (Journaling FS)
• XFS: Robusto, rápido y flexible. Ofrecido por las versiones de linux más populares: Suse,
Gentoo, Mandriva, Fedora, Ubuntu, ...
• Brtfs: Experimental. Similar a ext4
• FAT: DOS y Windows.
• NTFS: Windows posterior a Windows95. Lectura y sobreescritura desde Linux posible.
Basado en HPFS (OS/2) y HFS (Apple).
• HSF/HSF+: Mac. Limitaciones de escritura.
• ISO-9660: Standard para CD-ROMS
Se van a utilizar varios comandos como:

fdisk  editar y crear la tabla de particiones


mkfs  Crear sistemas de ficheros.
mkswap  Creación de una partición swap.
Fdisk
Edita la tabla de particiones. La información que aparece en cada partición
es:

Active si la partición está marcada como "activa", el cargador de DOS MBR


predeterminado se cargará en el registro de inicio durante el arranque.

Desplazamiento a partir de la partición donde comienza la partición en el


disco.

Tamaño de la partición donde termina la partición.

El tipo de partición cada sistema operativo tiene un código asignado a sus


particiones.
fdisk

 Cualquier usuario puede invocar el comando fdisk, pero únicamente


conseguirá que se muestre la ayuda del comando.

 Para poder gestionar particiones con fdisk, necesitaremos ser usuario


root.

 Aunque en la mayoría de documentación sobre fdisk y volúmenes en


linux siempre hay referencia a la unidad /dev/hda, hay que conocer
que en la actualidad ya no existe esta unidad, ya que se ha sustituido a
partir del kernel 2.6.X? por unidades /dev/sda.
Vamos a añadir un nuevo disco duro a nuestra máquina virtual para poder
trabajar con él.

Con una partición de 5-10 Gb será más que suficiente para las pruebas que
haremos.
Command (m for help): m

Command action
d delete a partition
l list known partition types
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id
w write table to disk and exit
Una tabla de particiones puede parecer algo como :
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 1467 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System


/dev/hda1 1 255 2048256 c Win95 FAT32 (LBA)
/dev/hda2 256 264 72292+ 82 Linux swap
/dev/hda3 265 776 4112640 83 Linux
/dev/hda4 777 1467 5550457+ 5 Extended
/dev/hda5 777 777 8001 83 Linux
Para crear una nueva partición, usamos el opción n.
Ej: Aquí eliminamos una partición, y creamos una partición.

Command (m for help): d we delete a partition


Partition number (1-5): 1 specifically, partition 1
Command (m for help): n create a new partition
Command action
l logical (5 or over)
p primary partition (1-4)
p create a primary partition
Partition number (1-4): 1
First cylinder (1-1467, default 1):
Using default value 1 enter nothing for default
Last cylinder or +size or +sizeM or +sizeK (1-255, default 255):
Using default value 255
Después de modificar la tabla de particiones, lo escribes en el
disco con w.
Los cambios no surten efecto hasta que se reinicie el sistema (o
hasta que las particiones son desmontadas y vuelva a ejecutar
fdisk).
Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition
WARNING: Re-reading the partition table failed with error 16:
Deviceor resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.Syncing disks.able.
mkfs.
mkfs es la interfaz a través del cual se puede hacer cualquier tipo
de sistema de archivos compatible con Linux. Crear particiones
formateadas a cualquier tipo FS
La opción más importante es la t, opción que especifica el tipo
de sistema de archivos.
Para crear un sistema de archivos en/dev/hda1, usarías mkfs
algo como esto:

mkfs [ -V ] [ -t fstype ] [ fs-options ] /dev/hda1


mkfs.

 Hay que tener en cuenta que el hecho de haber creado


una partición de tipo Linux no implica que el formato del
sistema de archivos tenga que serlo. Esto quiere decir que
el sistema de archivos puede ser ext2, ext3, ext4, vfat,
etc... Algunos sistemas puede ser que den algún tipo de
problema con esta incoherencia (Windows), pero por
poner un ejemplo, linux, no va a dar ningún tipo de
problema. Accederá al disco como le indique la tabla de
filesystem, y no la de particiones.
Los siguientes sistemas de archivos pueden estar
disponibles en su sistema:

foo:~ $ /sbin/mkfs <Tab><Tab> for bash command line completion


mkfs mkfs.cramfs mkfs.ext3 mkfs.minix
mkfs.reiserfs
mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.xfs
De estos sistemas de archivos, se debe entender :
mkfs -t ext2, or mke2fs or just mkfs  segundo sistema de
archivos extendido. Mejor que minix.
mkfs –t ext3  con ext2 (más confiable y más lento para algunas
aplicaciones).
mkfs –t reiserfs, or mkreiserfs  un sistema de archivos para
Linux, con almacenamiento de información y consultas de
directorio rápido.
mkfs -t vfat  el sistema de archivo nativo utilizado por
Windows 95 to Windows ME.
mkfs -t xfs SGI's journaling filesystem, ported to Linux
Aquí está un ejemplo de mkfs utilizando el sistema de archivos
ext2

foo:~/tmp $ /sbin/mkfs -t ext2 64M

mke2fs 1.27 (8-Mar-2002)


64M is not a block special device. I know – it's a file.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
16384 inodes, 65536 blocks
3276 blocks (5.00%) reserved for the super user
First data block=1
8 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or


180 days, whichever comes first. Use tune2fs -c or -i to override.
Preguntas: (157)
1. Nombre cuatro sistemas de archivos que pueden
crearse con mkfs.
2. ¿Cuándo lee la tabla de particiones en el disco duro
el kernel?
3. ¿Cuál es el comando para hacer un sistema de
archivos vfat en una partición existente, por ejemplo,
hda3?
Ejecute fdisk/dev/sdb (o el primer disco duro). Realice los
siguientes cambios, pero no
guardar los cambios (a menos que desee practicar utilizando
gpart):
un) borrar todas las particiones uno por uno, usando el comando
d.
b) crear una partición primaria de 64 M, una partición primaria
de 256 Mb y una partición extendida
cubre el resto del disco.
c) dividir la partición extendida en dos de igual tamaño
particiones lógicas.
d) defina el tipo de la segunda partición Linux swap y defina el
tipo de la primera lógica partición de Linux LVM.
mkswap

• Crea un sistema de ficheros de tipo Linux swap.

• Se combina con el modificador “-c” para indicar a


mkswap que a su vez compruebe si hay bloques
dañados en el dispositivo.

• mkswap -c <nombre unidad destino>


mkswap

• Este tipo de particiones se montan y desmontan de


forma diferente.

• Linux soporta hasta 16 particiones de tipo swap por


separado.
• swapon  Monta un sistema de ficheros de paginación.

• Swapoff  Desmonta un sistema de ficheros de


paginación.
mkswap

• También podemos utilizar un archivo de intercambio, en


lugar de una partición.

• Esto lo podemos llevar a cabo en caso de tener ya


particionado el disco y ocupadas las particiones.

• Puede ser que en el momento hacer las particiones


fuera suficiente la que generamos de swap, pero ahora
las necesidades hayan crecido.
mkswap

• Creamos un archivo swap. Como admin: dd


if=/dev/zero of=/media/swapfile bs=1M count=256

• Le damos formato: mkswap /media/swapfile

• La tenemos que activar: swapon /media/swapfile

• Con esto ya debería de estar funcionando.

• Para ver como se suma a nuestra partición swap,


utilizamos free -m
mkswap

• Si queremos comprobar si está activado nuestro fichero


swap además de nuestra partición, utilizaremos cat
/proc/swaps

• Para desactivar nuestro fichero swap, utilizamos el


comando swapoff <nombre fichero swap>
Montar y desmontar sistemas de ficheros

• Dentro de GNU/Linux, los sistemas de ficheros se


utilizan con más frecuencia al montarse, es decir,
asociarse a un directorio.

• Esto se puede hacer una única vez empleando


herramientas como mount (y desmontando con
umount), o de manera permanente en cada reinicio,
modificando el fichero /etc/fstab
Montar y desmontar sistemas de ficheros

• Linux posee el comando mount para montar un


sistema de ficheros en un punto de montado.

• El comando umount invierte este proceso.

• En la práctica, no es complicado utilizar estos


comandos, aunque admiten un gran número de
opciones.
Montar y desmontar sistemas de ficheros (mount)

• La sintaxis básica de mount es la siguiente: mount <dispositivo>


<punto_de_montado>. Si escribimos únicamente mount, nos
mostrará las unidades montadas actualmente.

• Por ejemplo, podríamos utilizarlo de la siguiente forma: mount


/dev/sdb1 /mnt. Con esto le indicamos que monte la partición
1 del segundo disco en el directorio /mnt.

• Si le añadimos el modificador –a, le indicaremos que monte


todos los sistemas de ficheros listados en /etc/fstab
Montar y desmontar sistemas de ficheros (mount)

• Con el parámetro –r le indicamos que monte el


sistema de ficheros en modo “sólo lectura”. Lo hará
independientemente de si el sistema es de sólo
lectura o lectura-escritura.

• Si añadimos el modificador –v nos proporciona una


salida más detallada donde se producen comentarios
sobre las operaciones que se van produciendo.
Montar y desmontar sistemas de ficheros (mount)

• El parámetro –w monta el sistema de ficheros para


operaciones de lectura-escritura. Este es el
comportamiento por defecto para la mayoría de los
sistemas de ficheros, aunque algunos drivers
experimentales sólo funcionan en modo lectura.
(Ejemplo HFS+).
Montar y desmontar sistemas de ficheros (mount)

• Si queremos especificar el tipo de sistema de ficheros


a montar, utilizaremos el modificador –t <tiposf>,
donde tiposf lo sustituimos por el tipo de sistema de
ficheros a montar. Los más comunes son ext2, ext3,
ext4dev, raiserfs, jfs, xfs, vfat, msdos, iso9660, udf,
nfs, smbfs y cifs (estos últimos para compartir en red
smb/cifs). Se admiten muchos más, y si omitimos
este parámetro, se utilizará el modo auto y se
intentará autodetectar el sistema de ficheros.
Montar y desmontar sistemas de ficheros (mount)

• También se incluye la opción de montar a partir de la


etiqueta de volumen con –L, o indicando el UUID, con
–U.

• Linux suele hacer un buen trabajo de detección del


tipo de sistema de ficheros y los parámetros por
defecto se suelen comportar razonablemente bien.
Montar y desmontar sistemas de ficheros (mount)

• Sólo root puede ejecutar el comando mount, pero si


en el /etc/fstab se especifican las opciones user, users
u owner, un usuario normal podría montar un
sistema de ficheros indicando únicamente el
dispositivo o el punto de montado, aunque no podría
indicar ambos.

• Los dispositivos extraíbles se suelen montar de forma


automática y, en los entornos GUI, se puede abrir un
explorador de archivos para el disco insertado.
Montar y desmontar sistemas de ficheros (umount)

• Este comando es más sencillo que umount, y su


sintaxis básica es umount <unidad para desmontar>
o bien umount <punto de montaje>

• Para poder hacer que el sistema intente desmontar


todas las partciones definidas en /etc/mtab (fichero
que contiene todas las unidades montadas)
utilizaremos el modificador –a. Esta operación sólo
tendrá un éxito parcial, ya que no podrá desmontar
algunos sistemas de ficheros clave, como la partición
raíz (/).
Montar y desmontar sistemas de ficheros (umount)

• Para forzar el desmontado de una unidad, utilizaremos el


parámetro –f.

• En caso de que queramos convertir un montaje de lectura-


escritura, en uno de sólo lectura, le indicaremos el modificador
–r.

• Con el modificador –t le indicamos un tipo específico de sistema


de ficheros que queremos que desmonte. El formato sería –t
<tiposfs>. Si queremos indicar varios sistemas de ficheros, lo
separaremos por comas.
Montar y desmontar sistemas de ficheros (umount)

• No debemos extraer una unidad externa sin


desmontarla previamente, ya que Linux utiliza por
defecto la escritura asíncrona. Con este método,
Linux utiliza un buffer de escritura que vuelca cuando
desmontamos la unidad.
Montar y desmontar sistemas de ficheros (fstab)

• Es el fichero de configuración donde se indican los


sistemas de ficheros que se montarán
automáticamente en el arranque. Se encuentra en el
la dirección /etc/fstab

• Si hacemos cat sobre el fichero fstab o lo editamos,


vemos que está dividido en una serie de campos, que
vemos a continuación.
Montar y desmontar sistemas de ficheros (fstab)

• El primer campo que tenemos que indicar es el


sistema de ficheros que queremos montar. Este lo
podemos indicar por su UUID o por localización. Por
ejemplo /dev/sdb1

• El siguiente campo es el punto de montaje donde


queremos que se monte automáticamente el sistema
de ficheros. Por ejemplo /media/discoLinux.
Montar y desmontar sistemas de ficheros (fstab)

• El siguiente campo que hay que indicar es el tipo de


ficheros que utilizaremos. Siguiendo con el ejemplo
anterior, utilizaremos ext4, que es el formato que
tiene nuestro sistema de ficheros en /dev/sdb1.

• A continuación tendremos que indicar las diversas


opciones que queramos que tenga nuestra unidad a
montar. Normalmente se utiliza la opción defaults
Montar y desmontar sistemas de ficheros (fstab)

• El quinto campo es 0 o 1, y en él lo que indicamos es


que la herramienta dump haga una copia de
seguridad del sistema de archivos en caso de error.
Aunque no utilicemos esta herramienta, hay que
indicar un valor necesariamente.
Montar y desmontar sistemas de ficheros (fstab)

• En la última columna tenemos que indicar el orden


de revisión del sistema de ficheros. Puede tener los
valores:
• 0  indica que no se revise el sistema de
ficheros. Se utiliza normalmente en montajes
swap.
• 1  Es la prioridad más alta. Se suele utilizar en
el montaje raíz. (/).
• 2  Es la prioridad normal. Se suele utilizar en el
resto de montajes.
Mantenimiento integridad FS

• df  disk free
• du  disk usage
• fsck  filesystem check
• e2fsck  filesystem chek for ext2
• mke2fs  make ext2 filesystem
• dumpe2fs  show ext2 filesystem parameters
• tune2fs  change ext2 filesystem parameters
Mantenimiento integridad FS (df)

• Viene de disk free. Si invocamos este comando sin


parámetros nos indicará el tamaño de cada uno de los
sistemas de ficheros montados.

• Combinado con la opción –h nos mostrará la


información anterior de forma mucho más legible. df -h

• El parámetro --total nos mostrará una línea adicional al


final de la información del comando, donde se nos
resume el total de los valores que nos muestra.
Mantenimiento integridad FS (df)

• Si utilizamos el modificador -H nos mostrará la información con la


unidad mayor posible, pero además utilizará el método de
redondeo de 1.000 en lugar de su valor de 1.024.

• El modificador –T muestra el tipo de filesystem que tienen cada


una de las unidades montadas.

• Si lo que queremos es mostrar el resumen de algún filesystem


concreto, utilizaremos la opción –t. Por ejemplo, si queremos
visualizar los sistemas montados con formato ext4, utilizaremos df
–t ext4
Mantenimiento integridad FS (du)

• Viene de disk usage. Se utiliza para conocer el tamaño


de un directorio o carpeta.

• Si lo utilizamos directamente, toma como raíz el


directorio donde nos encontremos. Aparecerán todos
los subdirectorios que tenga y al final el total ocupado
por estos.
Mantenimiento integridad FS (du)

• Con el modificador –h os mostrará la información de


una forma más legible. Utilizará la unidad de medida
más acorde para la información mostrada.

• El modificador –b nos muestra la información como lo


harían los sistemas antiguos, en bytes.

• También le podemos indicar el directorio que queremos


que nos muestre su información. Nos mostrará la
información de forma recursiva.
Mantenimiento integridad FS (du)

• Si únicamente necesitamos el total del espacio ocupado


por el directorio en cuestión, podemos hacer uso del
modificador –s. Este modificador se suele combinar con
–h para más claridad. du –sh

• El modificador –c añade al final de la información


mostrada una línea donde se indica el total de espacio
ocupado por el directorio.
Mantenimiento integridad FS (du)

• Si necesitamos mostrar también el tamaño que ocupan


los ficheros que contenga el directorio y sus
subdirectorios, utilizaremos el modificador –a.

• Con lo visto hasta ahora, ¿qué efecto tendría el


comando du –ash ? ¿Alguno sabe por qué?
Mantenimiento integridad FS (du)

• En el caso de que queramos que nos muestre la


información de uso de las diferentes carpetas y
subcarpetas, pero no querer que nos muestre el tamaño
acumulado, utilizaremos el modificador –S. Si
utilizamos este modificador, toma sentido utilizar el
modificador de gran total -c
Mantenimiento integridad FS (fsck)

• Este comando se utiliza para detectar, verificar y


corregir los posibles errores del sistema de archivos.

• Este comando unifica una serie de utilidades específicas


para cada sistema de archivos. Algunos son:
• efsck – para ext
• e2fsck – para ext2
• dosfsck – para msdos
• fsckvfat – para vfat …
Mantenimiento integridad FS (fsck)

• Podemos ver las diferentes utilidades con el comando ls


–l /sbin/*fsck*

• El comando fsck se ejecuta automáticamente al inicio


del sistema, ya sea porque se ha detectado una
anomalía o simplemente por puro control.

• En realidad este comando no es más que un front-end


de las diversas aplicaciones que mencionamos
anteriormente.
Mantenimiento integridad FS (fsck)

• Vamos a ver las distintas variedades específicas de este


comando escribiendo en consola fsck <tab> <tab>

• Cabe destacar que no existe fsck para chequear


sistemas de ficheros ntfs.

• Para poder chequear una partición, aunque no es


imprescindible, se recomienda encarecidamente que la
unidad esté desmontada. En caso de no estar
desmontada, fsck nos mostrará un mensaje de
advertencia.
Mantenimiento integridad FS (fsck)

• En caso de chequear una unidad sin desmontar, y que


previsiblemente tenga ficheros en uso, la tragedia es
inevitable al 99,99 %

• La sintaxis de este comando sería fsck –t <sistema de


archivos/unidad a chequear>

• Las versiones actuales del comando fsck reconocen de


forma automática el tipo de sistema de ficheros a
chequear, aunque también se lo podemos indicar de
forma manual.
Mantenimiento integridad FS (fsck)
• Si utilizamos el modificador –f, el sistema fuerza un
chequeo aunque no lo necesite.

• Usando el modificador –p, reparará los errores que


encuentre en nuestro sistema de ficheros, sin
informarnos de ello.

• Cada vez que fsck encuentra alguna incidencia en el


chequeo, nos mostrará una pregunta a la que espera
respuesta por nuestra parte yes o no. Con el
modificador –y forzamos la respuesta yes a todas las
preguntas.
Mantenimiento integridad FS (fsck)

• Para obtener información más detallada sobre el


proceso fsck, podemos añadir el modificador –v

• El modificador –c nos mostrará un indicador visual del


proceso. Si unimos estas opciones al modificador –f
podemos ver con cierto detalle como se realiza el
proceso de chequeo. Veamos un ejemplo con el
siguiente comando fsck –fvc /dev/sdb1
Mantenimiento integridad FS (fsck)

• En caso de necesitar hacer un chequeo a una unidad


montada, podemos optar por hacer un chequeo no
destructivo. Para ello utilizaremos el modificador –n

• El chequeo con modificador –n nos mostrará los


posibles errores del sistema de ficheros que le
indiquemos, pero no los intenta reparar. Si lo utilizamos
en una unidad montada, por ejemplo /dev/sda2,
veremos como aparecen una gran cantidad de posibles
errores.
Mantenimiento integridad FS (fsck)

• Hay que tener muy presente que fsck únicamente


detecta y repara errores lógicos en nuestro sistema de
ficheros.

• Esto quiere decir que en ningún momento detectará ni


intentará reparar errores físicos de disco.

• Los daños físicos de disco los detectaremos e


intentaremos reparar con otro comando que veremos
en breve.
Mantenimiento integridad FS (dumpe2fs)

• Este comando nos proporciona información sobre el


sistema de ficheros y tiene un sintaxis muy sencilla.
Dumpe2fs <opciones> <dispositivo>

• El dispositivo es el fichero del dispositivo del sistema de


ficheros, por ejemplo /dev/sdb1.

• Las opciones acepta muy pocas, y son poco conocidas ya


que se utilizan muy poco.
Mantenimiento integridad FS (dumpe2fs)

• La opción más importante de este comando es –h, que


omite la información sobre los descriptores de grupos.
Esta información no se utiliza para ajustes básicos, sino
para la depuración de sistemas de ficheros.

• Esta utilidad se puede ejecutar en un sistema de


ficheros aunque esté montado, ya que no es invasivo,
únicamente nos muestra la información.

• La opción –b nos muestra los bloques que están


marcados como defectuosos en el sistema de ficheros.
Montar y discos mapeados son conceptos distintos

•Al arrancar el sistema, el SO lee del archivo /etc/fstab todas


las particiones que se deban montar. Algunas pueden dar
errores y por ello se montarán como sólo lectura o no se
montarán
•Si son puntos de montaje por RED y hay problemas, dará
time out a nivel de networking. Esto suele producirse en NFS.
Montar FS

•Para montar un FS necesitamos un origen y un destino.


Nuestro origen será nuestro dispositivo y nuestro destino un
directorio final de nuestra máquina

mount [-alrsvw] [-t fstype ] [-o options ] [ device ] [


mountpoint ]
Ejemplo:
mount –rw –t vfat /dev/sdb1 /media/windows

Normalmente no hace falta dar tantas opciones


Desmontar FS

•Desmontar un FS es más sencillo. Debemos dar a elegir el


punto de montaje o el dispositivo.

umount [-afnrv] [-t fstype ] [ device | mountpoint ]


Gestión de Quotas de Disco

•Las quotas de disco se suelen dar para limitar el uso de disco


en determinadas particiones. Se dan por dos agrupaciones:
usuarios o grupos.
•Por usuarios, limitamos para un usuario en concreto
•Por grupo: limitamos para un grupo en concreto

El comando quota nos indica las quotas activas que hay por
usuario y grupos y sus límites
• Con las opciones –u o –g especificamos si es usuario o
grupo
edquota
•Edquota editamos las quotas de los usuarios según el FS

repquota

•Repquota nos da un informe de general de la utilización de


espacios y quotas de disco que hay existente.
edquota

• Los tipos de quotas pueden ser por bloques o por inodos

Cada bloque corresponde a 1Kb y una quota por bloques


correspondería al total de bloques que un usuario puede
utilizar en el sistema .

Un inodo es un número que actúa como apuntador para el


FS de Linux. Una quota de inodos nos indica el número de
inodos a los que el usuario tiene derecho.
edquota

• Todo debe hacerse como root, y lo primero que haremos es


editar el archivo "/etc/fstab" y añadiremos "usrquota" o
"grpquota", dependiendo si se desea cuotas por usuario o
grupos, o incluso ambas.

• Para comprobar que están activas las quotas lanzamos el


comando quotacheck -augmv
edquota

• Ahora tenemos quotas especificadas pero tenemos que


activarlas. Para ello usamos los comandos quotaon y
quotaoff seguido del FS que vamos a tratar.

quotaon –uv / : nos activa la quota para usuarios a la raíz /

Posteriormente añadimos nuestra quota usando:


edquota -u fhf
CASO PRÁCTICO

Restringir la quota de discos a los difentes usuarios del sistema


para la carpeta /home
Permisos y propietarios

• Un archivo en Linux tiene un propietario y grupo de


propietarios. Así mismo ese archivo tiene permisos para
diferentes acciones en función del usuario y grupo
Propietarios

• Con el comando chown podemos cambiar el usuario y el


grupo al que pertenece éste usuario.

chown [opciones] user:grupo archivos

• También es posible cambiar sólo el grupo con el comando


chgrp.
chgrp [opciones] grupo archivos
Propietarios

• Con el comando chown podemos cambiar el usuario y el


grupo al que pertenece éste usuario.

chown [opciones] user:grupo archivos

• También es posible cambiar sólo el grupo con el comando


chgrp.
chgrp [opciones] grupo archivos
Permisos
Permisos

• r: permisos de lectura (bit más significativo)


• w: permisos de escritura (bit del medio)
• x permisos de ejecución (bit menos significativo)

Para modificar los permisos tenemos que saber binario ya


que cada campo es contado como un bit.
Permisos

000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 =7
Permisos

• Si queremos dar permisos de lectura y ejecución


basándonos en la tabla anterior sería: 101 = 5
• Todos los permisos serían 111 = 7
Permisos : otra forma
Código Significado Tipo de Significado Permisos Significado
Cambio
u Propietario + Añadir r Lectura
g Grupo - Eliminar w Escritura
o Otros = Igual x Ejecución
a Todos X Ejécución si
es directorio
s SUID
t Sticky
u Ex. Owner
g Ex. Group
o Ex. world
Permisos : otra forma

Podemos añadir permisos con los códigos anteriores:

chmod u+x shell.sh


UMASK

• La User Mask es la máscara de usuario usada para


establecer los permisos o directorio recién creado
• Basicamente se realiza una máscara inversa cuando un
fichero o directorio es creado.

Si queremos saber el umask por defecto ejecutamos umask


en nuestra máquina
UMASK

• La User Mask es la máscara de usuario usada para


establecer los permisos o directorio recién creado
• Basicamente se realiza una máscara inversa cuando un
fichero o directorio es creado.

Si queremos saber el umask por defecto ejecutamos umask


en nuestra máquina
Éste valor de umask lo podemos cambiar dentro de
/etc/profile o simplemeten con umask new_value
UMASK

• Si un archivo se crea con permisos 755 nuestro valor umask


será el valor inverso, en este caso, 022

Umask Created files Created directories


000 666 (rw-rw-rw-) 777 (rwxrwxrwx)
002 664 (rw-rw-r--) 775 (rwxrwxr-x)
022 644 (rw-r--r--) 755 (rwxr-xr-x)
027 640 (rw-r-----) 750 (rwxr-x---)
077 600 (rw-------) 700 (rwx------)
277 400 (r--------) 500 (r-x------)
UMASK : entendiendo un poco

Permisos 666 – 022 (umask) = 644


Pero cuidado que es a nivel de bits.

666 = 110 110 110


022 = 000 010 010. Invertimos para hacer AND= 111 101 101

110 110 110


111 101 101
= 110 100 100 = 644
ENLACES

• Los enlaces en la terminología Windows son conocidos


como Acceso Directo a un programa. En Linux tienen la
misma filosofía. Son usados para poder acceder a un
fichero o directorio de una forma más accesible. Se utiliza
con el comando ln

ln [options] source link


ENLACES

• Si queremos eliminar un target podemos usar la opción –f


borramos cualquier enlace existente.

ln [options] source link


ENLACES

• Cuando creamos un enlace, éste puede ser hard o soft. Los


soft links (enlaces blandos) son los opción –s. Los hard links
(enlaces duros ) son los creados por defecto (sin ninguna
opción) .
• No podemos crear hard link sobre directorios a no ser que
lo especifiquemos con la opción –d o –F
EJERCICIO ENLACES

1. Crear un archivo origen.txt


2. Crear un enlace duro sobre origen.txt
3. Hacer ls –lia y mirar las diferencias
4. Crear un enlace blando sobre origen.txt
5. Hacer ls –lia y mirar las diferencias

¿HABÉIS ENCONTRADO DIFERENCIAS?


ENLACES

• ¿Qué pasa si cambio permisos del fichero origen?


• ¿Qué número de inodos tenemos en cada fichero?
• ¿Qué pasa si eliminamos el fichero origen?
ENLACES

• Los enlaces simbólicos se pueden hacer con ficheros y


directorios mientras que los duros solo entre ficheros.
• Los enlaces simbólicos se pueden hacer entre distintos
sistemas de ficheros, los duros no.
• Los enlaces duros comparten el número de inodo, los
simbólicos no.
• En los enlaces simbólicos si se borra el fichero o directorio
original, la información se pierde, en los duros no.
• Los enlaces duros son copias exactas del fichero mientras que
los simbólicos son meros punteros o “accesos directos”.
ENLACES

Para deshacer un enlace mejor unlink


Si usamos rm nos puede llevar a pérdida de datos deseables si
no estamos atentos
FHS
FHS: Contenido e importancia

• / : root filesystem
• /boot : imágenes de kernel para poder iniciar
• /bin: programas críticos
• /sbin: programas ejecutados por el administrador
• /lib: crítico por que contiene las librerías
• /usr: programas y configuraciones de usuarios
• /usr/local: similar al anterior
• /opt: muy similar a /usr/local pero para programas
externos
• /home: directorio de usuarios
FHS: Contenido e importancia

• /root: directorio de inicio para el usuario root


• /var: diferentes tipos de archivos (variables, logs,
configuraciones)
• /tmp: directorio temporal
• /mnt: directorio para montar y desmontar medios
extraíbles
• /media: Con la misma función de /mnt
• /dev: Directorio virtual para dispositivos HW y otros
archivos
• /proc: directorio virtual
Buscando archivos

Con find podemos encontrar archivos y directorios en


diferentes rutas y ejecutar comandos. Podemos hacer
distintos tipos de búsqueda:
• Nombre: -name
• Permiso: -perm
• Tamaño: -size (c bytes y k kilobytes)
• Grupo: -gid
• User: -uid
• Profundidad: -maxdepth
• Tipo: -type
Buscando archivos con locate

• Es menos sofisticado que find pero a la vez muy útil. Su


propósito general es el de buscar únicamente archivos
• Las búsquedas las hace a través de una Base de Datos que
se encuentra en /etc/updatedb.conf
• Esa base de datos es actualizada generalmente por cada
programa.
Buscando archivos con whereis

• Encuentra archivos binarios, librerías, páginas de manual,


binarios.
• No busca bajo directorios de usuarios
• Devuelve el binario con todo el path
Buscando programas con which

• Es el programa para buscar programas y binarios por


excelencia.
• Muy simple y no consume mucha memoria

which ls
Como interpretamos con type

• No es un comando de búsqueda. Nos indica como un


comando será interpretado

type cat

También podría gustarte