{"id":183,"date":"2017-09-27T21:22:54","date_gmt":"2017-09-27T21:22:54","guid":{"rendered":"https:\/\/blog.jkanework.com\/post.php?idpost=183"},"modified":"2017-09-27T21:22:54","modified_gmt":"2017-09-27T21:22:54","slug":"instalar-y-configurar-un-entorno-chroot-de-archlinux","status":"publish","type":"post","link":"https:\/\/blog.jkanetwork.com\/?p=183","title":{"rendered":"Instalar y configurar un entorno chroot de Archlinux"},"content":{"rendered":"<p>Es habitual que cuando queremos crear entornos seguros donde trabajar lo primero que se nos viene a la cabeza es utilizar una m&aacute;quina virtual o virtualizaci&oacute;n hardware del sistema operativo, sin embargo existe otra alternativa que nos cambia \/ de posici&oacute;n manteniendo el uso de los recursos del sistema sin necesidad de virtualizar nada, a esto se llama chroot y hoy explicar&eacute; como configurar un chroot de Archlinux.<\/p>\n<p>Lo primero que tenemos que hacer es descargar la imagen de bootstraping de archlinux<\/p>\n<pre class=\"language-bash\"><code>curl -O https:\/\/mirrors.kernel.org\/archlinux\/iso\/latest\/archlinux-bootstrap-2017.09.01-x86_64.tar.gz<\/code><\/pre>\n<p>&nbsp;Lo siguiente que tenemos que hacer es descomprimir el fichero en la carpeta donde queremos tener nuestro sistema de chroot<\/p>\n<pre class=\"language-bash\"><code>tar xzf archlinux-bootstrap-2017.09.01-x86_64.tar.gz<\/code><\/pre>\n<p>Ahora ya tenemos todo el sistema descargado y empezamoscon la configuraci&oacute;n. Todos los comandos siguientes se tendr&aacute;n que hacer con permisos de root<\/p>\n<ol>\n<li>Montamos la carpeta&nbsp;\n<pre class=\"language-bash\"><code>mount --bind \/root.x86_64 \/root.x86_64\u200b<\/code><\/pre>\n<\/li>\n<li>Y ahora copiamos el contenido de resolv.conf de nuestro sistema al de chroot\n<pre class=\"language-bash\"><code>cp \/etc\/resolv.conf \/root.x86_64\/etc\/\u200b<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Tras esto ya tenemos la configuraci&oacute;n preliminar, ahora recomiendo introducir los siguientes comandos en un script para cada vez que quieras hacer chroot.<\/p>\n<pre class=\"language-bash\"><code>#!\/bin\/bash\n#ruta donde tienes el sistema chroot\nruta=\/turuta\nif [ \"$EUID\" -eq 0 ];then #Ejecutar con permisos root\n\tmount -t proc \/proc $ruta\/proc\n\tmount --rbind \/sys $ruta\/sys\n\tmount --rbind \/dev $ruta\/dev\n\tmount --rbind \/run $ruta\/run #Solo si existe carpeta run\n\tchroot $ruta \/bin\/bash\n\t#Desmonta todo cuando chroot termine\n\tgrep $ruta\/proc \/proc\/mounts | cut -f2 -d\" \" | sort -r | xargs umount -n 2&gt; \/dev\/null\n\tgrep $ruta\/sys \/proc\/mounts | cut -f2 -d\" \" | sort -r | xargs umount -n 2&gt; \/dev\/null\n\tgrep $ruta\/dev \/proc\/mounts | cut -f2 -d\" \" | sort -r | xargs umount -n 2&gt; \/dev\/null\n\tgrep $ruta\/run \/proc\/mounts | cut -f2 -d\" \" | sort -r | xargs umount -n 2&gt; \/dev\/null\nfi\n<\/code><\/pre>\n<p>Una vez ejecutado el comando chroot (o el script en su lugar) entraremos completamente en el entorno chroot, si queremos salir solamente tendremos que usar exit.<\/p>\n<p>Ahora bien, lo que tenemos instalado no tiene mucha ulitidad por lo que tenemos que inicializar las claves para pacman (el gestor de paquetes) para poder empezar a instalar los paquetes que podamos necesitar. Son dos comandos simples.<\/p>\n<pre class=\"language-bash\"><code>pacman-key --init\npacman-key --populate archlinux<\/code><\/pre>\n<p>Si el fichero \/etc\/pacman.d\/mirrorlist tiene todos los servidores comentados no podr&aacute;s instalar nano (para editarlo y poner los que necesitas), en este caso recomiendo ejecutar antes de instalar los grupos base y base-devel el comando<\/p>\n<pre class=\"language-bash\"><code>echo \"Server = http:\/\/mirrors.evowise.com\/archlinux\/$repo\/os\/$arch\" &gt;&gt; \/etc\/pacman.d\/mirrorlist<\/code><\/pre>\n<p>Luego ya instala todos los paquetes que necesites.<\/p>\n<pre class=\"language-bash\"><code>pacman -Syu base base-devel<\/code><\/pre>\n<p>Con todo esto ya tendr&aacute;s lo necesario para empezar a trabajar con tu entorno chroot de Archlinux.<\/p>\n<blockquote>\n<p>Fuentes<br \/><a href=\"https:\/\/wiki.archlinux.org\/index.php\/Install_from_existing_Linux\">https:\/\/wiki.archlinux.org\/index.php\/Install_from_existing_Linux<br \/><\/a><a href=\"https:\/\/unix.stackexchange.com\/questions\/120827\/recursive-umount-after-rbind-mount\">https:\/\/unix.stackexchange.com\/questions\/120827\/recursive-umount-after-rbind-mount<\/a>&nbsp;<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Es habitual que cuando queremos crear entornos seguros donde trabajar lo primero que se nos viene a la cabeza es utilizar una m&aacute;quina virtual o virtualizaci&oacute;n hardware del sistema operativo, sin embargo existe otra alternativa que nos cambia \/ de posici&oacute;n manteniendo el uso de los recursos del sistema sin necesidad de virtualizar nada, a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-183","post","type-post","status-publish","format-standard","hentry","category-tutoriales"],"_links":{"self":[{"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=183"}],"version-history":[{"count":0,"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jkanetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}