Tengo una imagen de disco, es una imagen de disco "completa", por ejemplo, contiene múltiples particiones, y quiero clonar solo una de ellas (no la primera ...) en una partición en una unidad externa con múltiples particiones ( Tampoco lo estoy clonando en la primera partición del disco ...)
FDisk'ing la imagen da esto:
# fdisk -l 2013-02-09-wheezy-raspbian.img Disco 2013-02-09-wheezy-raspbian.img: 1939 MB, 1939865600 bytes 255 cabezas, 63 sectores / vía, 235 cilindros, total 3788800 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico / físico): 512 bytes / 512 bytes Tamaño de E / S (mínimo / óptimo): 512 bytes / 512 bytes Identificador del disco: 0x00014d34 Dispositivo Arranque Inicio Fin Bloques Id Sistema 2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA) 2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux # #
y el dispositivo de bloqueo se ve así:
# fdisk -l / dev / sdc Disco / dev / sdc: 8014 MB, 8014266368 bytes 247 cabezas, 62 sectores / vía, 1022 cilindros, total 15652864 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico / físico): 512 bytes / 512 bytes Tamaño de E / S (mínimo / óptimo): 512 bytes / 512 bytes Identificador del disco: 0x00000000 Dispositivo Arranque Inicio Fin Bloques Id Sistema / dev / sdc1 2048 131071 64512 e W95 FAT16 (LBA) / dev / sdc2 131072 15652863 7760896 83 Linux # #
Quiero que la segunda partición de la imagen reemplace a la segunda partición del dispositivo de bloque. No se preocupe por el espacio libre corrompido, usaré GParted para limpiar eso, y lo necesito para otra cosa de todos modos.
Respuestas:
Si
--partscan
no funciona, también puede usar uno de:o soluciones de mapeo de particiones similares.
Probablemente deberías montarlo primero solo para ver si es lo correcto o qué.
Por supuesto, también puede leer la salida de fdisk y dar
dd
elskip=131072
o lo que sea directamente, es decir, omitir tantos bloques de entrada para que comience a leer en el lugar donde se encuentra la partición; pero es mejor ver particiones reales con un dispositivo de bucle.fuente
losetup
comando no funcionó: decía una opción no reconocida--find
. Quité eso, decía que no lo reconocía--show
. Quitar eso hizo que se quejara--partscan
, en ese momento me di cuenta de que el comando no iba a hacer nada por mí en el corto plazo. Decidí probar los otros, pero ambospartx
ykpartx
devolver "comando no encontrado".dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdc skip=122880
, pero eso vuelvedd: ‘2013-02-09-wheezy-raspbian.img’: cannot skip: Invalid argument
.skip
depende debs
, así que si usastebs=1M
(o tienes un alias que hace esto), eso explicaría por qué no funciona. tratar conbs=512
. Además, ¿por qué 122880 cuando fdisk dice 131072? También mi pérdida eslosetup from util-linux 2.22.2
. Lo mismo para Partx. kpartx es de herramientas multirrutas (mapeador de dispositivos usados).kpartx
es para LVM.partprobe
también hará el trabajo, desde el paquete separado.Algo como esto debería funcionar:
if = establece la imagen que desea clonar
of = establece la partición de destino donde desea clonar la imagen
fuente
dd: opening ‘2013-02-09-wheezy-raspbian.img2’: No such file or directory
losetup -fP yourImage.img
dd
, puede hacerlodd if=/dev/loop0p1 of=image.img
, pero creo que le gustaríacat
más. En un shell de raíz, simplemente hazlocat /dev/loop0p1 > image.img
. Ambos ejemplos suponen que desea la primera partición, y el dispositivo de bucle invertido que le asignaron fue/dev/loop0
losetup -d /dev/loop0
. Una vez más, esto supone que/dev/loop0
es su dispositivo de bucle invertido.fuente
Podrías hacerlo:
fuente
Puede copiar solo la segunda partición a una imagen separada con esto
y después de eso puedes copiarlo en lugar de la partición en el disco
o incluso puedes hacerlo con un comando
Solo asegúrese de desmontar / dev / sdc2 antes de escribir en él.
fuente