Autor Tema: OpenWRT x86 virtualizado sobre Proxmox (mini guia)  (Leído 368 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado thorazine74

  • **
  • Mensajes: 1
OpenWRT x86 virtualizado sobre Proxmox (mini guia)
« en: 12-06-2019, 12:05 (Miércoles) »
Para los que esten intentando correr Openwrt en x86 una alternativa a usar una maquina fisica, dado que este sistema consume tan pocos recursos, es correrlo sobre un hypervisor.
Este es un pequeño tutorial que he ido compilando despues de pelearme bastante para instalar Openwrt en Proxmox. Esta pensado para alguien que ya tiene corriendo Proxmox pero que se veia perdido como yo a la hora de instalar Openwrt dado que no hay una iso con un instalador que se pueda usar directamente en Proxmox como el resto de sistemas.
Espero que le sea de utilidad a alguien:

De los targets que se pueden descargar para x86 el interesante para correr en Promox seria la variante 64.
Dentro del directorio de esta variante 64 bits hay varios archivos, los mas faciles de instalar serian:
  • combined-ext4.img.gz
  • combined-squashfs.img.gz

Los dos archivos son imagenes en modo raw de un disco que contiene 2 particiones:
La primera particion (/dev/sda1) es la misma en las dos imagenes, es la particion de arranque (/boot), con un tamaño de 16 Mb, en formato EXT4, contiene el gestor de arranque GRUB y el kernel.
La segunda particion (/dev/sda2) es diferente en cada tipo de imagen:
  • En combined-ext4.img.gz es la particion root (/), 256 Mb de tamaño, en formato EXT4.
  • En combined-squashfs.img.gz hay un sistema de archivos SquashFS, de solo lectura, seguida de un pequeño espacio libre donde se crea un dispositivo loop que a su vez se monta como root usando el sistema de overlay ti

La diferencia entre ambas es que la primera funciona como un sistema linux normal, todos los cambios de configuracion se hacen en la particion root, de forma que no es posible resetear el sistema de fabrica en caso de problemas. La segunda funciona al estilo de los routers integrados, donde los cambios se hacen en el overlay y la particion root nunca se modifica, por lo que reseteando el overlay siempre podremos volver a la configuracion por defecto.
Esta ultima opcion tan necesaria en un router no es tan importante en un sistema virtualizado como Proxmox donde es posible usar el sistema de copias de seguridad, snapshots para protegerse en la medida de lo posible de los cambios que hagamos que puedan tener consecuencias catastroficas para el sistema.

Por lo tanto esta pequeña guia esta pensada para la imagen EXT4, mas adelante si hay tiempo añadire la guia correspondiente para la imagen SQUASHFS (que presenta ademas complicaciones varias).

Creamos la maquina virtual para Openwrt. Las opciones por defecto son adecuadas excepto:
  • No es necesario añadir ninguna unidad de CD
  • Recomendable usar una tarjeta grafica de tipo SPICE, para tener una terminal de alta resolucion
  • Se puede reducir la cantidad de memoria asignada ya que 512 Mb es un monton para lo que requiere la instalacion base de Openwrt
  • Para usar Openwrt como router es necesario añadir una segunda interfaz de red (que seria la WAN) manualmente ademas de que la que Proxmox crea por defecto (la LAN)

Desde el shell del propio Proxmox descargaremos y añadiremos la imagen de Openwrt a nuestra maquina virtual:

Descargamos de la imagen al directorio /tmp/:
Código: [Seleccionar]
root@pve-02:~# wget -P /tmp/ https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/openwrt-18.06.2-x86-64-combined-ext4.img.gz
--2019-06-12 09:41:08--  https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/openwrt-18.06.2-x86-64-combined-ext4.img.gz
Resolving downloads.openwrt.org (downloads.openwrt.org)... 148.251.78.235, 2a01:4f8:202:43ea::2
Connecting to downloads.openwrt.org (downloads.openwrt.org)|148.251.78.235|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6657586 (6.3M) [application/octet-stream]
Saving to: ‘/tmp/openwrt-18.06.2-x86-64-combined-ext4.img.gz’

openwrt-18.06.2-x86-64-combined-ext4.img.g 100%[=====================================================================================>]   6.35M  9.40MB/s    in 0.7s   

2019-06-12 09:41:09 (9.40 MB/s) - ‘/tmp/openwrt-18.06.2-x86-64-combined-ext4.img.gz’ saved [6657586/6657586]

Descomprimimos la imagen:
Código: [Seleccionar]
root@pve-02:~# gunzip /tmp/openwrt-18.06.2-x86-64-combined-ext4.img.gz
Desconectamos y eliminamos el disco de 32 Gb que Proxmox añade por defecto al crear la maquina virtual:
Código: [Seleccionar]
root@pve-02:~# qm unlink 100 --idlist scsi0 --force 1
update VM 100: -delete scsi0 -force 1
  Logical volume "vm-100-disk-0" successfully removed

Importamos la imagen de Openwrt a la maquina virtual como unidad de disco principal:
Código: [Seleccionar]
root@pve-02:~# qm importdisk 100 /tmp/openwrt-18.06.2-x86-64-combined-ext4.img local-lvm
  Using default stripesize 64.00 KiB.
  Rounding up size to full physical extent 276.00 MiB
  Logical volume "vm-100-disk-0" created.
    (100.00/100%)
Como se puede ver al importar la imagen redondea hacia arriba desde los 279040 Kb (de la imagen original) hasta 276 Mb)

