Como migrar un S.O no soportado a la nube

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 -i
root@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/xvdb

Welcome 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): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First 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): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@pivote2:~# mkfs.ext4 /dev/xvdb1
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 52428544 4k blocks and 13107200 inodes
Filesystem UUID: e19badee-0ec3-446b-86e7-86ce3a27eba0
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing 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 -l
Disk /dev/xvda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000dd30c

Device     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 / Solaris


Disk /dev/xvdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x36f72771

Device     Boot Start       End   Sectors  Size Id Type
/dev/xvdb1       2048 419430399 419428352  200G 83 Linux


Disk /dev/xvdc: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc1a0a37d

Device     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=1024k
20480+0 records in0.1MiB/s] [                                                                                     <=>                                                                                                                                                        ]
20480+0 records out
21474836480 bytes (21 GB, 20 GiB) copied, 218.923 s, 98.1 MB/s
  20GiB 0:03:38 [93.5MiB/s] [                                                                                          <=>                                                                                                                                                   ]
204+245961 records in
204+245961 records out
21474836480 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!!!

 

Jorge Romero
Sigueme

Deja una Respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende c贸mo se procesan los datos de tus comentarios.