{"id":174,"date":"2009-04-07T19:35:08","date_gmt":"2009-04-07T22:35:08","guid":{"rendered":"http:\/\/www.maurom.com\/wp\/?p=174"},"modified":"2012-05-22T10:28:50","modified_gmt":"2012-05-22T13:28:50","slug":"maquinas-virtuales-como-escritorios-con-virtualbox-y-debian-lenny","status":"publish","type":"post","link":"https:\/\/maurom.com\/blog\/2009\/04\/07\/maquinas-virtuales-como-escritorios-con-virtualbox-y-debian-lenny\/","title":{"rendered":"Maquinas virtuales como escritorios con VirtualBox y Debian Lenny"},"content":{"rendered":"<p>Hace un tiempo un colega me coment\u00f3 una idea bastante extra\u00f1a que ten\u00eda para m\u00e1quinas virtuales, que podr\u00eda ayudarle a administrar algunos sistemas bajo su dominio. Me hab\u00eda quedado pendiente publicar este post al respecto.<\/p>\n<p>Viene m\u00e1s o menos as\u00ed: un lote de computadoras utilizadas en forma alternada por varios usuarios, cada uno de los cuales requiere un conjunto dado de programas instalados; algunos de estos programas son incompatibles entre s\u00ed por diferencias de versiones, o presentan conflictos con el sistema operativo, o requieren privilegios de administraci\u00f3n, etc.<\/p>\n<p>Entonces pens\u00f3 en una soluci\u00f3n posible utilizando m\u00e1quinas virtuales para cada usuario, donde tuviera instalado el software que requiere con los privilegios que requiere y con independencia del resto de los usuarios. De esta forma cada persona que llega deber\u00eda ingresar al sistema, iniciar la aplicaci\u00f3n de virtualizaci\u00f3n, seleccionar e iniciar su m\u00e1quina virtual, y realizar el procesamiento que requiera. Al finalizar, deber\u00eda apagar la VM y luego cerrar la sesi\u00f3n en el sistema. Lo mismo que hacemos todos aquellos que usamos VMs.<\/p>\n<p>Pero <span style=\"font-style: italic;\">&#8211; dijo &#8211;<\/span> no estar\u00eda mal presentarle al usuario una lista de m\u00e1quinas disponibles ni bien ingresa al sistema, de manera tal de no requerir iniciar la aplicaci\u00f3n de virtualizaci\u00f3n. O mejor, <span style=\"font-weight: bold;\">iniciar la m\u00e1quina virtual asignada al momento de iniciar sesi\u00f3n y presentarla al usuario como si fuera el escritorio real<\/span>. Al apagar la m\u00e1quina virtual, el sistema deber\u00eda volver a la pantalla de login.<\/p>\n<p>Bien, independientemente de que sea una buena o mala soluci\u00f3n utilizar VMs, el concepto es interesante.<\/p>\n<p>\u00bfEs posible? Veamos si se puede realizar en forma sencilla con VirtualBox&#8230;<\/p>\n<h3>1. Preparando el Host<\/h3>\n<p>1.1. Instalar con el sistema operativo, en este ejemplo ser\u00e1 Debian GNU\/Linux 5.0 Lenny con una instalaci\u00f3n base. Ni &#8220;entorno de escritorio&#8221;, ni &#8220;sistema est\u00e1ndar&#8221;, ni nada de eso: la idea es mantenerlo lo m\u00e1s sencillo posible.<\/p>\n<p>1.2. Una vez instalado, generalmente desactivo la instalaci\u00f3n de paquetes recomendados para no cargar el sistema con paquetes prescindibles. Para ello:<\/p>\n<pre># echo \"APT::Install-Recommends \\\"false\\\";\" &gt;&gt; \/etc\/apt\/apt.conf<\/pre>\n<p>1.3. Sobre el S.O. instalar Xorg, LXDE para la administraci\u00f3n y GDM como gestor de sesiones. En realidad, es posible utilizar Openbox o Fluxbox solamente y prescindir de LXDE, pero a fines did\u00e1cticos dejaremos el entorno completo.<\/p>\n<pre># aptitude install xorg lxde gdm<\/pre>\n<p>1.4. Sobre esto instalar VirtualBox OSE y los m\u00f3dulos requeridos, que ser\u00e1n cargados autom\u00e1ticamente al iniciar el sistema real.<\/p>\n<pre># aptitude install virtualbox-ose virtualbox-ose-modules-`uname -r`\r\n# echo vboxdrv &gt;&gt; \/etc\/modules<\/pre>\n<h3>2. Creando las cuentas de usuario<\/h3>\n<p>2.1. Ahora es el turno de crear las cuentas de usuario que tendr\u00e1n acceso a las m\u00e1quinas virtuales. Para este ejemplo definiremos tres usuarios que llamaremos <span style=\"font-style: italic;\">asterix<\/span>, <span style=\"font-style: italic;\">obelix<\/span> y <span style=\"font-style: italic;\">getafix<\/span> (alg\u00fan patr\u00f3n conocido):<\/p>\n<pre># adduser asterix\r\n# adduser obelix\r\n# adduser getafix<\/pre>\n<p>2.2. Es necesario a\u00f1adir estos usuarios al grupo <span style=\"font-style: italic;\">vboxusers<\/span> para que puedan utilizar las m\u00e1quinas virtuales. Es posible hacerlo en la creaci\u00f3n, pasando un par\u00e1metro al comando adduser, pero as\u00ed queda bien expl\u00edcito:<\/p>\n<pre># adduser asterix vboxusers\r\n# adduser obelix vboxusers\r\n# adduser getafix vboxusers<\/pre>\n<p>2.3. Reiniciar el equipo para que tome los cambios. Alternativamente es posible cargar vboxdrv y e iniciar GDM. En cualquier caso, al finalizar se ver\u00e1 la pantalla de inicio de sesi\u00f3n. Opcionalmente puede configurarse el gestor gr\u00e1fico para que muestre la lista de usuarios disponibles (Men\u00fa <span style=\"font-style: italic;\">Acciones \/ Configurar el gestor de entrada<\/span>).<\/p>\n<h3>3. Creando la m\u00e1quina virtual para un usuario<\/h3>\n<p>3.1. Ingresar bajo el nombre de usuario cuya VM se desea crear e iniciar VirtualBox.<\/p>\n<p>3.2. All\u00ed definir una m\u00e1quina virtual de la manera tradicional, nombr\u00e1ndola igual que el usuario (<span style=\"font-style: italic;\">asterix<\/span>, en este ejemplo) y estableciendo la memoria a utilizar, el sistema operativo, el tama\u00f1o de disco, etc&#8230;<\/p>\n<p>3.3. Una vez creada la VM, iniciarla y proceder a instalar el sistema operativo deseado mas las aplicaciones requeridas. Adicionalmente, instalar las &#8220;Aplicaciones del hu\u00e9sped&#8221; (<span style=\"font-style: italic;\">guest tools<\/span>) en la m\u00e1quina virtual.<\/p>\n<p>3.4. Al finalizar, apagar la VM correctamente y cerrar VirtualBox.<\/p>\n<h3>4. Estableciendo el inicio de la m\u00e1quina virtual al inicio de sesi\u00f3n<\/h3>\n<p>4.1 Crear un archivo de texto llamado .xsession en el home del usuario, conteniendo lo siguiente:<\/p>\n<pre>#!\/bin\/sh\r\nexec VBoxSDL -vm $USER -fullscreen<\/pre>\n<p>4.2. Cerrar la sesi\u00f3n de usuario y volver a iniciar sesi\u00f3n. La m\u00e1quina virtual deber\u00e1 iniciar autom\u00e1ticamente en pantalla completa.<\/p>\n<p>4.3. Para salir \/ cerrar, apagar del sistema operativo virtual, o bien pulsar CtrlDer+H, o CtrlDer+Q. El sistema deber\u00e1 cerrarse correctamente y volver a la pantalla de inicio de sesi\u00f3n.<\/p>\n<h3>5. Crear las m\u00e1quinas para los restantes usuarios<\/h3>\n<p>&#8230; procediendo de manera an\u00e1loga al caso anterior.<\/p>\n<h3>6. \u00a1Listo!<\/h3>\n<p>Ya tenemos una <span style=\"font-weight: bold;\">VM Jukebox<\/span> en el equipo, o algo por el estilo. Ahora a por una buena taza de caf\u00e9.<\/p>\n<h3>I. Algunas notas adicionales<\/h3>\n<p>I.1. Es posible utilizar VirtualBox 2.1.4 (en vez de 1.6.6), a\u00f1adiendo el repositorio <span style=\"font-style: italic;\">testing<\/span> en <span style=\"font-style: italic;\">\/etc\/apt\/sources.list<\/span> e instalando los m\u00f3dulos apropiados mediante <span style=\"font-style: italic;\">module-assistant<\/span>.<\/p>\n<p>I.2. Se puede cambiar la configuraci\u00f3n de inicio de cada VM desde el mismo script en <span style=\"font-style: italic;\">.xsession<\/span>. Por ejemplo, si se desea iniciar la m\u00e1quina virtual con 64 MB de ram, el script deber\u00e1 contener<\/p>\n<pre>exec VBoxSDL -vm $USER -fullscreen -m 64<\/pre>\n<p>o para iniciar con una imagen ISO en la unidad de CD virtual:<\/p>\n<pre>exec VBoxSDL -vm $USER -fullscreen -cdrom ARCHIVO.ISO -boot d<\/pre>\n<p>I.3. Para cambiar la tecla con la cual se administra la m\u00e1quina virtual, por ejemplo con la tecla WIN Derecha (en vez de con Ctrl Derecha), utilizar:<\/p>\n<pre>exec VBoxSDL -vm $USER -fullscreen -hostkey 312 0<\/pre>\n<p>donde el valor del par\u00e1metro <span style=\"font-style: italic;\">hostkey<\/span> define la tecla a utilizar. Ejecutando el comando <span style=\"font-style: italic;\">VBoxSDL -detecthostkey<\/span> en una terminal es posible obtener el par\u00e1metro correspondiente al conjunto de pulsaciones deseado.<\/p>\n<p>Bueno, todo esto para ver si la idea era posible usar una m\u00e1quina virtual como escritorio. Pues resulta que s\u00ed, con algunos comandos y tres l\u00edneas de c\u00f3digo (4.1).<br \/>\nCreo que no me olvid\u00e9 ning\u00fan paso, en caso contrario, me avisan.<\/p>\n<p>Suerte y saludos!<\/p>\n<p style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Actualizaci\u00f3n 2010:<\/span> Charly (un maestro!) me ha hecho saber que en Ubuntu 9.10 Karmic, el archivo .xsession es ignorado totalmente, por lo cual al iniciar sesi\u00f3n el usuario vuelve al escritorio de Gnome en vez de ver iniciar la m\u00e1quina virtual. No tengo idea qu\u00e9 es lo que tuvo en mente la gente de Ubuntu con este extra\u00f1o comportamiento, pero ya hay varios bugs reportados [<a href=\"https:\/\/bugs.launchpad.net\/ubuntu\/karmic\/+source\/gdm\/+bug\/398300\">398300<\/a>, <a href=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/gdm\/+bug\/459122\">459122<\/a>, <a href=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/gdm\/+bug\/465349\">465349<\/a>] con algunos parches posibles.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace un tiempo un colega me coment\u00f3 una idea bastante extra\u00f1a que ten\u00eda para m\u00e1quinas virtuales, que podr\u00eda ayudarle a administrar algunos sistemas bajo su dominio. Me hab\u00eda quedado pendiente publicar este post al respecto. Viene m\u00e1s o menos as\u00ed: un lote de computadoras utilizadas en forma alternada por varios usuarios, cada uno de los [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5,3,18],"_links":{"self":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts\/174"}],"collection":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":0,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts\/174\/revisions"}],"wp:attachment":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/categories?post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/tags?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}