2021-10-14 09:15:32 +00:00
|
|
|
\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{+<tam>G}, donde \texttt{<tam>} 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}
|
|
|
|
|
2021-10-14 13:54:23 +00:00
|
|
|
Al crear las particiones primarias, se crean las particiones lógicas. Para hacer
|
|
|
|
esto se ha de crear, en primer lugar, la partición extendida. Esta partición
|
|
|
|
(como indica en las instrucciones de \texttt{fdisk}) servirá como contenedor
|
|
|
|
para las particiones lógicas. Para esto, cuando nos pide el tipo de partición
|
|
|
|
introducimos \texttt{e}.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Partition type
|
|
|
|
p primary (2 primary, 0 extended, 2 free)
|
|
|
|
e extended (container for logical partitions)
|
|
|
|
Select (default p): e
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Al crear la partición extendida, que ocupa el resto del disco, al crear una
|
|
|
|
nueva partición sólo nos permitirá crear particiones lógicas:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Command (m for help): n
|
|
|
|
All space for primary partitions is in use.
|
|
|
|
Adding logical partition 5
|
|
|
|
First sector (41947136-62914559, default 41947136):
|
|
|
|
Last sector, +/-sectors or +/-size{K,M,G,T,P} (41947136-62914559,
|
|
|
|
default 62914559): +2G
|
|
|
|
|
|
|
|
Created a new partition 5 of type 'Linux' and of size 2 GiB.
|
|
|
|
\end{verbatim}
|
2021-10-14 09:15:32 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2021-10-14 13:54:23 +00:00
|
|
|
Al acabar con las particiones debemos escribir los cambios. Para esto
|
|
|
|
simplemente corremos el comando \texttt{w}.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Command (m for help): w
|
|
|
|
The partition table has been altered.
|
|
|
|
Syncing disks.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Para poder formatear las particiones, debemos de salir de \texttt{fdisk}, y usar
|
|
|
|
las herramientas de \texttt{mkfs}. Pero como es una imagen, y no un dispositivo
|
|
|
|
de verdad, para acceder las particiones es necesario usar los {\em dispositivos
|
|
|
|
loop}, que nos permite asociar dispositivos con archivos normales del sistema.
|
|
|
|
Esto lo hacemos mediante el comando siguiente:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
$ sudo losetup --partscan --show --find virt-drive.img
|
|
|
|
/dev/loop0
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Ahora se tratará el dispositivo \texttt{/dev/loop0} como si fuera un dispositivo
|
|
|
|
real. Luego entonces podemos acceder a las particiones como
|
|
|
|
\texttt{/dev/loop0pX}. Luego para formatear como FAT32 la partición, corremos el
|
|
|
|
comando \texttt{mkfs.vfat}. La opción \texttt{-F32} nos dice qué tipo de FAT es
|
|
|
|
(en este caso, 32). Esto nos será útil luego cuando queremos formatear como
|
|
|
|
FAT(16).
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
$ sudo mkfs.vfat -F32 /dev/loop0p5
|
|
|
|
mkfs.fat 4.1 (2017-01-24)
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Para poder borrar luego las particiones que queramos, tendríamos que entrar otra
|
|
|
|
vez en \texttt{fdisk}, mas ahora podemos usar el dispositivo virtual
|
|
|
|
\texttt{/dev/loop0}. Luego tan sólo hace falta usar el comando \texttt{d} ({\em
|
|
|
|
delete}) para borrar la partición que queramos.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Command (m for help): d
|
|
|
|
Partition number (1-3,5-7, default 7): 7
|
|
|
|
|
|
|
|
Partition 7 has been deleted
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Para crear las particiones lógicas, y formatearla como FAT32, simplemente
|
|
|
|
seguimos lo que hemos visto anteriormente. Pero para formatear como FAT(16),
|
|
|
|
simplemente es necesario cambiar \texttt{-F32} a \texttt{-F16}.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
$ sudo mkfs.vfat -F16 /dev/loop0p8
|
|
|
|
mkfs.fat 4.1 (2017-01-24)
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
No se pueden fusionar dos particiones con \texttt{fdisk}, ya que realmente lo
|
|
|
|
que se hace es borrar las dos particiones y crear una nueva en su lugar. Así que
|
|
|
|
esto lo he saltado. No se puede encontrar esta funcionalidad, ni siquiera dentro
|
|
|
|
de las opciones avanzadas.
|
|
|
|
|
|
|
|
Finalmente, para acabar, como ya hemos acabado modificando el archivo podemos
|
|
|
|
desligar el archivo del dispositivo \texttt{/dev/loop0} con el comando
|
|
|
|
\texttt{sudo losetup -d /dev/loop0}. Ya no se pueden acceder al archivo por
|
|
|
|
medio de \texttt{/dev/loop0}.
|
2021-10-14 09:15:32 +00:00
|
|
|
|
|
|
|
\end{document}
|