¿Es posible instalar algún software de máquina virtual como usuario no root y ejecutarlo?
¿Qué máquinas virtuales se pueden instalar sin necesidad de acceso root?
Si no es posible, ¿cuál sería la máquina virtual más liviana para usar en algunas máquinas virtuales que ejecutan Windows XP SP3?
Para KVM , necesita acceso al dispositivo
/dev/kvm
. Si su usuario puede leer / escribir en este dispositivo, puede ejecutar máquinas virtuales basadas en KVM como su usuario.En la mayoría de las distribuciones, los miembros del
kvm
grupo tienen acceso a este dispositivo, por lo que todo lo que necesita hacer es agregar su usuario alkvm
grupo.Para la mayoría de las otras tecnologías aceleradas, necesitará módulos de kernel cargados (esto incluye virtualbox y VMWare). Esto casi con certeza requiere acceso a nivel raíz.
Puede ejecutar tecnologías de virtualización no aceleradas como cualquier usuario. Por ejemplo, qemu en modo no acelerado. Tenga en cuenta que será muy lento en comparación con la virtualización acelerada.
fuente
El modo de usuario Linux es una solución de virtualización de Linux que se ejecuta completamente en el espacio de usuario; no se requieren privilegios de root.
Sin embargo, solo puede ejecutar un invitado Linux dentro de un host Linux, por lo que no es adecuado si desea ejecutar cualquier otra cosa.
fuente
Una máquina virtual necesita un acceso de nivel bastante bajo al procesador (y a otro hardware) para ser eficiente. Por lo tanto, no verá ningún software de VM con buen rendimiento que pueda instalarse sin root.
En cuanto a las máquinas virtuales livianas, la ligereza se logra al incluir solo las características necesarias. Esto requiere cierto conocimiento sobre el sistema operativo que se ejecutará, por lo que las máquinas virtuales ligeras de código abierto ( Plex86 , LilyVM ) solo admiten sistemas operativos de código abierto. Según esta lógica, podría ser que Microsoft Virtual PC sea más liviano que VirtualBox / VMWare / etc. Pero realmente no lo sé. VirtualBox está disponible en código abierto, es bastante utilizable y siempre ha sido suficiente para mis propósitos (pero he probado otros).
fuente
Virtualbox 4.0.8 debe instalarse como campo raíz, pero luego puede permitir que los usuarios creen sus propias máquinas virtuales. Solo tienes que ser miembro del grupo
vboxusers
usermod -G vboxusers USERNAME
Eche un vistazo a este enlace , un buen artículo sobre cómo ejecutarlo sin cabeza, directamente desde el shell. También me gusta mucho que sea compatible con el protocolo RDP, lo que significa que puede usarlo
rdesktop
para conectarse.fuente
QEmu puede hacer eso. Lo he hecho varias veces. Aunque no es extremadamente eficiente
fuente
1) Respuesta de tres líneas
Para usar mis imágenes precompiladas / versión compilada de qemu, descárguelo desde aquí y luego descomprímalo:
También puede descargar mi imagen de Debian 8 (1.6G) desde aquí :
y finalmente correr
Debería tener un Debian 8 en funcionamiento, en modo texto, con el puerto ssh abierto en el huésped anfitrión en el puerto 22222. Puede iniciar sesión utilizando el usuario "root" y la contraseña "root".
2) Respuesta más larga, haz estas imágenes tú mismo
QEMU es una solución que me permite instalar mi propia imagen de Linux en un servidor en el que no tenía acceso de root. Es muy útil, lo uso, por ejemplo, para hacer ssh inverso sin revelar mi contraseña de usuario principal o con fines educativos. Pero, de hecho, debido a que no puede usar KVM para la virtualización real sin una cuenta raíz, podrá hacer solo la emulación, que puede ser bastante ineficiente (pero para las operaciones de línea de comandos, nunca vi la sobrecarga).
2.1) Paquete
qemu
Aquí está la descripción de cómo procedo. El primer paso es hacer qemu "portátil", es decir, utilizable en el servidor sin acceso de root. Para hacerlo, tiene varios métodos, intentaré presentarlos para que pueda elegir el que prefiera.
2.1.a) Método 1: descargue el .deb disponible
Esta solución puede ser realmente rápida de aplicar (básicamente, si funciona, en 1 comando lo obtienes), pero debido a que mi script puede tener errores / puede olvidar algo de lib, puede ser bastante largo descargar manualmente todos los binarios ... Otra ventaja de este método es que puede ejecutarlo en modo no root, directamente en el servidor. La idea de obtener binarios de qemu aquí es obtener el archivo .deb / .rpm (de apt, o de los sitios web en línea que alojan .deb), extraerlo, verificar las dependencias de las bibliotecas usando
ldd
y descargar todas.deb
las dependencias que están no está presente en la computadora para extraerlos (los.so
archivos). Debido a que puede ser bastante largo y repetitivo, creé un pequeño script, pero si eres valiente, puedes hacer todo eso manualmente ... Solo toma tiempo. Para usarlo, guarde este script en un archivocreate_qemu_binaries.sh
:y ejecutarlo usando:
todo funciona bien, al final debe tener en la carpeta
./qemu_extract/qemu_packed/
un archivoqemu-system-x86_64
(el binario principal), una carpetalib
(las librerías que deben tomarseqemu
) y una carpetapc-bios
, un conjunto de archivos queqemu
debe ejecutarse. Luego puede ejecutarqemu
usando (no olvide reemplazar con la imagen de su sistema de archivos):¡A disfrutar! (si el script no funciona para usted, no dude en preguntarme, lo probé solo en dos computadoras, y
redir
lo puedo eliminar si no necesita reenvío ssh entre el host y la suposición)2.1.b) Método 2: si accede a una computadora con acceso root
El primer método necesita una computadora con acceso raíz (o
qemu
instalada). Primero instaleqemu
usando algo comoy luego ubique la ruta absoluta de qemu:
Luego, crea una carpeta para ponerlo:
y obtenga la lista de bibliotecas vinculadas con qemu:
ahora, necesitamos que qemu use el BIOS. Los archivos están disponibles en su sistema, pero no sé por qué están en diferentes carpetas, por lo que creo que es más fácil obtenerlos de las fuentes:
Ahora, debería funcionar, puede copiar estos archivos en la máquina no root, y simplemente ejecutar
qemu
usando la siguiente línea (no olvide reemplazar la imagen):2.1.c) Método 3: de las fuentes
También puede compilar las fuentes, pero si no tiene todas las bibliotecas instaladas, puede ser complicado evitar usar una computadora rooteada para compilar qemu. Pero supongo que es un poco más confiable si los dos métodos anteriores no funcionan. Luego, una vez que está compilado, obtenga el archivo ejecutable y haga el mismo truco que el anterior para obtener las bibliotecas (usando
ldd
, todas las bibliotecas ya deberían estar en la computadora) y el archivo pc-bios. Y nuevamente, ejecútelo con el mismo comando.2.3) Crea tu propia imagen
Si no desea utilizar una imagen de sistema de archivos prefabricada, simplemente siga los numerosos tutoriales utilizando los comandos anteriores en lugar de
qemu/qemu-system-x86_64
! NB: si también desea utilizarqemu-img
para crear imágenes como no root, ¡siga el mismo proceso que el anterior!¡A disfrutar!
NB: si desea usar la pantalla de maldiciones para ejecutarla en un servidor sin GUI, debe agregar en su imagen una línea en la opción de arranque para que no active el búfer de trama en
/etc/default/grub
:(lo más importante es lo último, no estoy seguro si es necesario). Tanto como
para que la comida permanezca en modo texto. También es posible que desee habilitar el modo de texto en systemd si no es suficiente.
fuente