lunes, 13 de mayo de 2013

Linux Formato a Bajo Nivel

¿Cómo formatear a bajo nivel en Linux?
Sería útil poder hacer esto para recuperar un disco que hemos analizado y consideramos como última alternativa esta opción, el problema es que NO hay manera de hacerlo.

Los primeros HDD usaban un mecanismo para el movimiento de los cabezales. Este mecanismo movía un motor un número determinado de pasos y la pista correcta aparecería bajo el cabezal. No obstante, si el disco era usado en posición vertical, la gravedad podía mover el cabezal haciendo que se desalineara ligeramente e impidiendo la localización de la pista deseada, también el apagar el ordenador de manera brusca hacia que el cabezal cayera sobre las pistas. La dilatación térmica podía hacer que la pista se moviera relativamente de la posición donde el cabezal esperaba encontrarla resultando en un error de lectura. Los daños en la superficie de los discos y en los materiales de almacenamiento magnéticos fueron problemas muy comunes que impedían la lectura de la información. El formato a bajo nivel era usado entonces para redefinir la geometría física y mapeo de los sectores defectuosos. Este proceso se lograba estableciendo nuevos límites para el disco, permitiéndose al dispositivo funcionar como nuevo pero con pérdida de espacio.

El asunto en la actualidad es que con el avance de la tecnología, los nuevos discos duros están diseñados de una forma más precisa; tienen sistemas de protección en los cabezales, usan estructuras internas complejas y mapean los sectores defectuosos de manera transparente y automática. Esta complejidad hace que los discos solo sean formateados a bajo nivel en la fábrica por el resto de su vida útil. NO existe manera de hacer un formato a bajo nivel en un disco duro IDE/SATA/SCSI moderno fuera de la fabrica o en una computadora común. Existe una manera para redefinir la geometría lógica del disco y es lo que resulta al hacer particiones.

Actualmente es común oír sobre formato a bajo nivel (Low Level Formatting) cuando la gente tiene problemas serios con el disco duro o porque el dispositivo a empezado a descubrir un montón de sectores dañados y desean intentar recuperar ese disco.

Buscando en internet existen programas que cada fabricante de HDD ofrece desarrollada de manera especial para tal fin, o existen CDs Booteables, uno de ellos como Hiren’s que ofrece HDD Regenerator Tool en su versión 10.4 y anteriores; ya que dejo de incluirla en las nuevas actualizaciones del CD.
Al final estas herramientas nunca hacen un formato de bajo nivel obviamente por la complejidad técnica de los medios actuales; lo que hacen es una Reinicializacion o un Formato a nivel medio.
Este proceso incluye identificar cualquier sector que no pueda ser leído o escrito correctamente, además de llenar cada espacio del disco con ceros (Zero-Filling), es decir que sobrescribe limpiando totalmente la unidad.
En Linux se usa un comando sencillo para realizar esta hazaña, obviamente primero se deben tomar todas las debías precauciones del caso, e identificar la unidad a la cual se le realizara este formato ( fdisk –l ), una vez teniendo en cuenta eso al bootear un cd linux y cargado el sistema operativo en una ventana terminal y con derechos de superusuario root se ejecuta:
                  dd if=/dev/zero  of=/dev/sda
en el comando anterior como ejemplo se usa sda , la cual vendría a ser la unidad a la que se le realiza el formato. Al terminar el proceso el dispositivo no tendrá particiones, eso se puede hacer usando Gparted, o un gestor de particiones, eso hace de manera grafica el trabajo más sencillo, aunque también se los puede hacer con comandos:
                  fdisk /dev/sda
Una vez dentro pulsamos la m para visualizar las distintas opciones; seguimos los pasos y creamos la partición, después:
                  mke2fs –j   /dev/sda
esto crea el sistema de archivos al interior de la partición.

NOTA IMPORTANTE: el proceso de Zero Filling o formato de nivel medio, toma demasiado tiempo, por ejemplo cuando realice el proceso para un disco duro de 1 Terabyte (SATA 6Gb/s-7200rpm) se necesito de 22 horas en una computadora de 4 GB de RAM DDR3 y procesador AMD Fusion E450 Dual Core de 64 bits. Así que hagan cálculos para tener una idea según sea vuestro caso en particular.

Adicional, cuando se ejecuta el comando dd, lastimosamente no se ve en la ventana terminal el porcentaje del avance pero si ejecuta el administrador de procesos se puede ver claramente que si esta corriendo en memoria. Al momento de esta publicación en el blog no he logrado encontrar una manera de que el Linux me muestre en la ventana terminal como va el proceso. Asi que toca ponerle un ups a la computadora, dejarla encendida, esperar o tener planeado algo que hacer para no aburrirse hasta que el Linux te avise que se termino el proceso.

No hay comentarios: