Vamos a realizar una pequeña práctica con particiones y sistemas de ficheros.


Configuramos el disco como siempre…

Ahora lo seleccionamos para añadir

Configuramos el orden para que cargue el SO desde el primer HD

Lanzamos la máquina

Con fdisk -l se muestran las tablas de particiones de los dispositivos de almacnamiento conectados a nuestro sistema.
Si nos fijamos, la unidad /dev/sdb no tiene tabla de particiones, no está preparada. Es más, no tiene MBR.
¿Qué es el MBR?. Está en alguna parte de educatica explicado. Es una estructura de datos que se guara en el sector 0 de la memoria auxiliar o secundaria.
- Tabla de particiones. Solo caben cuatro entradas para cuatro particiones primarias (o una extendida que es un tipo especial de partición primaria)
- Código de arranque. Un pequeño programa que se encarga de lanzar el programa de arranque del sistema operativo que tengamos instalado. Si tenemos varios SSOO, entre ellos un GNU/Linux, es muy probable que tengamos un Gestor de arranque.
- Código mágico. dos bytes con el siguiente valor 0x55AA. Si ese valor aparece en la posición del código mágico significa que el MBR es válido. Sino, el sector 0 del disco duro no contiene ningún MBR.
En nuestro caso el disco duro recién comprado no tiene ni siquiera MBR. Vamos a crearlo 😉

Como no conocemos los comandos m
Crea una partición de 10 GB que utilizaremos para guardar datos (ficheros organizados en directorios) en nuestro sistema GNU/Linux.

Ahora queremos crear otra partición de 10GB que utilizaremos con otro sistema operativo, en este caso de Microsoft.

Queremos mostrar la tabla de particiones actual.

