Hacer imagenes de dispositivos de memoria

by Jorge Machin on April 17, 2008 · 0 comments

in Linux, Windows

Ahora es común tener algún dispositivo embebido con alguna unidad USB o tarjeta de memoria como medio de almacenamiento debido a su sencillez y que los precios de estas memorias han bajado notablemente. Aunque la mayoría utilizan el formato VFAT32, existen otros que maneja el suyo propio por razones debido al sistema operativo que utilizan o por razones de patentes.

Memoria Compact Flash
Esta memoria la utilizo en mi
Color Computer 2 como disco duro

Si deseamos tener una imagen de alguna memoria como respaldo o para edición desde nuestra PC, podemos utilizar el comando de unix dd (tanto en windows como en Linux) sin importar el formato que tenga.

En Linux

Primero debemos saber donde se encuentra nuestra tarjeta de memoria. Si tiene un formato desconocido para Linux, está no aparecerá en el directorio media ni tampoco la reportará el comando mount. Para ello debemos de apoyarnos de una utilería externa: lsscsi.

En Fedora, se instala de la forma usual:

yum install lsscsi

Obtenemos el directorio del dispositivo con:

[renato@jorge renato]$ lsscsi  --long
[0:0:0:0]    disk    ATA      ST3320820AS      3.AH  /dev/sda 
state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=60
[4:0:0:0]    cd/dvd  ATAPI    DVD A  DH16AYH   YH13  /dev/sr0 
state=running queue_depth=1 scsi_level=6 type=5 device_blocked=0 timeout=0
[6:0:0:0]    disk    Generic  USB SD Reader    1.00  /dev/sdb 
state=running queue_depth=1 scsi_level=0 type=0 device_blocked=0 timeout=60
[6:0:0:1]    disk    Generic  USB CF Reader    1.01  /dev/sdc 
state=running queue_depth=1 scsi_level=0 type=0 device_blocked=0 timeout=60
[6:0:0:2]    disk    Generic  USB SM Reader    1.02  /dev/sdd 
state=running queue_depth=1 scsi_level=0 type=0 device_blocked=0 timeout=60
[6:0:0:3]    disk    Generic  USB MS Reader    1.03  /dev/sde 
state=running queue_depth=1 scsi_level=0 type=0 device_blocked=0 timeout=60

Y ahora podemos sacar la imagen de la memoria con dd:

dd if=/dev/sdc of=memory.img bs=1M

Si se quiere pasar de una imagen a la memoria, simplemente se invierten los parámetros.

En Windows

Afortunadamente existe para windows un port del comando dd que podemos bajar de http://www.chrysocome.net/dd.

Al igual que en Linux, debemos primero saber algunos datos como la ubicación y volúmenes de la memoria. Para ello, utilizamos desde una terminal MS-DOS:

C:\Users\Jorge Machin>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL.  See copying.txt for details
Win32 Available Volume Information
\\.\Volume{3d581a9d-fc8d-11dc-a562-806e6f6e6963}\
  link to \\?\Device\HarddiskVolume1
  fixed media
  Mounted on \\.\c:

\\.\Volume{3d581a9e-fc8d-11dc-a562-806e6f6e6963}\
  link to \\?\DeviceHarddiskVolume2
  fixed media
  Mounted on \\.\d:

\\.\Volume{3d581aa1-fc8d-11dc-a562-806e6f6e6963}\
  link to \\?\Device\CdRom0
  CD-ROM
  Mounted on \\.\e:

\\.\Volume{3d581aec-fc8d-11dc-a562-00137227c053}\
  link to \\?\Device\HarddiskVolume3
  removeable media
  Mounted on \\.\f:

\\.\Volume{3d581af4-fc8d-11dc-a562-00137227c053}\
  link to \\?\Device\HarddiskVolume4
  removeable media
  Mounted on \\.\g:

\\.\Volume{3d581b06-fc8d-11dc-a562-00137227c053}\
  link to \\?\Device\HarddiskVolume5
  removeable media
  Mounted on \\.\h:

\\.\Volume{3d581b11-fc8d-11dc-a562-00137227c053}\
  link to \\?\Device\HarddiskVolume6
  removeable media
  Mounted on \\.\i:

NT Block Device Objects
\\?\Device\CdRom0
  Removable media other than floppy. Block size = 2048
  size is 3063644160 bytes

Virtual input devices
 /dev/zero   (null data)
 /dev/random (pseudo-random data)
 -           (standard input)

Virtual output devices
 -           (standard output)

Con esta información, ya podemos utilizar el comando dd:

dd if=\.Volume{3d581af4-fc8d-11dc-a562-00137227c053} of=memory.img bs=1M --size --progress

También se puede usar el comando dd desde cygwin si lo tiene instalado.

Leave a Comment

Previous post:

Next post: