\documentclass[12pt,a4paper]{article} \usepackage[spanish]{babel} \usepackage[ddmmyyyy]{datetime} \usepackage{graphicx} \title{Organización Lógica De Un Disco Duro} \author{Nicolás A. Ortega} \date{} \begin{document} \maketitle \pagebreak \section{Hoja De Control Del Documento} \begin{table}[h!] \begin{center} \caption{Documento/Archivo} \label{tab:document} \begin{tabular}{|l|c|l|c|} \hline {\bf Fecha Última Modificación} & \today & {\bf Versión/Revisión} & 1.0 \\ \hline {\bf Fecha Creación} & 13/10/2021 & \hfill & \hfill \\ \hline {\bf Fecha Finalización} & \today & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Registro De Cambios} \label{tab:registro-cambios} \begin{tabular}{|c|c|c|} \hline {\bf Versión/Revisión} & {\bf Página} & {\bf Descripción} \\ \hline 1.0 & Todas & Fomato básico documento. \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Autores Del Documento} \label{tab:autores} \begin{tabular}{|c|c|} \hline {\bf Apellidos, Nombre} & {\bf Curso} \\ \hline Ortega Froysa, Nicolás A. & 1 \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \begin{tabular}{|p{4cm}|p{4cm}|p{4cm}|} \hline {\bf Preparado} & {\bf Revisado} & {\bf Aprobado} \\ \hline Ortega Froysa, Nicolás A. & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \pagebreak \section{Particiones En Windows} \begin{figure}[h!] \begin{center} \includegraphics[width=0.7\linewidth]{imgs/0.png} \caption{Cambiar tamaño de partición.} \label{fig:resize} \end{center} \end{figure} Para completar esta tarea, tuve que hacer uso de una máquina virtual de Windows, y decidí usar la herramienta de AOMEI Partition Assistant, ya que tenía más capacidades en su versión gratuita (estándar) que MiniTool. \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/1.png} \caption{Crear partición primaria.} \label{fig:create-primary} \end{center} \end{figure} Al trabajar en una máquina donde el disco virtual entero ya se estaba usando para Windows (volumen C), lo primero que hice fue cambiar el tamaño de aquella partición para tener espacio para trabajar (figura \ref{fig:resize}). A partir de ahí empecé a crear las nuevas particiones (figura \ref{fig:create-primary}). Estas particiones las he creado como particiones primarias, y venía por defecto formateado con NTFS. \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/3.png} \caption{Crear partición lógica.} \label{fig:create-logical} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/6.png} \caption{Cambiar formateado de partición.} \label{fig:change-format} \end{center} \end{figure} A partir de esto, empecé a crear las particiones lógicas. Utilizando el interfaz gráfico pude crear las tres particiones lógicas con las etiquetas \texttt{Datos}, \texttt{Juegos}, y \texttt{Videos} (figura \ref{fig:create-logical}). Luego, cambié el formateado de la partición con la etiqueta de \texttt{Datos}, de NTFS a FAT32 (figura \ref{fig:change-format}). Esto cuando lo intenté hacer con el MiniTool, era una característica limitada a los programas con licencia profesional, y por eso decidí cambiarme a otra herramienta que tuviera más capacidades en su versión gratuita (i.e.\ AOMEI Partition Assistant). \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/7.png} \caption{Eliminar partición.} \label{fig:eliminate-partition} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/11.png} \caption{Formatear como FAT.} \label{fig:format-fat} \end{center} \end{figure} Eliminé después la última partición, \texttt{Videos} (figura \ref{fig:eliminate-partition}), para poder liberar espacio. A partir de ahí pude crear dos particiones lógicas con ese espacio: \texttt{ex0} y \texttt{ex1}. Éstas las formateé con FAT32 y FAT respectivamente (figura \ref{fig:format-fat}). \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/12.png} \caption{Fusionar particiones.} \label{fig:merge} \end{center} \end{figure} Luego, intenté fusionar ({\em merge}) dos particiones -- la partición primaria de \texttt{F} y la partición lógica de \texttt{Datos} (figura \ref{fig:merge}), y aunque no me decía que fuera directamente imposible, sí que me lo impedía. El mensaje decía que no se puede porque se tienen que aplicar todos los cambios (a.k.a.\ transacciones) que se hayan acumulado hasta entonces. Esto no lo hice ya que entonces cabe la posibilidad de romper la máquina virtual que la uso para otras asignaturas. \begin{figure} \begin{center} \includegraphics[width=0.75\linewidth]{imgs/13.png} \caption{Cambiar partición activa.} \label{fig:activate} \end{center} \end{figure} Finalmente cambié la partición activa para la iniciación de la máquina (figura \ref{fig:activate}). Me mencionó que es posible que esta acción pueda desactivar otras particiones, lo cual tendría sentido ya que sólo se puede iniciar de un sistema operativo a la vez. \pagebreak \section{Particiones En UNIX (Linux + fdisk)} Para esta sección, se va a crear primero una imagen virtual sobre la cual podremos hacer los cambios que queremos hacer. Esto se hace para no trabajar con un dispositivo de almacenamiento externo, y simplificar la tarea, además de poder cumplir mejor con los requisitos de la tarea. Esto se hace mediante el comando \texttt{dd}, que funciona a bajo nivel, copiando byte por byte la información. Para crear la imagen virtual, corremos el siguiente comando: \begin{verbatim} $ dd if=/dev/zero of=virt-drive.img bs=1M count=30720 30720+0 records in 30720+0 records out 32212254720 bytes (32 GB, 30 GiB) copied, 382,355 s, 84,2 MB/s \end{verbatim} En esta ejecución vemos varios parámetros del comando. Éstos tienen el significado siguiente: \begin{itemize} \item \texttt{if=/dev/zero}: la primera parte (\texttt{if}) significa ``input file'', y es el archivo que se usará para copiar. En este caso estamos usando un archivo especial, \texttt{/dev/zero}, que simplemente lee ceros. \item \texttt{of=virt-drive.img}: los caracteres \texttt{of} significan ``output file'', y es el archivo destino de los datos que se copian. Lo guardaremos todo en un archivo nombrado \texttt{virt-drive.img}. \item \texttt{bs=1M}: \texttt{bs} quiere decir ``block size'', y se refiere al tamaño de los bloques que se van escribiendo al archivo de escritura. En este caso, definimos el tamaño de bloque de 1MB. \item \texttt{count=30720}: el número de bloques que se han de copiar. En nuestro caso, como estamos transfiriendo en bloques de 1MB, y queremos crear un disco virtual de 30GB, el número de bloques sería de $30 \times 1024 = 30720$. \end{itemize} Este proceso puede tardar mucho tiempo, ya que literalmente está creando un archivo de tamaño de 30GB, y cambiando todos los bytes del disco en esa región a cero. Hay otras herramientas para hacer esto, sobre todo de QEMU que se usa para administrar máquinas virtuales, mas esta herramienta (\texttt{dd}) tiene seguridad de estar ya en cualquier máquina UNIX. Con la imagen virtual, podemos abrirlo como si fuera cualquier otro dispositivo de almacenamiento. Normalmente éstos están en el directorio \texttt{/dev/}, mas como este se ha creado, está donde lo creamos. Con el comando siguiente, podemos ver el contenido actual de la imagen (que está vacía): \begin{verbatim} $ fdisk -l virt-drive.img Disk virt-drive.img: 30 GiB, 32212254720 bytes, 62914560 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes \end{verbatim} Para poder manejar las particiones, usaremos la herramienta \texttt{fdisk}, que es la más simple, aunque existan otras. Esto es porque \texttt{fdisk} es más universal, y se encontrará en cualquier sistema basado en UNIX. Esto lo hacemos corriendo el comando \texttt{fdisk virt-drive.img}. Entrando el comando \texttt{p}, nos dice: \texttt{Disklabel type: dos}. Esto es decir que ya al empezar, \texttt{fdisk} quiere trabajar con el sistema de particiones de MBR. Esto se usa por defecto ya que es la más universal, aunque hoy en día sería más común utilizar GPT, que se puede crear con el comando \texttt{g}. Para crear las particiones, usaremos el comando \texttt{n} (de {\em new}). Esto nos preguntará por el tipo de partición que queremos crear (primaria o extendida, la segunda siendo la que contiene las particiones lógicas). Al elegir primaria, nos preguntará el número de la partición (sólo del 1 al 4, ya que MBR no puede soportar más). Luego nos preguntará por el primer sector (es normal simplemente elegir el sector por defecto). Cuando se pregunta por el último sector, aquí es donde podemos especificar el tamaño de la partición con el sintaxis \texttt{+G}, donde \texttt{} es el tamaño que queremos. En nuestro caso, diremos \texttt{+10GB}. Al terminar nos creará una partición nueva de tamaño de 10GB de tipo \texttt{Linux}. \begin{verbatim} Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-62914559, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62914559, default 62914559): +10G Created a new partition 1 of type 'Linux' and of size 10 GiB. \end{verbatim} % TODO: with logical partitions En \texttt{fdisk} no existe un comando para cambiar las etiquetas de las particiones. Pero como esto es una función puramente estética, y tampoco importante para la tarea a mano, lo saltamos. % TODO: merge doesn't exist, you must delete and create \end{document}