martes, 22 de marzo de 2011

Clonar Compact Flash

En esta ocasión voy a contar como clonar tarjetas Compact Flash.

Concretamente tarjetas que se utilizan como discos duros en PC's industriales.

Había probado varios programas de clonación y no funcionaban bien.

Por otro lado,al intentar usar fdisk o cfdisk se hacen un lio y no podia crear particiones que luego fueran booteables.

Por supuesto con el comando  dd  si se podía hacer. Pero no me interesaba clonar una CF de 8GB con dd si el sistema instalado ocupaba la mitad.

Al final consegui crear las particiones con parted y luego clonar el sistema con tar.



Paso 1: Copiar Sistema de Ficheros origen a fichero backup.

Se va a suponer que el dispositivo CompactFlash (en adelante CF) es reconocido por el sistema como /dev/sdc.

 1.1: Montar sistema de ficheros origen: 
    mount /dev/sdc1 /mnt/disk
 1.2: Copiar sistema de archivos a un fichero comprimido: 
    tar cvpzf CFBackup.tgz /mnt/disk 1 

Paso 2: Crear particiones en nueva CF.

 2.1: Si existen, borrar particiones existentes (suponemos existen 2 particiones):
    parted /dev/sdc rm 1
    parted /dev/sdc rm 2...
 2.2: Crear nuevas particiones:
  2.2.1: Para sistemas ext3:
    parted /dev/sdc mklabel msdos
    parted /dev/sdc mkpart primary ext3 0 3500
    mkfs -t ext3  /dev/sdc1
    parted /dev/sdc set 1 boot on
  2.2.2: Para sistemas ext2:
    parted /dev/sdc mkpartfs primary ext2 0 3500
    parted /dev/sdc set 1 boot on
  2.2.3: Para sistemas ext2:
    parted /dev/sdc mkpartfs primary linux-swap 3501 4000

Paso 3: Restaurar Sistema de Ficheros:


            3.1: Se monta el dispositivo CF:
                    mount /dev/sdc1 /mnt/disk
            3.2: Se copia sistema de ficheros al dispositivo CF:
                    tar xvpzf CFBackup.tgz -C /

Paso 4: Prepara Sistema de Ficheros nuevo:


            4.1: Modificamos fstab para que coincida con las nuevas particiones.
                   Por ejemplo: Si la partición swap es /dev/hda5 ahora será /dev/hda2.
            4.2: Actualizar el sistema de ficheros ram de inicio:
                        chroot /mnt/disk
                        update-initramfs -u
            4.3: Crear el nuevo sector de arranque (mbr) en la CF:
                        umount /media/disk

                       grub
                       grub> device (hd2) /dev/sdc
                       grub> root (hd2,0)
                       grub> setup (hd2)
                       grub> quit
                       sync



1Sistema origen aprox. 900MB. Fichero .tgz 441 MB

4 comentarios:

  1. que tal, tengo una pregunta, tengo una memoria CF industrial CF4 y deseo clonar para tener un respaldo para bootear con esta por si se le pasa algo a la original, se podra con los comandos que pusiste?

    ResponderEliminar
    Respuestas
    1. Sí, el último paso es para instalar el cargador de arranque en la CF.

      Eliminar
  2. Buenas tardes, veo que el sistema que montas en la particion de la compact flash es linux. Yo estoy en la misma tesitura, pero mi problema es que el sistema operativo es windows xp embeded. Como se genera el ultimo paso en este caso. Gracias.

    ResponderEliminar
  3. buenas tardes tengo el mismo problema quiero clonar una tarjeta cf
    en ella esta el sistema operativo y la aplicación de una maquina. me gustaría saber como poder hacerlo
    la tarjeta tiene sistema operativo windows y de lo que me he podido dar cuenta que cuando arranca lo hace con lilo linux

    ResponderEliminar