Esta guía la realizo por que ya muchos de los clientes con los que me topo diariamente quieren tomar sus sistemas operativos en VMDK subirlos a la nube y ejecutarlos!…( carita triste 🙁 ), pero muchas veces no resulta y se vuelve frustrante encontrarte con un error de IMS debido a que el mismo sistema lo rechaza.
Como solucionarlo?
La solucion es llevarte el vmdk a un servidor de pivote transformarlo en RAW con qemu, y con un DD cargarselo a un HDD con flag Booteable… FACIL!!!!
Manos a la Obra
Esta guia se realiza con lo siguiente
- S.O : Kali Linux 2017.03 64bits
- Maquina Pivote : ubuntu 16.04
- Nube : Open Telefonica Cloud
1.- Crear la maquina virtual con el S.O que desees en este caso el Kali Linux y bajar el VMDK
2.- Subir el VMDK a un bucket
3.- Configurar el Servidor de pivote
3.1 configurar entorno
3.1.1 Actualizar en instalación de paquetes necesarios
linux@pivote2:~$ sudo -iroot@pivote2:~# apt update && apt install qemu pv
3.1.2 Agregar un 2do disco con un espacio suficiente para hacer los volcados y las conversiones
3.1.3 Adjuntar el disco a la maquina pivote2
El disco quedo montado en la maquina pivote en la unidad /dev/sdb
3.1.4 Formatear disco y montar
root@pivote2:~# fdisk /dev/xvdbWelcome to fdisk (util-linux 2.27.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x36f72771.Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): 1First sector (2048-419430399, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-419430399, default 419430399): Created a new partition 1 of type 'Linux' and of size 200 GiB.Command (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.root@pivote2:~# mkfs.ext4 /dev/xvdb1mke2fs 1.42.13 (17-May-2015)Creating filesystem with 52428544 4k blocks and 13107200 inodesFilesystem UUID: e19badee-0ec3-446b-86e7-86ce3a27eba0Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done root@pivote2:~# mount /dev/xvdb1 /mnt/
3.2 Conversión del VMDK a formato RAW
Ingresar a la partición y descargar el VMDK desde el bucket. Para poder descargar el archivo desde el bucket en OTC debes darle permisos públicos. ACLARACIÓN, esta guía esta realizada en Open Telefonica Cloud, pero los bucket funcionan de la misma manera en cualquier otra nube con protocoles de f3fs (fuse). ACLARACIÓN 2, si trabajan con linux puedes enviar la imagen del vmdk con un simple scp
descargando desde el bucket
3.2.1 dar los permisos necesarios al archivo para su descarga
root@pivote2:/# cd /mnt/root@pivote2:/mnt# wget https://obs.sa-chile-1.telefonicaopencloud.com/isos-implantacion/Debian_8.x_64-bit-disk1.vmdk
cargando con scp desde linux
root@localhost:/#scp machine.vmdk -i "keypair.pem" linux@ip:/mnt
3.2.2 Conversión
root@pivote2:/mnt# qemu-img convert -f vmdk -O raw Debian_8.x_64-bit-disk1.vmdk Debian_8.x_64-bit-disk1.raw
4.- Creación de la maquina que recepcionara la imagen
La idea es crear una maquina con un sistema operativo similar en este caso como es un kali linux y sus sistema base es un debian 8 crearemos una maquina con debian con un disco del mismo tamaño o superior que la maquina creada en vmware o vbox.
5.- Separar el disco de la maquina creada y adjuntar en la maquina pivote
Apagar la maquina
Pinchar en la maquina y separar el disco
Adjuntar el disco a la maquina de pivote2
El disco fue montado en la maquina pivote2 en el dispositivo /dev/sdc Ya con esto estamos listos para el paso final que sera volcar la imagen del sistema operativo en el disco que adjuntamos.
6.- Volcado del disco RAW al HDD de la maquina oficial (es el dispositivo que montamos al final /dev/sdc)
root@pivote2:/mnt# fdisk -lDisk /dev/xvda: 40 GiB, 42949672960 bytes, 83886080 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x000dd30cDevice Boot Start End Sectors Size Id Type/dev/xvda1 2048 81543167 81541120 38.9G 83 Linux/dev/xvda2 81545214 83884031 2338818 1.1G 5 Extended/dev/xvda5 81545216 83884031 2338816 1.1G 82 Linux swap / SolarisDisk /dev/xvdb: 200 GiB, 214748364800 bytes, 419430400 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x36f72771Device Boot Start End Sectors Size Id Type/dev/xvdb1 2048 419430399 419428352 200G 83 LinuxDisk /dev/xvdc: 40 GiB, 42949672960 bytes, 83886080 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xc1a0a37dDevice Boot Start End Sectors Size Id Type/dev/xvdc1 2048 80383999 80381952 38.3G 83 Linux/dev/xvdc2 80386046 83884031 3497986 1.7G 5 Extended/dev/xvdc5 80386048 83884031 3497984 1.7G 82 Linux swap / Solaris
Volcar el RAW en /dev/xvdc
root@pivote2:/mnt# dd if=Debian_8.x_64-bit-disk1.raw bs=1024k | pv | dd of=/dev/xvdc bs=1024k20480+0 records in0.1MiB/s] [ <=> ]20480+0 records out21474836480 bytes (21 GB, 20 GiB) copied, 218.923 s, 98.1 MB/s 20GiB 0:03:38 [93.5MiB/s] [ <=> ]204+245961 records in204+245961 records out21474836480 bytes (21 GB, 20 GiB) copied, 234.763 s, 91.5 MB/s
7.- Separar el Dispositivo /dev/vdc de la maquina pivote2
al ser un disco anexo no es necesario apagar la maquina
Adjuntar Disco a maquina Kali-Linux-2017 creada
8.- Encender maquina
Este mismo procedimiento lo pueden realizar en cualquier NUBE…
HAPPY CLOUD AND HAPPY HACKING!!!
No hay comentarios.:
Publicar un comentario