Mostrando entradas con la etiqueta disco. Mostrar todas las entradas
Mostrando entradas con la etiqueta disco. Mostrar todas las entradas

26 de octubre de 2014

Cómo recuperar datos de un disco dañado

Primero aclarar que esta entrada será únicamente útil a los administradores de ordenadores, bioinformáticos o no, que hayan estado haciendo cambios en la distribución de su disco duro (tabla de particiones) y por algún error humano o de software hayan perdido los datos de su ordenador. Si nunca has tocado la tabla de particiones de tus discos, mejor no la toques, aunque puedes seguir leyendo...

Además el tema está de moda, porque muchos políticos y empresarios corruptos borran sus ordenadores antes de que llegue la policía... pero veremos cómo existen muchas herramientas para recuperar esos datos y meterlos en la cárcel ;)

El caso es que cuando instalamos Linux/Windows, o lo desinstalamos, o no nos arranca, o queremos crear una nueva unidad de disco dentro de nuestro propio disco, o queremos modificar las ya existentes... tenemos que modificar la tabla de particiones del disco. No explicaré lo que es la tabla de particiones, la Wikipedia lo hace mejor que yo, pero intentaré contar mi mala experiencia dar unos consejos muy útiles en caso de catástrofe.

Mi historia comienza el jueves pasado cuando me dio por ampliarme la partición de sistema (/) de mi Kubuntu, la creé de 20GB (era pequeña porque mi disco SSD es de 256GB y me gustan ligeras para poder hacer backups rápidamente), y la quería ampliar a 40GB quitando un poco de espacio a mi partición de (/home). Tenía en 10 minutos que asistir a un seminario, así que como puede tardar horas la redistribución era el momento perfecto. Y como el servidor con el que trabajo tarda mucho en arrancar, decidí hacerlo con mi portátil. Arranqué el portátil con un LiveUSB de Kubuntu 14, instalé y ejecuté GParted (ver nota 1), una aplicación que me gusta particularmente para modificar los discos con Linux y sistemas de archivos ext4 (Kubuntu también posee su propia herramienta de administración de discos). Hice los cambios de tamaño de particiones de disco que quería y pulsé la opción de 'Aplicar'. Hasta aquí todo normal, Gparted comenzó a mover datos en una partición para dejar espacio y poder amplicar la otra. Pero me di cuenta que no había conectado mi disco SSD al portátil y que estaba redimensionando mi disco interno NTFS de Windows (que también es de 256GB)... por las prisas decidí pararlo y dejarlo para después.
ERROR Nº 1: nunca detener una herramienta de administración de discos a mitad de un cambio, aunque sólo lleve 1 minuto.

Pensé que con la herramienta fdisk de Linux podía volver a asignar el tamaño original a la partición y el tipo NTFS.
ERROR Nº 2: Si hemos dañado la tabla de particiones, no hacer más cambios en ella, ni intentar formatear, si formateamos no garantizo que las herramientas que explico a continuación nos salven.

¿Qué deberíamos hacer si hemos llegado a este punto en que no podemos leer nuestro disco? Mi consejo es ir a la tienda más cercana, comprar un disco externo y hacer una copia exacta de nuestro disco 'estropeado' con un live CD de Clonezilla por ejemplo (ver nota 2). Así podemos intentar recuperar datos y estar seguros de que no puede ir la cosa a peor.

Leyendo por internet, descubrí una aplicación maravillosa y gratuita llamada TestDisk que analiza nuestro disco descubre particiones modificadas o borradas, lista los archivos que contenían y permite intentar restaurarlas. En este tutorial se describe cómo usar el programa y otras alternativas para recuperar datos. Recomiendo iniciar el ordenador con un LiveCD con TestDisk, ejecutarlo, buscar las particiones eliminadas con las opciones 'QuickSearch' y 'Advanced Search' (si la primera falla) y copiar todo a un disco externo. Posteriormente restaurar la partición con la opción 'Write'.




En mi caso encontré la partición borrada, pude copiar la mayoría de archivos del disco (algunos recientes no) y la opción de 'Write' para restaurar la partición no funcionó... El pánico había pasado, ha pero todavía no había recuperado todos mis datos. Entonces decidí probar el tan odiado chkdsk de Windows XP, aquí se explican todas sus opciones (recomiendo 'chkdsk /r').
ERROR Nº 3:  Si detenemos chkdsk a mitad de chequeo, no se arreglará el disco y al volverlo a ejecutar volverá a empezar desde el principio.

Tras 24 horas ejecutándose chkdsk y corrigiendo archivos, mi ordenador ha resucitado y parece que he recuperado casi todo, pero no todo, estoy tan feliz que he decidido escribir esta entrada :)

MORALEJA: Más vale perder unas horas haciendo copias de seguridad todos los meses, semanas o días, que tener que rezar al cielo para recuperar nuestros datos.

Tras 24 horas ejecutándose chkdsk y corrigiendo archivos, mi ordenador ha resucitado y parece que he recuperado casi todo, estoy tan feliz que he decidido escribir esta entrada :)
MORALEJA: Más vale perder unas horas haciendo copias de seguridad todos los meses, semanas o días, que tener que rezar al cielo para recuperar nuestros datos.

Otro buen consejo es usar almacenamiento redundante en la nube para nuestros datos más valiosos con servicios como Dropbox, aunque sabemos que nos los pueden espiar en cualquier momento.
 
NOTA 1: para modificar la tadesde Windows recomiendo MiniTool Partition Wizard.
 
NOTA 2: mi herramienta favorita de clonado y backup de discos es FSArchiver, pero Clonezilla es más fácil de usar con su interfaz gráfica.

9 de septiembre de 2012

Un SSD con Kubuntu 12 para gobernarlos a todos

ACTUALIZACIÓN: en la actualidad tengo instalado Kubuntu 12 de 64 bits en un disco de 256GB Samsung.

Hace ya unos meses cuando se liberó la versión beta de Ubuntu Pagolin 12.04 LTS me planteé instalarla en mi ordenador de trabajo. La principal novedad de Ubuntu 12.04 es que es una versión estable que será soportada durante 5 años. Uno de los inconvenientes que a mi parecer tiene Ubuntu es su falta de estabilidad en la migración de una versión a otra (yo siempre hago copia de seguridad antes). Siempre tengo problemas al actualizar una determinada versión y me tengo que quedar con la antigua si no quiero reconfigurar todo el ordenador de cero, cosa que con mi Windows XP nunca me ha pasado. Así que con Ubuntu 12.04 puedo estar tranquilo al menos 5 años :)



A su vez, me planteé la posibilidad del teletrabajo, aunque más que teletrabajo suele ser llevarse trabajo extra a casa. Y debido a las restricciones de acceso que tengo a mi ordenador de trabajo desde el exterior de mi centro y a la necesidad de portabilidad cuando viajo al extranjero, me surgió una vieja idea que tenía en mi cabeza... llevar mi ordenador en un pendrive. Haciendo cuentas de espacio, necesitaba un mínimo de 50GB para montar un sistema linux con todos los programas y bases de datos que suelo utilizar.
Los actuales pendrives a precios razonables no llegan a dicha capacidad, además son muy lentos comparados con los discos duros tradicionales y los modernos SSDs. Encontré por casa un disco duro viejo de portátil que tenía en una carcasa externa para hacer copias de seguridad y decidí instalar la versión de 64 bits de Kubuntu 12.04 para probar como funcionaba en un disco externo conectado por USB.