Las dos particiones son de tipo Linux :_( Queremos una de tipo Windows.

Vamos a ver los códigos disponibles

Elegimos el código 07

Vaya, nos acabamos de acordar de que necesitamos una partición FAT32 de 8GB para una aplicación concreta tanto para GNU/Linux como para Windows.

Cambiamos el tipo

Ya tenemos las tres particiones creadas. Guardamos la tabla de particiones que está en memoria y salimos.

Mostramos la tabla de particiones de nuestra unidad de disco duro

Mostramos

Queremos guardar información, en forma de ficheros, en la primera partición que acabamos de crear en el disco duro nuevo. En esta partición vamos a guardar, música, temas que estamos creando con nuestra IA que hemos desarrollado utilizan Python.
Hemos decido montar esta partición en el punto de montaje /musica.

¿Qué ha pasado?
Vamos a ver, vamos a ver… si la partición es de tipo Linux y lo estoy montando en un directorio dentro de un sistema operativo GNU/Linux.

Sistemas de ficheros
Hemos creado tres particiones, hemos especificado el tipo de partición de cada una, pero no hemos creado un sistema de ficheros que sirva para almacenar y recuperar ficheros de dichas particiones.
Una partición es una porción de una memoria de almacenamiento masivo. Es decir, una partición es una parte de dicha memoria, que se delimita entre un sector inicial y un sector final. Además indicamos en la tabla de particiones más información, como el tipo de sistema de ficheros que albergará, pero esto no es más que una información auxiliar. Necesitamos crear un sistema de ficheros para poder almacenar efectivamente ficheros en una partición.
Un sistema de ficheros es una estructura de datos que almacena toda la información necesaria para permitir gestionar ficheros (y directorios) dentro de una partición.
Pensemos que una partición no es más que un conjunto de sectores. El S.O. necesita más información para poder almacenar y recuperar ficheros en una partición, en un sistema de ficheros. Un sistema de ficheros por ejemplo almacena, entre otras, información sobre:
- Sectores libres y ocupados. Gracias a tener una lista o mapa de sectores libres se pueden asignar sectores a un nuevo fichero que se tenga que almacenar
- Se puede conocer qué sectores están asignados a un fichero y por tanto cargar toda la información de dicho fichero.
- Podemos contar con directorios que nos permitan organizar la información que se almacena en el sistema de ficheros.
- Podemos conocer dónde está almacenado un fichero dentro de una jerarquía de directorios
Vamos a crear, entonces, un sistema de ficheros en la primera partición del disco duro /dev/sdb. Para ello utilizaremos la herramienta mkfs 🙂

Vamos a crear un sistema de fichero ext4 en /dev/sdb1.

Ya tenemos sistema de ficheros! Somos un poco más felices 😉
Vamos a montar el sistema de ficheros en /musica

No hay error! Como podemos comprobarlo?

Vamos a agilizar la búsqueda 😉

Vamos a crear un fichero en /musica

Oye… esto está bien, pero el único usuario que puede crear ficheros en musica es root. Crea un directorio llamado publico dentro del sistema de ficheros recién montado para que cualquier usuario del sistema pueda subir, copiar o crear ficheros de música dentro.

Ahora, vamos a crear el sistema de ficheros de las otras dos particiones utilizando como sistema de ficheros NTFS y VFAT respectivamente.
Primero estaría bien mostrar la tabla de particiones de nuevo para evitar fallos.

Vamos a crear sistemas de ficheros como si no hubiera mañana.
Lo acabamos de hacer, crear sistemas de ficheros nuevos, también se conoce como coloquialmente con el término formatear.

Ahora vamos a montar temporalmente estos sistemas de ficheros en puntos de montaje dentro de /mnt con los nombres: proyectos y shared, respectivamente.

Vamos a mostrar los sistemas de ficheros montados en nuestro sistema. Para ello utilizaremos primero mount con el filtro grep.

Hay otra forma de mostrar información de sistemas de ficheros montados en nuestro sistemas que además proporciona información de ocupación. Para ello podemos utilizar el comando df.

Vamos a utilizar df con la opción -h para que proporcione la informacion de ocupación en un formato comprensible por humanos.

Vamos a crear un pequeño fichero leeme.txt que almacenaremos en el directorio raíz de cada uno de los sistemas de ficheros recién montados dónde indiquemos para que se utilizarán cada uno de estos sistemas de ficheros.

Bien, ahora vamos a apagar la máquina hasta mañana.

Accediendo desde Windows
Ahora vamos a conectar el disco duro HD-Datos.vdi en la máquina virtual de Windows 10 y lanzamos Windows 10 🙂
Lo ideal sería tener ambos SSOO en la misma máquina, pero nos apañamos para poder realizar las operaciones de este caso práctico de esta manera.

Seleccionamos el disco duro virtual HD-Datos.vdi

Ahora lanzamos Windows 10 y a ver que pasa…

No aparece el sistema de ficheros ext4. Esto es así porque el S.O. Windows no da soporte a este tipo de sistemas de ficheros de forma nativa. Vamos a echar un vistazo a las dos unidades lógicas nuevas que representan a los sistemas de ficheros recien creados.

Mostramos las propiedades de la unidad lógica.

Vamos a ver los permisos del fichero leeme.txt

Creamos un fichero nuevo de texto plano con el nombre saludo.txt cuyo contenido será un saludo con nuestro nombre de pila.

Configuramos e insertamos la información.

Rellenamos la información.

Vamos a repetir el mismo proceso con la unidad lógica F: que representa al sistema de ficheros FAT32.


El sistema de ficheros FAT32 es mas antiguo que NTFS y presenta algunas carencias. De las principales diferencias, que son negativas, tenemos:
- No se pueden establecer permisos. Este sistema de ficheros no soporta el uso de permisos, no lo implementa. Da igual el sistema operativo en el que se utilice, no se puede guardar información de permisos en este sistema de ficheros.
- Tamaño máximo de un fichero 4GB. El tamañan máximo de un fichero es 4GB debido a los problemas de direccionamiento de sus clusters. Tan solo se cuenta con 32b para direccionar.

Hemos terminado nuestro trabajo con Windows, así que apagamos el sistema operativo y volvemos a GNU/Linux.
Lanzamos terminal y tratamos de acceder a la información almancenada en los sistemas de ficheros creados en este caso práctico. Pero…

Los sistemas de ficheros, que montamos la última vez que estuvimos trabajando con GNU/Linux, ya no están montados. Vamos a comprobarlo.

Esto es así porque montamos estos sistemas de ficheros de forma temporal.
Ahora vamos a montar de nuevo temporalmente en /mnt/proyectos y /mnt/shared los sistemas de ficheros /dev/sdb2 y /dev/sdb3 respectivamente.
Después montaremos de forma permanente el sistema de ficheros de /dev/sdb1 en /musica.

Vamos a echar un vistazo al contenido de los sistemas de ficheros, comenzando por /mnt/proyectos.

Como podemos observar, los permisos se establecen directamente sobre el usuario root. En un caso con permisos muy abiertos, precisamente en el sistema de ficheros NTFS, y en otro un poco más cerrados, en el sistema de ficheros FAT32.
Si probamos a consultar información con el comando getfacl de los ficheros saludo.txt en cada uno de los sistemas de ficheros.

El comando getfacl muestra información sobre acls, como las que utiliza NTFS, en ficheros que soporten este tipo de configuración de permisos.

Ahora tenemos que montar de forma permanente el sistema de ficheros de /dev/sdb1 en /musica.
Para ello tenemos que editar el fichero /etc/fstab y configurarlo para que se monte automáticamente el sistema de ficheros en /dev/sdb1 en el punto de montaje /musica.
Vamos a echar un vistazo al contenidos del fichero

Vamos a echar un vistazo a la página de manual de fstab.

Ahí nos encontramos con información sobre configuración.

Si no queremos meternos en mucho detalle y solo queremos montar de forma permanente, pero simple un sistema de ficheros, como es nuestro caso, en un punto de montaje (/musica), podemos aprovechar unaconfiguración previa ya hecha. Por ejemplo, la del sistema de ficheros que está montado en el directorio raíz o /

Vamos a mostrar solo las líneas de configuración del fichero. Para ello mostaremos el contenido del fichero menos los comentarios.
Sabemos mostrar solo las líneas de comentarios

Ahora lo que hacemos es invertir la búsqueda

Vamos a copiar la configuración del sistema de ficheros raíz pero enlugar de utilizando el UUID del sistema de ficheros en /dev/sda1 utilizaremos el UUId del sistema de ficheros en /dev/sdb1.
Primero, tendremos que obtener el UUID de este sistema de ficheros utilizando el comando blkid.

Solo queremos la información de /dev/sdb1

Vamos a hacer una cosa con cuidadito! doble redirección!

Ahora vamos a editar el fichero /etc/fstab como root y terminamos de configurar la información de montaje para /dev/sdb1

Ahora editamos la entrada para /dev/sdb1

Guardamos los cambios y cruzamos los dedos 😀 Ahora nos quedaría reiniciar el sistema para comprobar si esto funciona… o a lo mejor no es necesario del todo. Vamos a ver los comentarios del fichero /etc/fstab

Vamos a probar O:)

