educatica!

educación, informática y demás

Memorias

Memorias de bloques

Las memorias secundarias y auxiliares son memorias de gran capacidad y no pueden dividirse, como la memoria principal o la caché, en celdas de memoria. De hecho, las primeras memorias auxiliares, los disquetes, por su composición no podían, físicamente, dividirse en un tamaño tan pequeño.

Este tipo de memorias están dividos en unos bloques llamados sectores. Como hemos dicho, primero por las limitaciones físicas no se podía leer menos de 512 B, es decir un sector. Hoy en día, tenemos unidades de almacenamiento con técnología SSD que posiblemente podrían permitir un acceso a datos a un nivel más pequeño, sin embargo si sigue trabajando con sectores.

Las operaciones de lectura y escritura sobre una memoria de sectores será de un sector como mínimo. Es decir, no se puede leer o escribir una cantidad inferior de datos de un sector (512 B) ni se puede direccionar.

A medida que fueron creciendo las capacidades de estas memorias, se hizo necesario agrupar estos sectores para asignarlos a ficheros, creando lo que se conoce como cluster o unidades de asginación.

Particiones

Una partición es una porción de una memoria secundaria o auxiliar. No es más que una porción delimitada entre un sector de inicio de la partición y un serctor de fin de la partición.

Toda memoria secundaria o axuliar en la que queramos almacenar un sistema de ficheros tiene que tener al menos una partición.

Las particiones nos permiten dividir una memoria secundaria o auxiliar (a partir de ahora, hablaremos de disco duro para hacer referencia a estas memorias) en porciones distintas, pudiendo almacenar distintos sistemas de ficheros en cada una de estas particiones.

La ventaja de las particiones es que nos permiten almacenar información independiente una de otra en distintas particiones, que desde el sistema operativo se toman como unidades lógicas distintas, en el caso de Windows, o como directorios distintos en el caso de GNU/Linux.

De esta forma, el sistema operativo puede tratar estas particiones cómo si fueran discos duros diferentes.

Tabla de particiones

En algún sitio se debe almacenar la información mínima necesaria para conocer tanto las particiones que hay presentes en un disco duro, como su tamaño y demás información.

Para eso se utiliza (en el caso de MBR) la tabla de particiones que se almacena en el MBR.

La tabla de particiones es una estructura de datos basada en una tabla en la que, en cada fila, se guarda un registro con información de una partición. Para cada partición, cómo mínimo, se guarda el inicio y final de la partición, el tipo de partición que será y una serie de banderas o bits de estado que nos dan información extra sobre la partición.

La tabla de particiones que se almacena en el MBR del disco duro tan solo tiene cuatro entradas. Es decir, tan solo podríamos crear cuatro particiones en el MBR de un disco duro.

Al principio, esto parecía suficiente, pero con el paso del tiempo se hizo necesario poder crear más particiones en un disco duro. La solución fue crear dos tipos de particiones nuevas: la extendida y las lógicas.

Tipos de particiones

Primaria. Las particiones primarias son las que se almacenan en la tabla de particiones del MBR. Puede haber como máximo 4.

Extendida. Es un tipo de partición primaria, por tanto se almacena en la tabla de particiones. Cómo máximo puede haber una en un MBR. La partición extendida no contiene sistemas de ficheros, es decir no contiene ficheros ni directorios, contiene particiones lógicas.

Lógicas. Son un tipo de partición que se crean dentro de una partición extendida. Es necesario que exista previamente una partición extendida para poder crear una partición lógica. Se crearon con la finalidad de poder crear más de cuatro particiones con sistemas de ficheros en un sistema informático.

MBR

El MBR es una estructura de datos que se almacena en el sector 0 de todo disco duro. Este sector puede tener esta información o no tenerla, porque no está creado, pero se denomina siempre MBR.

El MBR contiene tres datos fundamentales: el programa de arramque, la tabla de particiones y el código mágico o firma de confirmación.

Programa de arranque: Se trata de un programa encargado de ejecutar o lanzar el sistema operativo, si lo hay, instalado en dicho disco duro.

Tabla de particiones: Estructura de datos que nos permite conocer qué particiones hay en el disco duro, su inicio, fin, tipo y tamaño.

Código mágico: Se trata de un valor numérico de 16b que sirve para comprobar si hay un MBR válido o inicializado en el sector 0. Si el MBR está inicializado, entonces el valor del código mágico será 0x55AA. Si no, tendrá otro valor.

El código mágico es un dato importante, porque permite a la BIOS o a cualquier herramienta del sistema operativo, saber si los datos que hay en el sector 0 de un disco contienen un MBR válido o bien contienen datos aleatorios (basura).

Caso práctico – Creando particiones

