Rejuveneciendo mi laptop: disco duro, parte 2

Esta es la quinta parte de la serie Rejuveneciendo mi Laptop en la que narro, componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Disco duro, parte 2: ajuste de las particiones y recuperación de espacio

Hasta aquí, tengo el sistema operativo (Debian) en el disco de estado sólido funcionando. Sin embargo, aún tengo la partición desperdiciada (93 GB) y la del sistema operativo viejo (169 GB) en el disco magnético; es lo que contaba en la Introducción: cómo quedaron las particiones cuando instalé Linux.

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  41945087  41943040    20G 27 Hidden NTFS WinRE
/dev/sda2  *     41945088  42149887    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda3        42149888 417540095 375390208   179G  7 HPFS/NTFS/exFAT
/dev/sda4       417542142 976771071 559228930 266.7G  f W95 Ext'd (LBA)
/dev/sda5       417542144 613193057 195650914  93.3G  7 HPFS/NTFS/exFAT
/dev/sda6       613193728 968802303 355608576 169.6G 83 Linux
/dev/sda7       968804352 976771071   7966720   3.8G 82 Linux swap / Solaris

Enumerando y resaltando las particiones relevantes: la de recuperación, la de arranque de Windows, la de Windows en sí y la extendida. Dentro de la extendida: la partición para compartir datos entre Windows y Linux (NTFS), la de Linux y la swap de Linux. Aunque hay tres particiones NTFS, en el resto de este capítulo me referiré como «la partición NTFS» a la que sirve para compartir datos entre Windows y Linux.

Lo que opté por hacer fue recuperar 73 GB de la partición NTFS para compartir datos entre Windows y Linux, reduciéndola de 93 GB a 20 GB y agregar ese espacio a mi /home/alvarezp en 73 GB.

El diablo está en los detalles: la partición NTFS está ubicada antes de mi home. Explico:

Sistemas de archivos y cambios de tamaño

Dentro de toda partición hay un sistema de archivos. El sistema de archivos es como el índice de un cuaderno de un millón de hojas con los temas fragmentados: sin ese índice, no sabemos en qué hojas encontrar cada tema y a qué tema pertenece cada hoja. La información se vuelve, efectivamente, basura.

Al ampliar una partición hacia la derecha, también se debe ampliar su sistema de archivos. Si no se hace esto, el nuevo espacio de la partición no puede ser utilizado. Siguiendo con la analogía del cuaderno: una vez que se le agregan hojas al cuaderno, se debe asignar más espacio para los índices y permitir que los índices puedan hacer referencia a esas nuevas hojas. La operación es rápida y sencilla pues no hay que mover datos: sólo se recalcula el espacio asignado para los índices y su alcance.

Otra operación sencilla es recorrer o mover una partición sin cambiar el tamaño. Esta operación es tardada, pero aún simple: Para mover una partición 10 sectores a la izquierda, simplemente cada dato se copia 10 sectores a la izquierda. No es necesario recalcular los índices.

Reducir una partición es un poco más complicado, pues antes debe reducirse su sistema de archivos, o quedarán datos fuera de la partición, inaccesibles y perdidos. Más aún, si algún índice queda fuera de la partición, también pierden sentido todos los datos apuntados por ese índice. Reducir el tamaño de un sistema de archivos implica reacomodar los datos que quedarían fuera para que esto no ocurra; y también actualizar los índices. Obviamente esto debe realizarse antes de cambiar el tamaño en la tabla de particiones.

Recorrer una partición mientras se le cambia de tamaño es aún más complejo. Se puede hacer en dos operaciones por separado (por ejemplo, primero recorrer y después ampliar o reducir la partición) o se puede hacer en una sola operación. Si se hace en dos operaciones, se recurre a pasos más simples y confiables. Si se hace en una sola operación puede ser mucho más rápido al ejecutar un solo movimiento físico de cada sector del disco. Sin embargo, los cálculos son más complejos.

