02/02/2018

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 -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