JukyParaguay/trabajos2013/xoos/qemu tutorial: Difference between revisions

mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Instalacion y configuracion de Qemu=
= Instalación y configuración de Qemu=
Esta seccion es una compilacion de Tutoriales para la instalacion de fedora con arquitectura arm en qemu.
Esta sección es una compilación de Tutoriales para la instalación de fedora con arquitectura arm en qemu.
==Primeros pasos.==
==Primeros pasos.==
Lo primero<ref name="Qemu-install">[https://fedoraproject.org/wiki/Architectures/ARM/Versatile_Express#Versatile_Express], Tutorial ARM/Versatile Express</ref> que necesitamos es instalar Qemu. Lo podemos hacer con el gestor de paquetes.
Lo primero<ref name="Qemu-install">[https://fedoraproject.org/wiki/Architectures/ARM/Versatile_Express#Versatile_Express]Tutorial ARM/Versatile Express</ref> que necesitamos es instalar Qemu. Lo podemos hacer con el gestor de paquetes.
Para fedora:
Para fedora:
  #yum install qemu
  #yum install qemu
Line 14: Line 14:
*[http://mirrors.kernel.org/fedora-secondary/releases/17/Images/armhfp/Fedora-17-armhfp-vexpress-mmcblk0.img.xz Img]
*[http://mirrors.kernel.org/fedora-secondary/releases/17/Images/armhfp/Fedora-17-armhfp-vexpress-mmcblk0.img.xz Img]
*[http://mirrors.kernel.org/fedora-secondary/releases/17/Images/armhfp/Fedora-17-armhfp-vexpress-mmcblk0-kernel.tar.xz Kernel]
*[http://mirrors.kernel.org/fedora-secondary/releases/17/Images/armhfp/Fedora-17-armhfp-vexpress-mmcblk0-kernel.tar.xz Kernel]
Necesitamos la imagen .img y el kernel.tar de Versatile Express<ref name="vexpress">[http://www.arm.com/products/tools/development-boards/versatile-express/index.php] Informacion sobre Versatile Express.</ref>
Necesitamos la imagen .img y el kernel.tar de Versatile Express<ref name="vexpress">[http://www.arm.com/products/tools/development-boards/versatile-express/index.php]Informacion sobre Versatile Express.</ref>
Luego las descomprimimos con el comando unxz. por Ejemplo:
Luego las descomprimimos con el comando unxz. por Ejemplo:
  $unxz Fedora-17-armhfp-vexpress-mmcblk0.img.xz
  $unxz Fedora-17-armhfp-vexpress-mmcblk0.img.xz
Line 56: Line 56:
  Fedora-17-armhfp-vexpress-mmcblk0.img2        1044225    3688447    1322111+  83  Linux
  Fedora-17-armhfp-vexpress-mmcblk0.img2        1044225    3688447    1322111+  83  Linux


Para eso tenemos varias opciones. Para este tutorial vamos a redimencionar la particion principal<ref name="resize-fs">[http://askubuntu.com/questions/107228/how-to-resize-virtual-machine-disk] How to resize virtual machine disk.</ref>.
Para eso tenemos varias opciones. Para este tutorial vamos a redimensionar la partición principal<ref name="resize-fs">[http://askubuntu.com/questions/107228/how-to-resize-virtual-machine-disk]How to resize virtual machine disk.</ref>.
La imagen ''Fedora-17-armhfp-vexpress-mmcblk0.img'' descomprimida ocupa aproximadamente 1.8G
La imagen ''Fedora-17-armhfp-vexpress-mmcblk0.img'' descomprimida ocupa aproximadamente 1.8G
Para redimencionar la imagen podemos usar el comando '''qemu-img resize <filename> [+ | -]<size>'''. (La VM no debe estar activa!)
Para redimensionar la imagen podemos usar el comando '''qemu-img resize <filename> [+ | -]<size>'''. (La VM no debe estar activa!)
Pero primero crearemos un backup de esta imagen, un simple cp basta.  
Pero primero crearemos un backup de esta imagen, un simple cp basta.  
  $ cp Fedora-17-armhfp-vexpress-mmcblk0.img backup.img
  $ cp Fedora-17-armhfp-vexpress-mmcblk0.img backup.img
Luego redimencionamos la imagen, por ejemplo si queremos agregarle 5GB escribimos ''+5G''.
Luego redimensionamos la imagen, por ejemplo si queremos agregarle 5GB escribimos ''+5G''.
  $ qemu-img resize Fedora-17-armhfp-vexpress-mmcblk0.img +5G
  $ qemu-img resize Fedora-17-armhfp-vexpress-mmcblk0.img +5G
   Image resized.
   Image resized.
Ya tenemos mas espacio, y la vm puede verlo, pero todavia tenemos las viejas particiones.
Ya tenemos mas espacio, y la vm puede verlo, pero todavía tenemos las viejas particiones.
Con '''fdisk''' vamos a hacer lo siguiente:
Con '''fdisk''' vamos a hacer lo siguiente:
*Escribimos ''p'' para mostrar la tabla de particiones.
*Escribimos ''p'' para mostrar la tabla de particiones.
Line 86: Line 86:
   Fedora-17-armhfp-vexpress-mmcblk0.img1  *          63    1044224      522081    c  W95 FAT32 (LBA)
   Fedora-17-armhfp-vexpress-mmcblk0.img1  *          63    1044224      522081    c  W95 FAT32 (LBA)
   Fedora-17-armhfp-vexpress-mmcblk0.img2        1044225    3688447    1322111+  83  Linux
   Fedora-17-armhfp-vexpress-mmcblk0.img2        1044225    3688447    1322111+  83  Linux
Vemos como la segunda particion empieza en el sector 1044225. Lo que vamos a hacer es borrar esa particion de la tabla de particiones y creamos una nueva que empieza en el mismo sector pero termina en otro mucho despues. Luego la particion va contener un sistema de archivos valido.
Vemos como la segunda partición empieza en el sector 1044225. Lo que vamos a hacer es borrar esa partición de la tabla de particiones y creamos una nueva que empieza en el mismo sector pero termina en otro mucho después. Luego la partición va contener un sistema de archivos valido.
*Escribimos ''d'' (delete) y elegimos la 2da particion
*Escribimos ''d'' (delete) y elegimos la 2da partición
  Command (m for help): d
  Command (m for help): d
  Partition number (1-4): 2
  Partition number (1-4): 2
  Partition 2 is deleted
  Partition 2 is deleted
*Escribimos ''n'' (new) y elegimos particion primaria, la particion 2, el sector de inicio y fin. (en este caso podemos dejar los valores por defecto)
*Escribimos ''n'' (new) y elegimos partición primaria, la partición 2, el sector de inicio y fin. (en este caso podemos dejar los valores por defecto)
  Command (m for help): n
  Command (m for help): n
  Partition type:
  Partition type:
Line 109: Line 109:
   
   
  Syncing disks.
  Syncing disks.
Ahora debemos redimencionar el filesystem.
Ahora debemos redimensionar el filesystem, Para esto necesitamos la posición de la partición en el filesystem (el offset).
  {En construccion}
Para eso usamos '''parted''' con la imagen y los argumentos ''u'' ''b'' ("unit bytes") y ''p'' ("print").
$ sudo parted Fedora-17-armhfp-vexpress-mmcblk0.img u b p
  Model:  (file)
  Disk /<path of>/<file>/Fedora-17-armhfp-vexpress-mmcblk0.img: 7257194496B
  Sector size (logical/physical): 512B/512B
  Partition Table: msdos
  Disk Flags:
  Number  Start      End          Size        Type    File system  Flags
  1      32256B      534643199B  534610944B  primary              boot, lba
  2      534643200B  7257194495B  6722551296B  primary  ext4
Ahora que tenemos donde empieza (534643200), creamos un ''loopback block device''<ref name="lofi">[http://en.wikipedia.org/wiki/Loop_device]Loopback block devices</ref> con el comando '''losetup  -f --show -o <start block> <filedisk>'''
$ sudo losetup -f --show -o 534643200 Fedora-17-armhfp-vexpress-mmcblk0.img
/dev/loop0
''losetup'' te informa que dispositivo eligió (en este caso /dev/loop0).
ahora podemos verificar el filesystem y luego cambiar su tamaño con '''e2fsck -f /dev/loop0''' y '''resize2fs /dev/loop0'''
 
$ sudo e2fsck -f /dev/loop0
  e2fsck 1.42.3 (14-May-2012)
  Pass 1: Checking inodes, blocks, and sizes
  Pass 2: Checking directory structure
  Pass 3: Checking directory connectivity
  Pass 4: Checking reference counts
  Pass 5: Checking group summary information
  rootfs: 18715/82720 files (0.1% non-contiguous), 137245/330527 blocks
 
$ sudo resize2fs /dev/loop0
  resize2fs 1.42.3 (14-May-2012)
  Resizing the filesystem on /dev/loop0 to 1641247 (4k) blocks.
  The filesystem on /dev/loop0 is now 1641247 blocks long.
 
Y borramos el loopback al terminar.
  $ sudo losetup -d /dev/loop0


==Configurar red y ssh==
==Configurar red y ssh==
{En construccion}
Por defecto el script que vino con el kernel que descargamos ya tiene la configuración suficiente para poder acceder a internet en modo usuario.<ref name="user-mode">[http://en.wikibooks.org/wiki/QEMU/Networking#User_mode_networking]Modo Usuario</ref>. Pero bloquea todo trafico entrante, por lo que conectarse a través de ssh, no seria posible.
La opción mas simple seria redirigir algún puerto del host, al puerto 22 de la VM <ref name="port-redirect">[http://en.wikibooks.org/wiki/QEMU/Networking#Redirecting_ports]Redireccionar Puertos</ref> con el argumento '''-redir [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport'''
Entonces para ssh agregamos '''-redir tcp:2222::22''' al script ''boot-vexpress''.
y nos conectamos a la VM de esta forma:
$ ssh root@localhost -p 2222
 
==Referencias==
==Referencias==
<references />
<references />