JukyParaguay/trabajos2013/xoos/qemu tutorial: Difference between revisions
mNo edit summary |
mNo edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= | = Instalación y configuración de Qemu= | ||
Esta | 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] | 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 34: | Line 34: | ||
==Redimensionar imagen== | ==Redimensionar imagen== | ||
{ | Al correr la vm nos damos cuenta que la imagen que descargamos solo tiene unos 600 MB libres aproximadamente, lo que para nuestro proposito no es suficiente. | ||
Vemos las particiones con fdisk: | |||
$ fdisk Fedora-17-armhfp-vexpress-mmcblk0.img | |||
Welcome to fdisk (util-linux 2.21.2). | |||
Changes will remain in memory only, until you decide to write them. | |||
Be careful before using the write command. | |||
Command (m for help): p | |||
Disk Fedora-17-armhfp-vexpress-mmcblk0.img: 1888 MB, 1888485376 bytes | |||
255 heads, 63 sectors/track, 229 cylinders, total 3688448 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 | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
Fedora-17-armhfp-vexpress-mmcblk0.img1 * 63 1044224 522081 c W95 FAT32 (LBA) | |||
Fedora-17-armhfp-vexpress-mmcblk0.img2 1044225 3688447 1322111+ 83 Linux | |||
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 | |||
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. | |||
$ cp Fedora-17-armhfp-vexpress-mmcblk0.img backup.img | |||
Luego redimensionamos la imagen, por ejemplo si queremos agregarle 5GB escribimos ''+5G''. | |||
$ qemu-img resize Fedora-17-armhfp-vexpress-mmcblk0.img +5G | |||
Image resized. | |||
Ya tenemos mas espacio, y la vm puede verlo, pero todavía tenemos las viejas particiones. | |||
Con '''fdisk''' vamos a hacer lo siguiente: | |||
*Escribimos ''p'' para mostrar la tabla de particiones. | |||
$ fdisk Fedora-17-armhfp-vexpress-mmcblk0.img | |||
Welcome to fdisk (util-linux 2.21.2). | |||
Changes will remain in memory only, until you decide to write them. | |||
Be careful before using the write command. | |||
Command (m for help): p | |||
Disk Fedora-17-armhfp-vexpress-mmcblk0.img: 7257 MB, 7257194496 bytes | |||
255 heads, 63 sectors/track, 882 cylinders, total 14174208 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 | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
Fedora-17-armhfp-vexpress-mmcblk0.img1 * 63 1044224 522081 c W95 FAT32 (LBA) | |||
Fedora-17-armhfp-vexpress-mmcblk0.img2 1044225 3688447 1322111+ 83 Linux | |||
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 partición | |||
Command (m for help): d | |||
Partition number (1-4): 2 | |||
Partition 2 is deleted | |||
*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 | |||
Partition type: | |||
p primary (1 primary, 0 extended, 3 free) | |||
e extended | |||
Select (default p): p | |||
Partition number (1-4, default 2): | |||
Using default value 2 | |||
First sector (1044225-14174207, default 1044225): | |||
Using default value 1044225 | |||
Last sector, +sectors or +size{K,M,G} (1044225-14174207, default 14174207): | |||
Using default value 14174207 | |||
Partition 2 of type Linux and of size 6.3 GiB is set | |||
*Escribimos ''w'' para guardar los cambios al disco y salir de fdisk. | |||
Command (m for help): w | |||
The partition table has been altered! | |||
Syncing disks. | |||
Ahora debemos redimensionar el filesystem, Para esto necesitamos la posición de la partición en el filesystem (el offset). | |||
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== | ||
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 /> | ||