Ooooh! Bueno, podemos montar, ahora que está definida la información en /etc/fstab el sistema de ficheros en /musica tan solo haciendo referencia al punto de montaje.

Si esto funciona, lo tenemos bien configurado. No obstante, como somos muy meticulosos, vamos a reiniciar el sistema para comprobar que la configuración es totalmente funcional.

Actividad propuesta número 1
Resulta que queremos compartir ficheros desde este sistema informático con otros sistemas en red a través de servicios como FTP o SMB/CIFS. El problema es que estos ficheros ocuparán mucho espacio de disco, así que hemos decidido adquirir un nuevo disco duro de 100GB en el que almacenaremos en un único sistema de ficheros los ficheros a compartir.
Queremos que este sistema de ficheros esté disponible en el directorio /shared de forma permanente.
Realiza todas las operaciones de administración necesarias para que esto funcione como se espera.
Entrega
Utilizando un documento de plantilla documenta los pasos que vas a dar para que el sistema cumpla con los requisitos solicitados en el enunciado.
Actividad número 2
Oh! Resulta que nos hemos quedado sin espacio de almacenamiento en /home :_( Necesitamos ampliar la capacidad de almacenamiento del directorio dónde se almacenan por defecto los directorios personales de los usuarios del sistema.
Podemos repetir el proceso que hemos llevado a cabo en esta entrada o en la Actividad propuesta número 1, añadiendo un nuevo disco duro de 100GB y creando una partición con todo el espacio del disco y un sistema de ficheros ext4 para alojar el contenido de /home.
Después podríamos montar este sistema de ficheros en /home y ¡problema resuelto!. Pero no, si hacemos esto perderíamos la información que actualmente está almacenada en /home. ¿Qué podemos hacer?
En esta actividad tenemos los siguientes requisitos extra:
- Nos gustaría que el nuevo sistema de ficheros contuviera los directorios y ficheros que están actualmente almacenados en /home con la configuración de permisos, propietario y grupos. Puedes utilizar el comando cp con una opción concreta para mantener la configuración de permisos, propietario y grupo establecidos.
- Una vez copiada la información al sistema de ficheros, para evitar pérdidas, vamos a renombrar el directorio /home a /home.OLD para poder acceder a la información en caso de problemas.
Una pequeña pista
Lo ideal es que iniciemos sesión con root para poder realizar acciones con el directorio /home

Vamos a probar 😀
Estio es porque el directorio personal de root está en /root no en /home

Vamos a intentar renombrar el directorio /home

Oh! Lo que tenemos aquí es que /home monta un sistema de ficheros de otra partición distinta a el sistema de ficheros /. Esto simplifica el trabajo que tenemos que hacer.
- Desmontar /home
- Montar /dev/sda6, que es la partición cuyo sistema de ficheros guarda la información de /home en un punto de montaje temporal. Por ejemplo /mnt/temp
- Montar /dev/sdc1 (o la partición que sea) en /home.
- Copiar los datos de /mnt/temp a /home manteniendo la configuración de propietario, grupo y permisos de todos los ficheros
- Establecer el montaje persistente de /dev/sdc1 (o la partición que sea) en /home
Primer paso – Comprar e instalar el nuevo disco duro



Segundo paso – Particionar el disco y crear sistema de ficheros
Entramos como root

Comprobamos los dispositivos de almacenamiento conectados al sistma

Creamos una única partición

Comprobamos si se ha creado la partición

Creamos el sistema de ficheros

Tercer paso – Montar el nuevo sistema de ficheros y copiar los datos

Cuarto paso – Intercambio de sistemas de ficheros: montar permanentemente el sistema de ficheros nuevo como /home
Obtenemos el UUID de /dev/sdc1 y lo añadimos al final del fichero /etc/fstab.

Editamos el fichero /etc/fstab para que se monte el sistema de ficheros /etc/fstab en /home.

Cambiamos los datos para que ahora se monte /home en /dev/sdc1 y además, aunue no se pida, vamos a montar el antiguo sistema de ficheros que almecena los datos de /home en /mnt/temp.

Podemos comprobarlo antes de reiniciar, pero para ello tenemos que desmontar primero /home y después volver a montarlo con la información almacenada en fstab.

Nos monta /home como esperabamos. Vamos a probar con /dev/sda6

Si reiniciamos, debería funcionar.

Dejar una respuesta