Creación de Sistemas de Archivos
Introducción
El siguiente paso es crear los SA sobre particiones. Vamos a utilizar un dispositivo virtual /dev/loop0 para crear particiones en él. También sería perfectamente válido utilizar un dispositivo físico o virtual del tipo /dev/sdX, simplemente sustituimos en los comandos el nombre del dispositivo. Los datos de particiones del dispositivo son
root@debian:~# fdisk -l /dev/loop0 Disco /dev/loop0: 9,8 GiB, 10485760000 bytes, 20480000 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x5e0a5be1 Disposit. Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/loop0p1 2048 10487807 10485760 5G 83 Linux /dev/loop0p2 10487808 20479999 9992192 4,8G 86 Conjunto de volúmenes NTFS root@debian:~#
NOTA: Es importante notar que aún cuando no hemos creado los SA sobre las anteriores particiones debemos asignar un Tipo a la partición relacionado con el SA que se va a crear en ella.
Creación de un Sistema de Archivos ext4
Procedemos a crear un SA de tipo ext4 en la primera partición del dispositivo usado. Dicha partición, a la vista de la salida anterior tiene las siguientes propiedades
- Está asociada al archivo de bloques /dev/loop0p1
- Tiene un tamaño de 5G
- Tiene una etiqueta de tipo 83 (Linux)
Antes de ejecutar el comando de creación es interesante consultar las opciones del comando, pues permiten controlar aspectos muy importantes a la hora de crear el SA. A continuación se listan las opciones más destacadas del comando mkfs.ext4. Ejecutamos:
mkfs.ext4
la salida resultante sería:
root@debian:~# mkfs.ext4 Modo de empleo: mkfs.ext4 [-c|-l nombre-del-fichero] [-b tamaño-del-bloque] [-C tamaño-del-«cluster»] [-i bytes-por-nodo-i] [-I tamaño-del-nodo-i] -J opciones-de-fichero-de-transacciones] [-G tamaño-del_grupo_flex] [-N número-de-nodos-i] [-d directorio-raíz] [-m porcentaje-de-bloques-reservados] [-o SO-creador] [-g bloques-por-grupo] [-L etiqueta-de-volumen] [-M último-directorio-montado] [-O característica[,...]] [-r revisión-del-sf] [-E opción-extendida{,...]] [-t tipo-del-sf] [-T tipo-de-uso ] [-U UUID] [-e comportamiento_con_errores][-z fichero_deshacer] [-jnqvDFSV] dispositivo [número-de-bloques]
Pueden administrarse aspectos importantes como:
- Nodos-i: número, tamaño...
- Tamaño de bloque lógico
- Opciones relacionadas con el fichero de Journaling
- etc.
Procedemos a crear el SA
mkfs.ext4 -b 4096 -m 10 -L "Test-ext4" /dev/loop0p1
El comando anterior creará un SA ext4 en la partición /dev/loop0p1 con:
- -L: etiqueta “Test-ext4”
- -b: tamaño de bloque 4096 (4KB, el máximo permitido)
- -m: 10% espacio reservado para el súper usuario
La ayuda del comando siempre aporta explicaciones más precisas e información adicional
man mkfs.ext4
Creación de un Sistema de Archivos ntfs
Ahora crearemos en la segunda partición del dispositivo una partición NTFS, para ello necesitamos tener instalado el paquete ntfs-3g. Podemos comprobar si el paquete está instalado con el comando
apt policy ntfs-3g
si en la salida del comando se muestra “Instalados: ninguno”, entonces será preciso proceder a la instalación del paquete
apt install -y ntfs-3g
una vez dispongamos del paquete necesario podremos pasar a crear SA de tipo NTFS
Crearemos un SA NTFS en la segunda partición del dispositivo anterior
De nuevo, para ver de un modo resumido las opciones del comando, ejecutamos:
mkfs.ntfs
la salida sería:
root@debian:~# mkfs.ntfs Usage: mkntfs [options] device [number-of-sectors] Basic options: -f, --fast Perform a quick format -Q, --quick Perform a quick format -L, --label STRING Set the volume label -C, --enable-compression Enable compression on the volume -I, --no-indexing Disable indexing on the volume -n, --no-action Do not write to disk Advanced options: -c, --cluster-size BYTES Specify the cluster size for the volume -s, --sector-size BYTES Specify the sector size for the device -p, --partition-start SECTOR Specify the partition start sector -H, --heads NUM Specify the number of heads -S, --sectors-per-track NUM Specify the number of sectors per track -z, --mft-zone-multiplier NUM Set the MFT zone multiplier -T, --zero-time Fake the time to be 00:00 UTC, Jan 1, 1970 -F, --force Force execution despite errors Output options: -q, --quiet Quiet execution -v, --verbose Verbose execution --debug Very verbose execution Help options: -V, --version Display version -l, --license Display licensing information -h, --help Display this help Developers' email address: ntfs-3g-devel@lists.sf.net News, support and information: http://tuxera.com
las opciones de nuevo se muestran claras y autoexplicativas
Ejecutamos el comando:
mkfs.ntfs -f -L "Test-NTFS" -c 8192 -v /dev/loop0p2
Crearía en la partición /dev/loop0p2 un SA NTFS con las siguientes propiedades:
- -L: etiqueta Test-NTFS
- -c: Tamaño de bloque 8KB
- -f: Indica formateo rápido (fast, sin comprobaciones)
- -v: muestra información del proceso de creación por pantalla
Si ahora ejecutamos:
cfdisk /dev/loop0
podréis ver como en las particiones definidas en el dispositivo ahora se indica el tipo de SA creado en ellas y su UUID y etiqueta
En el siguiente vídeo puede verse el proceso de creación de los SA anterioes
Creación de SA con mkfs
Creación de un Archivo de Intercambio (Swap)
Un área de intercambio (swap) es un almacén persistente de información que puede ser utilizado para ampliar la capacidad de direccionamiento física de un sistema. De este modo podemos simular la existencia de más espacio de memoria principal que la disponible físicamente. Este mecanismo es de gran ayuda para la ejecución de procesos por parte del sistema operativo, éste se encarga de albergar ciertos marcos de página de los procesos en la zona de intercambio del dispositivo que serán transferidos a memoria cuando sea necesario. En GNU/Linux las páginas de memoria se clasifican en los siguientes tipos:
- Páginas del kernel: fijas en memoria sólo accesibles por éste
- Páginas de texto de programa: asociadas al propio ejecutable, de solo lectura
- Páginas asociadas a archivos: páginas en memoria que corresponden con archivos en el SA, pueden haber sido modificadas (dirty) o no (clean)
- Páginas anónimas: asociadas a la propia ejecución del proceso, por ejemplo páginas de la pila (stack) o del área del montículo (heap) en la que se almacenan los elementos de información creados por el programa, como por ejemplo estructuras de datos
Solamente las páginas anónimas son paginadas a la zona de intercambio (swap) Los espacios de intercambio se gestionan habitualmente de dos modos:
- Mediante una partición en el dispositivo dedicada exclusivamente a este fin: una solución bastante utilizada en sistemas UNIX y GNU/Linux
- Mediante un archivo en el SA del sistema operativo: la solución utilizada en los sistemas Windows
Aunque por lo general los sistemas GNU/Linux implementan las zona de swap utilizando una partición dedicada, es cada vez más común el utilizar un archivo de intercambio para ello. Los motivos son los siguientes:
- Es más flexible utilizar un archivo. La partición suele tener un tamaño predeterminado difícil de ampliar
- En sistemas operativos de los que no podemos gestionar los dispositivos, por ejemplo servidores en Cloud, es imposible definir particionado “a la carta”, por tanto la única alternativa es utilizar espacios de swap como archivos
La principal desventaja que tiene el utilizar un archivo frente a una partición dedicada es el rendimiento, es más rápido el intercambio al utilizar particiones.
A continuación vamos a ver el procedimiento para la creación de un archivo de intercambio en GNU/Linux y su activación
En primer lugar creamos el archivo con dd. En este caso un archivo de 2GB de tamaño:
dd if=/dev/zero of=/var/cache/swapfile bs=1M count=2048
Crea el archivo /var/cache/swapfile de 2GB
Concedemos permisos únicamente al propietario (root):
chmod 0600 /var/cache/swapfile
Creamos un SA para intercambio:
mkswap /var/cache/swapfile
Ahora ya solo queda habilitar la zona de intercambio para que el kernel pueda utilizarla:
swapon /var/cache/swapfile
Por último, será necesario montar el área de intercambio cuando el sistema arranque, para ello introducimos en el archivo /etc/fstab la línea:
/var/cache/swapfile none swap sw 0 0
Para comprobar que efectivamente se está utilizando el área de intercambio definida podemos:
Ejecutar el comando top y ver como efectivamente en la sección KiB Swap aparece un valor distinto de 0
top
O bien ejecutamos el comando
swapon -s
Cuya salida debería mostrar el espacio de intercambio definido
JavierFP 18:31 13 nov 2018 (CET)