Si ahora volvemos a la configuracion de la maquina virtual veremos que hay un disco sin usar:



Si el disco que acabamos de importar no aparece instantaneamente se puede forzar que Proxmox se actualize:
Código: [Seleccionar]
root@pve-02:~# qm rescan
rescan volumes...

Editamos este disco y lo configuramos como el disco por defecto de la maquina virtual:
 

Con esto hemos reemplazado el disco original vacio que creamos por la imagen de Openwrt:


Y ya podriamos arrancar la maquina virtual, si todo va bien deberiamos ver el log de arranque en la consola de proxmox:


Aqui como indica en la parte superior podremos acceder a la consola de Openwrt pulsando INTRO:


La configuracion de red por defecto es la estandar de Openwrt (192.168.1.1/24) por lo que deberemos cambiarla para que al menos la interfaz LAN este en la misma subred que el resto de nuestros equipos y no este usando una ip ya ocupada:


Código: [Seleccionar]
uci set network.lan.ipaddr=192.168.2.20
uci commit
reboot

NOTA: la consola por defecto de Openwrt tiene una disposicion de teclado EN-US y no es posible cambiarlo a un teclado español. Una vez que la configuracion de red es correcta (y hemos configurado una contraseña para el root) se podria acceder a la consola a traves de SSH con un cliente como Putty y ya no tendriamos este incoveniente.

Una vez que esta configurada la interfaz lan ya podriamos acceder a Luci:


El espacio libre en la imagen de serie es este:


Si quisiemos ampliar el espacio disponible en la particion root, en primer lugar debemos ampliar el tamaño de la unidad de disco de la maquina virtual:

Desde el shell de Proxmox:
Código: [Seleccionar]
root@pve-02:~# qm resize 100 scsi0 +768M
  Size of logical volume pve/vm-100-disk-0 changed from 276.00 MiB (69 extents) to 1.02 GiB (261 extents).
  Logical volume pve/vm-130-disk-0 successfully resized.
En este ejemplo ampliamos el tamño en 768 Mb, con objetivo de tener disponibles 1 Gb en la particion /root de Openwrt.

Una vez que hemos ampliado el disco es necesario ampliar sucesivamente el tamaño de la particion /root, y el del sistema de archivos EXT4 contenido. El metodo mas sencillo para hacer esto con una interfaz grafica seria usar un LiveCD que contenga gparted como p.e. SystemRescueCD:

Configuramos la maquina virtual para que use la iso de SystemRescue en la unidad de CD vacia que no usamos al instalar:


Y seleccionamos la opcion para que arranque por defecto desde el CD en vez desde el disco duro:


NOTA: si se redujo la cantidad de RAM dedicada a Openwrt es necesario aumentarla hasta 512 Mb (temporalmente para que el kernel de SystemRescue pueda arrancar). Tambien puede ser necesario cambiar el tipo de grafica de SPICE a VGA Standard.

Arrancamos la maquina virtual con las opciones por defecto de SystemRescueCD e iniciamos Gparted:


Como podemos ver tenemos una unidad de disco con las 2 particiones de Openwrt, sda1 (/boot) y sda2 (/root) y el espacio libre que añadimos antes a la unidad de disco virtual. Simplemente ampliamos sda2 hasta que ocupe 1024 Mb:


Una vez completada la operacion el resultado seria:


Apagamos la maquina virtual, modificamos las opciones de hardware que cambiamos para que pudiera arrancar SystemRescue, desconectamos la unidad de CDROM, y cambiamos nuevamente el orden de arranque de la maquina virtual al disco duro y volvemos a arrancar Openwrt:


Como se puede ver ahora tenemos disponible el espacio completo que hemos ampliado, mas que suficiente para instalar montones de paquetes.
A partir de aqui ya solo queda usar Openwrt como estamos acostumbrados....



Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 1942
Re:OpenWRT x86 virtualizado sobre Proxmox (mini guia)
« Respuesta #1 en: 12-06-2019, 12:31 (Miércoles) »
Hace tiempo que me quiero meter con el Proxmox pero nunca he encontrado tiempo para ello. A lo mejor ahora me animo.  ^-^
No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Solo a un mandril epiléptico se le podría haber ocurrido diseñar la cinta de menú de M$.