Disco duro IDE de portátil (2,5' 100GB) con carcasa USB.

Primero copié la imagen ISO de Kubuntu en un pendrive (así se evita desperdiciar 1 CD) con el programa LinuxLive USB. Entonces instalé Kubuntu tal y como se explica en los numerosos tutoriales que hay en internet, teniendo cuidado de elegir el disco correcto (en mi caso '/dev/sdc') y particionando el disco en una partición root ('/') de 20GB y una para el home ('/home') de 80GB. El espacio Swap no lo asigné a una partición sino a un archivo tras finalizar la instalación, ver más abajo.

Particionado de mi disco duro externo.
Al probar la instalación de Kubuntu en el disco externo USB quedé sorprendido que funcionaba con la misma fluided que mi anterior instalación en un disco fijo SATA. Para tareas ordinarias parece que la velocidad USB es suficientemente alta como para no notarlo en el rendimiento. Ahora llegaba la prueba de fuego... conectar el disco en otro ordenador por USB y ver si también funcionaba. La instalación de Kubuntu no arrancaba en mi portátil (un poco antiguo por cierto), la explicación es que mi portátil no soporta sistemas operativos de 64 bits.
NOTA: aunque sigo siendo partidario de los 32 bits, recomiendo instalar 64 bits a todo el que trabaje en NGS, si no programas como Bowtie o Trinity nunca funcionarán.

Volví a instalar Kubuntu, pero esta vez la versión de 32 bits en el disco y ahora sí que funcionaba, tanto en mi ordenador de sobremesa de 64 bits, en mi portátil de 32 e incluso en mi netbook Acer Aspire One, reconociendo tanto tarjetas de video, sonido y wifi en todos ellos. Con la sorpresa que en el netbook aparecía un escritorio diferente, el KDE Netbook Plasma. Dicho escritorio es algo raro al principio, pero según te acostumbras resulta más cómodo para trabajar con pantallas pequeñas. Haciendo una prueba sencilla de rendimiento, con la versión de 32 bits perdía un 10% de velocidad al ejecutar scripts de perl, una pérdida que no me importaba debido a su gran compatibilidad. Seguramente en programas optimizados de compresión de vídeo o retoque fotográfico el rendimiento será peor, pero en mi caso los programas científicos que requieren alto rendimiento están en servidores externos, y en mi ordenador simplemente pruebo scripts o tareas que más tarde puedo mandar a los servidores.

Aspecto del KDE Netbook Plasma.


Ahora tenía lo que quería... UN DISCO CON LINUX QUE PUEDO CONECTAR A CUALQUIER ORDENADOR Y TRABAJAR CON ÉL.

Tras probar "mi nuevo ordenador" durante varios meses en el trabajo, en casa, viajando... he tenido tan buenas experiencias que he decidido "ampliarlo". La ampliación ha consistido en migrar el sistema a un disco externo SSD. En teoría la mejora en rendimiento de un disco duro clásico a uno SSD es sustancial. El disco elegido ha sido un Samsung 830 de 128GB, tuve dudas entre éste y un Crucial M4, pero me decanté por el Samsung debido a la mínima diferencia de precio y la fiabilidad de la marca

Disco SSD y carcasa externa.
El primer paso de la migración fue usar un pendrive con Clonezilla (también creado con LinuxLive USB). Tras arrancar el ordenador con el pendrive y los 2 discos externos USB conectados, seleccionando la opción 'device-device' pude clonar mi antiguo disco externo en el nuevo SSD. Sin embargo, debido a las diferencias entre los discos, el nuevo disco no arrancaba. Para arreglarlo, retomé mi pendrive de Kubuntu y lo reinstalé en mi partición root ('/') copiada en el disco SSD. El instalador de Kubuntu es bastante inteligente y restaura el registro de arranque (MBR) y alguna cosa más sin alterar la partición root y los programas que ya teníamos instalados.

Pantalla ejemplo de Clonezilla.
Ya sólo quedaba comprobar que funcionaba en mis varios ordenadores...
(sólo se resiste a reconocerlo una placa base Gygabyte GA-965P-DS4 rev. 1.0)


Respecto a la mejora en el rendimiento, hasta el momento sólo puedo decir que el tiempo de arranque es menor y que LibreOffice se inicia en la mitad de tiempo usando el disco SSD.

Disco en la carcasa comparado en tamaño con un bolígrafo.
Y aún se puede optimizar más el discoy alargar su vida útil, básicamente minimizando las operaciones de lectura/escritura en disco, para ello podemos hacer las siguientes modificaciones en nuestro linux:
  • Añadir a '/etc/fstab' las opciones noatime,nodiratime y discard en todos los puntos de montaje del disco.
  • Crear y montar el archivo swap indicando que sólo se use cuando sea estrictamente necesario:
  1. Crear el archivo:
    • sudo dd if=/dev/zero of=/media/swapfile bs=1M count=4000 
  2. Activar el archivo swap:
    • sudo mkswap /media/swapfile
    • sudo swapon /media/swapfile
  3. Añadir en '/etc/fstab' la siguiente línea para que se active al arrancar:
    • /media/swapfile swap    swap    defaults        0       0  
  4. Añadir la siguiente línea en '/etc/sysctl.conf' para dar preferencia de uso a la memoria RAM:
    •  vm.swappiness = 0
  5.  Comprobar el funcionamiento:
    •  cat /proc/swaps
  • Montar en RAM el cache del sistema, para ello añadir a '/etc/fstab' la línea:
    • tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Más detalles sobre la optimización en:
http://askubuntu.com/questions/1400/how-do-i-optimize-the-os-for-ssds
http://www.howtogeek.com/62761/how-to-tweak-your-ssd-in-ubuntu-for-better-performance

Al instalar Kubuntu 12.04 de 64 bits el ordenador se volvió anormalmente lento y no funcionaba mi conexión a monitor externo, lo cual se solucionó actualizando los drivers de NVIDIA:
http://askubuntu.com/questions/133181/ubuntu-12-04-x64-very-slow-response-and-sluggishness