Mágico: cómo cambiar un sistema de archivos SIN formatear

Tal vez no necesites esta nota en este momento, pero guardala, porque sobre el tema que vamos a contarte hoy prácticamente no hay documentación, o al menos es muy difícil encontrarla. Hoy te vamos a contar cómo transformar una partición -por ejemplo- ReiserFS en una partición EXT4. Si venís del universo Window$ te va a sonar a japonés, pero de paso, te explicamos qué son los formatos y las particiones.

Un sistema de archivos es un componente encargado de administrar y facilitar el uso de las memorias. Principalmente se dedica a asignar espacio en función de los archivos, administrar el espacio libre y acceder a los datos guardados. Haciendo una mala metáfora, tu disco rígido funciona como un freezer: cuando abrís un archivo o un programa, lo sacás del freezer y lo cargás en la memoria RAM -por eso es tan importante el tamaño de esta memoria- lo modificás y luego lo volvés a meter al freezer. Como ves, en el freezer no se cambia nada, todo se hace en la RAM y luego de modificarlo, escribís los cambios.

El sistema de archivos en este caso, sería algo así como la estantería dentro del freezer: hablando en computación ‘dura’ el sistema de archivos estructura la información que se guarda en un dispositivo de almacenamiento que luego va a ser representada por el gestor de archivos.

Con estas características, existen distintos tipos de sistema de archivos. Muchos no son conocidos, porque es muy raro que alguien deba cambiarlos, ya que prácticamente son inherentes al sistema operativo, porque cada sistema se desarrolla para funcionar con un determinado sistema de archivos. Así, Window$ tiene las famosas NTFS y FAT, OS X utiliza las HFS, HFS+, GNU/Linux las EXT, ReiserFS, BRFS y similares. Cada uno tiene un tipo de optimización. Por ejemplo, el sistema ReiserFS -es uno de los más poderosos- maneja mejor grandes cúmulos de archivos pequeños que lo que lo hace BRFS, por lo que es un gran sistema de archivos para servidores, donde tenés muchísimos y pequeñísimos archivos que administrar.

Ahora, si alejamos un poco la vista, imaginemos que un disco rígido es la sala en la que está el freezer que veíamos, pero al mirar a los costados, hay varios freezers más. Esto es: en un mismo disco rígido, pueden coexistir distintos sistemas de archivos, cada uno con su propia partición.

El tema es que hay veces en que tenemos que cambiar un sistema de archivos.

El caso es este: una lectora nos comentó que en su facultad le piden un determinado programa para poder acceder a los contenidos que debe estudiar. El programa tenía versiones para Window$ y Ubuntu. Esta lectora usaba Debian 7 en su netbook desde hace unos 6 años y estaba muy contenta con la experiencia, por lo que no quería dejar de usar GNU/Linux, pero debía migrar a Ubuntu por temas de compatibilidad, ya que es un software específico de esa universidad y adaptarlo a Debian podía requerir demasiado tiempo porque su caso es prácticamente único (es un software con muy pocas usuarias) por lo que es más simple cambiar Debian por un Ubuntu.

El asunto es que en su disco tenía una partición ReiserFS con todos sus datos, una SWAP, una EXT3 con el Debian, una FAT con el sistema de recuperación y diagnóstico del sistema operativo que traía de fábrica (Window$) y una NTFS de intercambio.

¿Y el problema? El problema es que el instalador de Ubuntu no soporta las particiones ReiserFS, que era la partición más importante porque contenía todos los datos del disco, que se trata de una netbook -con recursos mínimos- y no hay forma de crear una imagen en DVD del disco para luego reponerla y que por la cantidad de datos no había forma de crear un backup en los tiempos que teníamos (4 días). Como el instalador de Ubuntu no soporta ReiserFS, entonces pensaba en instalar todo en la partición EXT3, buscar un kernel que soporte ReiserFS y luego modificar los archivos que montan el disco (fstab y mtab) para que carguen la partición ReiserFS.

El asunto es que la próxima vez que tuviera que reinstalar, seguiría con el problema de ReiserFS. ¿Por qué? Bueno, resulta que aunque es un sistema poderosísimo, está dejando de utilizarse porque Hans Reiser, su creadora, dejó de desarrollarlo para cumplir una condena de 15 años por asesinar a su esposa (¿viste? ser buena programadora no te hace menos asesina) y todavía le falta cumplir algunos más -unos 7- lo que hace mejor obviarlo ahora, y cuando se vuelva a desarrollar seguir usándolo.

Todo lo anterior plantea la pregunta: si no puedo formatear, ni sacar los datos, pero debo mantener los datos y cambiar el sistema de archivos ¿cómo “!#!”$$%$ hago?

La solución fue juntar coraje, sacar todo lo indispensable vía red -la netbook demoró 5 horas en mover sus 236gb- para luego bootear un Live-Pendrive con Ubuntu 14.04 -que era el único Ubuntu con que era compartible el soft que necesitaba instalar nuestra lectora- en el que utilizar FStransform, un software que nos permitió transformar la partición ReiserFS en EXT4 sin formatear ni perder ningún dato.

ATENCIÓN: Esto es experimental y tiene muchas chances de salir mal, por lo que no te recomendamos hacerlo sin leer detenidamente ni si no estás dispuesta a poner en riesgo todos tus datos, que tienen MUCHAS chances de perderse para siempre. FStransform sólo funciona con particiones para GNU/Linux.

Primero instalamos el famoso conjunto build essentials ya que FStransform necesita ser compilado y para eso hacen falta C++, make y varias más. Bajamos el código fuente más reciente, configuramos y compilamos.

En consola (y para Ubuntu y otras distros basadas en Debian) sería algo así:

usuario@sistema:/~ sudo -s
root@sistema:/~ apt-get update
root@sistema:/~ apt-get install build-essentials

(esperás)

Bajás el código fuente de FStransform, lo descomprimís, vas al directorio en que lo descomprimiste a la consola y compilás:

root@sistema:/~ $ ./configure
root@sistema:/~ make
root@sistema:/~ sudo make install

Luego toca lo más ‘difícil’ que es ejecutar fstransform, indicarle una partición a transformar e indicar a qué formato. En nuestro caso esto fue teclear:

root@sistema:/~ fstransform /dev/sda7 ext4

Y esperar durante 4 horas a que este software haga la transformación, que realmente resulta mágica. Para hacer todo este movimiento, es necesario tener espacio libre en el disco rígido, no menos de un 10%, y prestar mucha atención a lo que FStransform nos va comentando, ya que cada vez que se topa con un problema, sea grave o no, nos sugiere soluciones, por lo que se recomienda -y el mismo software lo hace- tener abiertas dos terminales o más. Una con FStransform corriendo, y otra desde la que correr las órdenes que nos sugiere el programa. Una de ellas, y por eso decimos dos terminales o más, es para vigilar con el comando ‘watch df /dev/X /dev/loop1′ o el que te muestre el mismo soft (reemplazá la X por tu partición) que el porcentaje llegue a 100%, momento en el que hay que cancelar la ejecución de FStransform (con Ctrl+C o equivalente).

¿Por qué? Porque lo que va haciendo el programa es mover un dato, cambiar el sistema de archivos, y volver a poner el dato en el lugar. Algo similar a sacar una alfombra, barrer y volver a ponerla. El tema es que necesita tener un lugar en que dejar la alfombra mientras barre, y por eso, nunca podés tener ocupado más del 90% de ninguno de los dos espacios.

En fin. Si todo va como debe ser, y siempre teniendo en cuenta que estamos haciendo cirugía a corazón abierto y en un descuido perderemos TODOS nuestros datos -o incluso sin descuidos- en algunas horas -MUCHAS, según también indica FStransform, que es un programa realmente genial- el programa terminará, y al chequear, tu partición tendrá el formato que necesitás, en nuestro caso, una flamante EXT4 en lugar de la anterior ReiserFS.

Ahora resta instalar el software, pero eso ya es más simple.

Esta nota queda abierta a consejos, comentarios y recomendaciones.

¡Happy Hacking!

-Share this page-
submit to reddit Hire a Professional Programmer

Periodista, ex directora de algunos medios, ex docente, ex trabajadora, ex uberante. Productora musical, militante social, murguera, programadora, diseñadora. Hacker. @PabloLozano13

compartí, discutí, comentá

Deja un comentario

Loading Facebook Comments ...