By | 25 septiembre, 2004

El otro dí­a llegó a mis manos mi nueva notebook a la que le puse el disco de la anterior (era un disco nuevo y más grande que el de fábrica), pero claro, mientras Linux funcionó perfectamente, el Windows dejó de funcionar por el cambio de hardware. Entendámonos: con la compra de cada un notebook es necesario aceptar la licencia compulsiva de un Windows, entonces, siendo un Windows legal algun uso puedo darle… aunque más no sea para probar exploits y virus.

hd Me vi forzado a reinstalar el Windows pues, como dije, dejó de funcionar y el reinstalador es un CD de recuperacion que hace una instalación destructiva, o sea que plancha el disco como si recién saliera de la fábrica…. ¡cuánta libertad que ofrece Windows!! (licencia compulsiva, y ni siquiera respeta mis datos… ). Asi que tuve que buscar una forma de respaldar los datos de la forma más sólida posible y sencilla, y lo hice respaldando por red las particiones.

En esta nota, explico los simples pasos que di para hacerlo utilizando el comando dd.

Primero, arrancar con cualquier sistema externo al disco duro. Yo lo hice con Knoppix-3.6, pero también podría haber sido con cualquier otro sistema que levante la red y tenga ssh. Lo importante es no arrancar del disco duro, ni tener sus particiones montadas.

También es necesario tener espacio suficiente en la partición de destino para contener los giga o megas que tiene la particion a respaldar, de todas formas alguna compactación pude ser hecha con gzip o bzip2.

Respaldar el disco entero

Es posible respaldar el disco entero, con sector de arranque, tabla de partición y particiones con este comando:

dd if=/dev/hda | ssh usuario@equipo_remoto "gzip -9 > 20040928-notebook-hda.gz"

Para recuperar los datos es tan simple como escribir:

ssh usuario@equipo_remoto "cat 20040928-notebook-hda.gz | gunzip" | dd of=/dev/hda

pero en mi caso, que yo queria respaldar solo las particiones de Linux, instalar Windows (rescue-CD) y recuperar Linux, me encontre en la necesidad de respaldar particion a partición.

Respaldando cada partición

Si se necesita respaldar cada partición, entonces es necesario guardar los datos correspondientes al MBR (master boot record) y eso lo hice con esta línea:

dd if=/dev/hda bs=512 count=1 | ssh usuario@equipo_remoto "cat - > 20040928-notebook-hda-mbr.dd"

está claro que no es necesario hacer una compactación de esto, ya que es un archivito muy chico. Y cada partición la respaldé con la siguiente linea (ejemplo de hda3):

dd if=/dev/hda3 | ssh usuario@equipo_remoto "gzip -9 > 20040928-notebook-hda3.gz"

Para proceder a recuperar se debe primero levantar nuevamente el MBR y la tabla de partición:

ssh usuario@equipo_remoto "cat 20040928-notebook-hda-mbr.dd" | dd of=/dev/hda

y es necesario rebootear, para que todo el sistema lea la nueva tabla de partición del disco; obviamente se sigue siempre arrancando desde el CD con Knoppix, y entonces si se puede proceder a recuperar cada una de las particiones, con este ejemplo:

ssh usuario@equipo_remoto "cat 20040928-notebook-hda3.gz | gunzip" | dd of=/dev/hda3

Conclusiones

Dependiendo de la velocidad del equipo_remoto es posible utilizar bzip2 en lugar de gzip, con la consiguiente mejora en el espacio ocupado por los respaldos.

Y con esto, ¿quién necesita andar usando Norton Ghost en forma ilegal?

19 Replies to “Respaldando particiones enteras del disco”

  1. Federico Wagner

    Habria que probar con algun disco USB (como por ejemplo: Iomega HDD de 120GB USB2, creo que es una opciòn muy buena para este tipo de respaldos.

  2. Diego Algorta Casamayou

    Buena info.
    Yo he hecho cosas parecidas con el Partimage que es Libre y más parecido a lo que hace el Norton Ghost.
    En cuanto al sistema para bootear, suelo usar el System Rescue CD que incluye al Partimage y otras cosas útiles como ClamAV y otros chiches.

  3. Daniel Bertúa

    Pregunto:
    Se podría hacer algo parecido, pero booteando desde disquet?
    Con una mini distro tipo Leka Linux que cargue lo que tu dices, o sea:
    Primero, arrancar con cualquier sistema externo al disco duro. Yo lo hice con Knoppix-3.6, pero también podría haber sido con cualquier otro sistema que levante la red y tenga ssh. Lo importante es no arrancar del disco duro, ni tener sus particiones montadas.
    Mis conocimientos no me permiten escarbar tanto, pero sería muy interesante si se pudiera hacer algo de eso.
    Personalmente uso el sistema que mencionaba Diego Algorta, para lo mío, pero para los clientes utilizo un disquet de arranque con Partition Saving para no usar Norton Ghost ilegal. Para particionar está el Ranish Partition Manager, para no usar el Partition Magic.
    Ambos freeware, no me acuerdo si son Libres.

    Saludos, Daniel Bertúa

  4. MIguel Paolino

    La unica deventaja que tiene el dd es que el espacio en blanco (o basura suelta) que tenes en el disco tambien marcha para el archivo de imagen. La solucion mas corta que hay es llenar el resto de la particion que no se utiliza de ceros para que cuando se comprima sea infimo el espacio que ocupe. Como lo hacemos?:
    dd if=/dev/zero of=archivo_a_borrar
    Con esto creamos un archivo lleno de ceros que ocupe todo el resto de la partición, luego lo borramos, y pronto :). O sino, otro metodo es usar partimage (podes usar samba para tirarlo por la red a otro lado), que se encarga de obviar el espacio no utilizado. Claro que se pierde la capacidad de poder montar el archivo de imagen para poder sacar archivos sueltos (por ahora), pero bueno, ustedes tambien quieren todo ;)…

  5. Nicolas Rotunno

    El lilo tiene la opcion de «copiar» el mbr, le la pag. man del lilo:

    -s fichero-salvado
    Cuando lilo reescribe el sector de arranque, guarda el contenido previo en un fichero, por omisión /boot/boot.NNNN donde NNNN depende del dispositivo usado. Esta opción especifica un fichero
    aternativo para guardar el sector de arranque. (O, junto con la opción -u, especifica desde dónde restaurar el sector de
    arranque.)

    -S fichero-salvado
    Usualmente, lilo no reescribe un fichero-salvado ya existente. Esta opción permite reescribirlo.

    Y para restaurarlo:

    -u nombre-dispositivo
    Desinstala lilo, simplemente copiando el sector de arranque que previamente se salvó. Se verifica la marca de tiempo.

    -U nombre-dispositivo
    Similar al anterior, pero lilo no verifica la marca de tiempo.

    Nunca lo probe, pero supongo que resolveria el problema del MBR.
    En cuanto al tema de los datos, la opcion del dd nunca la probe, simplemente un tar, que conserve permisos y andubo bien.

  6. lucas

    Me parecio exelente. Ya corri el comando dd para respaldar todo el disco , pero me gustaria saber como hago para levantar ese respaldo, en un disco que esta VACIO. o sea, en una maquina de cero. gracias

  7. Rodolfo Pilas

    Muy facil, arrancas con Knoppix y luego haces la parte del documento que está descripta en:
    Para proceder a recuperar se debe primero levantar nuevamente

    Si el disco no es del mismo tamaño, tenes que tener una tabla de particion «acorde» con la particion que vas a recuperar. Asi que con fdisk tenes que crearte la tabla de particion, con una particion para alojar exactamente el tamaño de la particion a recuperar y luego recuperar la particion con ssh como se describe arriba.

  8. Edgar

    Yo probe una utilidad llamada G4U (Ghost for Unix) que esta muy buena, levanta protocolo de red y con un FTP en la red podes respaldar tu disco o particion y viceversa. Con el Ghost de Norton tenes que hacerte un disco de arranque de red con un driver especifico para la interfase de red. Como todo lo de Linux este no precisa nada de eso y es opensource.

  9. Andrés

    Como podría hacer para lograr clonar un XP que se enceuntra en una gabeta externa USB2 a un disco montado en un Gabinete. He intentado bootear por medio del USB pero no lo he logrado. Y no encuentro algo que en momento del arranque me reconozca la particion que se encuentra en el dispositivo USB para luego clonarlo al disco fijo. Agradeceria alguna sugerencia. Desde ya muchas Gracias

  10. Sergio

    Un apéndice al tema respaldo de discos puede ser el respaldo de imágenes de CDs.
    También en este caso se puede usar dd:
    Supongamos que el CDROm está en el master de IDE secundario, entonces para generar una copia del CD en disco podemos hacer:

    dd if=/dev/hdc of=./imagenCD.iso

    La belleza de esto es que si querés ver lo que tiene adentro la imagen ISO, basta usar el viejo y querido comando mount:

    mkdir /mnt/CD
    mount -o loop ./imagenCD.iso /mnt/CD

    Ni que hablar de la trivialidad de finalmente grabar la imagen ISO a otro CD viergen, o tenerla disponible para bajar por internet.

  11. wendy

    como puedo clonar un disco duro q tiene linux a otro. gracias

  12. rodolfo Post author

    Wendy: si los discos duros son iguales y estan ubicados fisicamente en la misma maquina puedes usar el comando dd perfectamente, asi:

    dd if=[disco origen] of=[disco destino]

    dd if=/dev/hda of=/dev/hdc

  13. genaro

    Hola, ando intentando hacer una imagen de Win2000, lo he intentado con partimage pero me da un error posiblemente de un cluster en mal estado y no me deja de hacerla. Por lo que estoy leyendo el comando «dd»», necesita tanto para hacer como para recuperar que el tamaño de la partición sean identicas (15 gb en este caso) pero no me ha quedado claro del todo al decir que se puede llenar el espacio de ceros «» dd if=/dev/zero of=archivo_a_borrar «»

    ¿Se nota lo novato que soy en esto de linux?.

    El tema sería desde el mismo ordenador, hacer una imagen de W2000 que esta (NTFS), para tener la imagen como un archivo (son unos 3GB) en otra partición del ordenador, y así poder recuperarla en caso necesario, y no un archivo de 15 GB que es lo que tienen la partición en la que se encuentra W2000, ya que no dispongo de ese espacio libre en las demás particiones.

    gracias

  14. Alejandro

    Estaba leyendo los comentarios y me parecio interesante, pero como le podria hacer si quiero pasar todo lo que tiene el disco (linux, configuraciones, usuarios etc) a otro disco si el disco «nuevo» es de mayor capacidad?? tengo instalado White box, el disco actual tiene 40 GB y por necesidad de espacio lo quiero pasar todo a un disco de 160 GB, ¿Se puede hacer esto o tengo que reinstalar todo de nuevo????, gracias de antemano.

  15. rodolfo Post author

    Alejandro, puedes perfectamente copiar la partición como se indica en el artículo, lo que tienes que tener en cuenta es que te queda la misma partición de 40GB. Lo que haces con el resto es una nueva (o nuevas) partición que montas en los directorios donde necesitas espacio.

  16. rodolfo Post author

    Es posible generar un único archivo (en el espacio libre) lleno de ceros y luego borrarlo.

    dd if=/dev/zero of=/0bits bs=20971520 # bs=20m
    rm /0bits

    esto hace que el compactador gzip logre comprimir el espacio libre con óptimos resultados.

  17. angel

    Cuantas veces se nos ha pasado por la cabeza que se estropea el ordenador y que tenemos que hacer una copia de seguridad cuanto antes. Nadie ni núnca se esta a salvo de una eventual pérdida de datos de discos duros de ahí la importancia de un buen sistema de copias de seguridad. Esta es la mejor forma de recuperar su informacion en un momento de desastre que generalmente coincide con las prisas a la hora de utilizar el sistema. Y si a pesar de todo es necesario una recuperacion de datos ó recuperar el disco duro porque no teníamos las copias actualizadas, le recomendamos consulte con una empresa especializada como es el caso de http://www.lineared.com en dónde le podrán recuperar los datos ó llevar a cabo la recuperacion del disco duro.

  18. Jorge Alexandro

    hola rodolfo.

    bueno pase a dejar un comentario porque ya van dos cuatrimestres que uso el metodo que aqui describes para «formatear» los computadores del laboratorio de informatica de la universidad, 24 computadores en alrededor de 6 horas… copiando las particiones desde un servidor gentoo y usando los live cd de ubuntu (por metodos convencionales me hubiera tardado cerca de hora y tanto en cada computador, incluyendo instalaciones de office, firefox, plugins, etc.), aunque creo que podia haber echo un mejor tiempo ya que tube que congigurar las tarjetas de red manualmente cada vez que se reiniciaba el live cd, esto a causa de que no hay disponible un servidor DHCP…

    y de mis pruebas puedo hacerte estas obervaciones:

    1. despues de planchar la MBR, tambien se puede planchar la particion automaticamente (sin tener que reiniciar) y no habra porblema a la hora de reiniciar el computador, windows carga perfectamente.

    2. desafortunadamente la particion de respaldo no se comprime bastante, cerca de un 80% de su tamaño original, pero como el respaldo lo hice a un servidor gentoo con 160GB de HD este no fue ningun problema XD.

    gracias por publicar este articulo que me ayudo bastante ha no estar pasando horas interminables contemplando la odiosa instalacion de windows, por ultimo hice una recomendacion al encargado del laboratorio para que en vez de instalar windows pusieramos una distro de linux, espero la tomen en cuenta.

    saludos.

Responder a Nicolas Rotunno

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