En este caso práctico vamos a craer una máquina virtual con un disco duro de 60 GB vacío. Vamos a utilizar un LiveCD de System Rescue CD para acceder a una herramienta de particionado de discos duros, en concreto gparted.

Nos aseguramos de insertar en la unidad óptica virtual la ISO de System Rescue CD. Ahora lanzamos la máquina virtual.

Elegimos la primera opción del menú.

Ele

Seleccionamos el mapa de teclado castellano con la opción 13 o es. Si por un casual se nos olvida o no nos da tiempo, podemos cargar el mapa de teclado desde el interprete de comandos más tarde con el comando loadkeys pasando como parémtro el código del mapa de teclado castellano es.

Ya se ha lanzado el sistema operativo LiveCD. Sin embargo, nos muestra una interfaz basada en comandos en modo texto. Si queremos lanzar la interfaz gráfica, ejecutamos el comando startx.

Lo que hemos hecho es lanzar el gestor de ventanas xorg con el comando startx. Este gestor de ventanas se va a encargar de proporcionarnos un entorno gráfico de usuario basado en ventanas. en este caso, es muy simple, pero cumple con su función para ser un livecd de recuperación de sistemas.

En la barra de tareas, se muestra un lanzador de la herramienta gparted.

También podemos ejecutar el programa gparted desde la terminal que está abierta en una ventana.

Al ejecutarlo nos mostrará la ventana de la aplicación con la que podremos gestionar particiones de memorias secundarias y auxiliares.

Si nos fijamos, gparted nos muestra un disco duro de 60GB, el que hemos conectado a esta máquina virtual cuando la creamos. Este disco aparece como unallocated y de hecho nos muestra un mensaje de advertencia (Warning). Este mensaje nos está indicando que no existe un MBR inicializado en el disco .

Podemos acceder a información del disco con el botón derecho y seleccionar la opción información del menú contextual.

Si leemos la información nos indica que el disco no tiene etiqueta recinocible. Esto es así, porque este disco no tiene un MBR válido. Gparted sabe que no tiene MBR válido, porque ha leido el sector 0 del disco y ha comprobado que el código mágino no se corresponde con el valor que debería tener (no es 0x55AA).

Así que lo primero que deberíamos hacer es crear un MBR válido para este disco.

Vamos a crear una nueva tabla de particiones en el dispositivo, para ello accedemos al menú Device y selecionamos Create Partition Table..

A continuación, gparted mostrará un cuadro de dialogo donde seleccionaremos el tipo de tabla de particiones a crear. En nuestro caso: msdos.

Una vez creada la tabla de particiones MSDOS ya no aparece el icono de advertencia. Sigue apareciendo como unallocated o no asignado, porque no hemos asignado ningún espacio del disco duro a ninguna partición.

Vamos a crear una nueva partición. Para ello podemos hacer clic con el botón secundario en el espacio unallocated (no asignado), ya sea en la parte superior o en la tabla del panel de información de particiones.

Esto mostrará un cuadro de dialogo en el que podemos determinar la información de la nueva partición a crear.

Vamos a crear una partición primaria de 10000 MiB. Si nos fijamos, en el tipo de partición no podemos seleccionar partición lógica. Esto es lógico, valga la redundancia, puesto que no tenemos todavía ninguna partición extendida dentro de la cual poder crear particiones lógicas.

Ahora aparece la informaciön de la nueva partición en el panel de particiones del dispositivo.

A continuación vamos a crear una partición primaria de 2048 MiB con sistema de ficheros ext4.

A continuación vamos a crear una partición primaria de 2048 MiB con sistema de ficheros FAT32.

A continuación vamos a crear una partición primaria de 2048 MiB con sistema de ficheros NTFS.

A continuación vamos a crear una partición primaria de 2048 MiB con sistema de ficheros ext3.

Esto nos va a dar un error. Ya tenemos cuatro particiones primarias, hemos alcanzado el límite de particiones primarias.

El fallo ha sido no haber planificado previamente esta situación. Ahora tenemos que eliminar la última partición primaria creada para poder crear una partición extendida y, dentro de la extendida, poder crear las dos particiones que nos quedan pero en este caso como particiones lógicas.

La nueva partición extendida, si queremos aprovechar todo el espacio de disco, debería ser del tamaño del disco no asignado.

Ahora creamos la partición extendida, que es un tipo de partición primaria.

Si nos fijamos, no podemos seleccionar el tipo de sistema de ficheros porque una partición extendida no guarda ficheros, guarda particiones lógicas.

También es importante asignarle todo el tamaño disponible si queremos crear partición lógicas que aprovechen todo el tamaño disponible del disco.

A continuación cremos las dos particiones que nos quedan, pero como particiones lógicas. Una partición primaria de 2048 MiB con sistema de ficheros ntfsy otro con sistema de ficheros ext3.

Tema creado por Anders Norén