Finalmente, para ampliar una partición hacia la izquierda se necesita mover todos los datos, por lo que se vuelve el equivalente del párrafo anterior: recorrer una partición mientras se le cambia de tamaño. Es una operación compleja según el algoritmo que se utilice. Por eso decía que el diablo está en el detalle de que la partición NTFS está a la izquierda de la partición de Debian.

Muy importante: para realizar cualquiera de estos movimientos se recomienda ampliamente contar un respaldo completo de los datos antes de realizar la operación. Basta un pequeño bug en los cálculos y la partición completa se volvería basura.

Qué opté por hacer

Después de pensarlo profundamente durante unos 5 segundos decidí que haría el movimiento sin respaldo.  Yo no conozco el funcionamiento interno de GParted. No sé si la ampliación a la izquierda se realiza en dos pasos o en uno. Por precaución no quise confiar en GParted. Opté por usar un procedimiento dirigido por mí, uno que, aunque fuera más extenso, estuviera compuesto por pasos más simples, más confiables y que yo ya he visto funcionar correctamente.

Visualización del procedimiento que opté por seguir.

Al querer trabajar sin respaldos, opté por un procedimiento más extenso pero más controlado.

Entonces:

  1. Reduje el tamaño de la partición NTFS de 93 GB a 20 GB. Esto dejó 73 GB sin asignar a partición alguna, ubicados a la izquierda de mi viejo Debian.
  2. Creé una partición nueva en ese espacio destinada a ser mi nuevo home.
  3. Moví los 73 GB más críticos de mis datos de la partición con el viejo Debian a este nuevo home. Con esto, ya tengo mis datos críticos en una partición que no voy a someter a tantos movimientos.
  4. Reduje la partición del viejo Debian de 169 GB a 68 GB. Quedaron 101 GB disponibles a la inmediata derecha del viejo Debian.
  5. Moví el viejo Debian hacia la derecha todo lo que pude. Quedaron 101 GB disponibles a la inmediata derecha del nuevo home.
  6. Expandí la partición del nuevo home para ocupar un total de 175 GB.
  7. Copié el resto de mis datos de la partición del viejo Debian al nuevo home.

Resultado

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  41945087  41943040    20G 27 Hidden NTFS WinRE
/dev/sda2  *     41945088  42149887    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda3        42149888 417540095 375390208   179G  7 HPFS/NTFS/exFAT
/dev/sda4       417542142 976771071 559228930 266.7G  f W95 Ext'd (LBA)
/dev/sda5       417542144 458502143  40960000  19.5G  7 HPFS/NTFS/exFAT
/dev/sda6       458504192 825442303 366938112   175G 83 Linux
/dev/sda7       825444352 968802303 143357952  68.4G 83 Linux
/dev/sda8       968804352 976771071   7966720   3.8G 82 Linux swap / Solaris

Parecería que he quedado igual de espacio, pero en realidad he ganado 26 GB:

  • El nuevo home no tiene sistema operativo, tiene sólo directorios home. Esto da unos 21 GB adicionales provenientes del Debian que no copié al nuevo home.
  • La partición nueva quedó 5 GB más grande que la original.

Además, a la inmediata derecha del nuevo home quedó una partición obsoleta de 68 GB, la del viejo Debian. No la quiero borrar todavía por si necesito algún archivo que haya olvidado copiar. De todos modos, me tomará algo de tiempo consumir esos 26 GB. Cuando necesite el espacio, simplemente haré lo siguiente:

  1. Borraré la partición del viejo Debian.
  2. Expandiré el Home hacia la derecha otros 68 GB. Esta es una operación simple, rápida y aceptablemente segura. Ni siquiera necesito GParted. Con la pura terminal lo puedo hacer fácilmente usando fdisk y resize2fs.

Con esto, tengo el potencial de almacenar hasta 243 GB de información en mi home. Esto represnta un aumento total de casi 95 GB. Esto, sin contar el espacio libre del que dispongo en el SSD, otros 230 GB.

Podría recuperar más espacio si borro la partición de Windows pero no creo que valga la pena. A veces una licencia legítima de Windows puede sacar de un apuro. Seguramente esto ya se quedará así.

Siguiente parte: temperatura, parte 1: qué tan chafa puede ser una pasta térmica.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *