{"id":1516,"date":"2014-12-30T23:57:19","date_gmt":"2014-12-30T22:57:19","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=1516"},"modified":"2014-12-30T23:57:19","modified_gmt":"2014-12-30T22:57:19","slug":"arrancando-la-raspberry-pi-desde-un-disco-duro-externo","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=1516","title":{"rendered":"Arrancando la Raspberry Pi desde un disco duro externo"},"content":{"rendered":"<p>Estas navidades me he autorregalado una <a href=\"http:\/\/www.raspberrypi.org\/\" target=\"_blank\">Raspberry Pi<\/a>, porque no se puede ser un friki de verdad sin una. Mi primera intenci\u00f3n es utilizarla para reemplazar al <a href=\"http:\/\/www.dx.com\/p\/at-818-1080p-fhd-android-4-1-1-dual-core-google-tv-player-w-1gb-ram-8gb-rom-hdmi-rj45-wi-fi-222600#.VKLXMrAAA\" target=\"_blank\">cacharro con Android<\/a> del que habl\u00e9 en <a href=\"https:\/\/blog.rastersoft.com\/?p=1362\" target=\"_blank\">entradas anteriores<\/a>. Las ventajas son dobles: para empezar, consigo un sistema 100% integrado, y no el h\u00edbrido frankensteniano que ten\u00eda antes; y, por otro, me queda el cacharro Android para experimentar m\u00e1s y perfeccionar la t\u00e9cnica de arranque dual.<\/p>\n<p>Para no complicarme la vida escog\u00ed la distribuci\u00f3n <a href=\"www.raspbmc.com\/\" target=\"_blank\">raspbmc<\/a>. Esta distro tiene algo de truco a la hora de instalarla. Adem\u00e1s, como es normal en la Raspberry, es necesario arrancar siempre desde la tarjeta SD, cosa que a mi no me convence porque no quiero que acabe quemada por excesivas escrituras (a fin de cuentas me gusta cacharrear). Para evitarlo, decid\u00ed mover el sistema operativo a un disco duro USB de un terabyte, y as\u00ed tener tambi\u00e9n sitio donde almacenar m\u00e1s cosas. El procedimiento a seguir es el siguiente: primero descargamos la imagen y la volcamos a la tarjeta con el comando:<\/p>\n<div class=\"mycode\">\n<pre class=\"mycode\">sudo dd if=raspbmc-2014-11-24.img of=\/dev\/sde bs=2048<\/pre>\n<\/div>\n<p>Asumiendo, claro est\u00e1, que nuestra tarjeta SD est\u00e1 en \/dev\/sde.<\/p>\n<p>Una vez creada la tarjeta, la insertamos en nuestra Raspberry y la encendemos <strong>SIN CONECTAR A LA RED LOCAL<\/strong>. Lo primero que har\u00e1 ser\u00e1 redimensionar la partici\u00f3n para que ocupe toda la tarjeta, y luego lanzar\u00e1 el XBMC. Y aqu\u00ed est\u00e1 el primer problema: si en ese momento est\u00e1 conectada a Internet, se bajar\u00e1 una actualizaci\u00f3n de \u00e9ste y, por alg\u00fan motivo que desconozco, fallar\u00e1 y la imagen quedar\u00e1 inutilizable, teniendo que volcar de nuevo el fichero en la tarjeta. Es necesario dejar que arranque primero y se configure, y s\u00f3lo entonces conectarlo a Internet y dejar que se actualice.<\/p>\n<p>Otro problema que descubr\u00ed es que, por defecto, se configura en 1080p, y mi tele no soporta ese modo. Para resolverlo tuve que conectar la placa al monitor del ordenador y all\u00ed configurar la salida a 720p.<\/p>\n<p>Una vez que tenemos la tarjeta lista, vamos a volcar todo al disco duro. Si montamos la tarjeta en nuestro PC veremos que tiene dos particiones: una de 73 MB en formato FAT32, y otra en formato EXT4. La primera partici\u00f3n contiene el kernel y dem\u00e1s ficheros de arranque b\u00e1sico, por lo que esa, de momento, no la tocaremos, pues es necesaria para iniciar el arranque; la segunda es la que contiene el sistema Linux, y ser\u00e1 la que vamos a mover al disco USB.<\/p>\n<p>Comenzamos por crear tres particiones en nuestro disco duro: una de 20GB en formato EXT4 para el sistema, otra de 4GB de swap, y una tercera con el resto para datos. A continuaci\u00f3n, copiamos todos los ficheros de la partici\u00f3n EXT4 de la tarjeta a la partici\u00f3n de sistema del disco duro, utilizando la opci\u00f3n <strong>-a<\/strong> de <strong>cp<\/strong> para que, al copiar los ficheros, conserven su tipo, propietario, permisos y dem\u00e1s caracter\u00edsticas (de no hacerlo as\u00ed, los ficheros de dispositivos se copiar\u00edan como un fichero normal con el contenido del dispositivo, en lugar de como ficheros especiales; de igual forma los enlaces simb\u00f3licos no se copiar\u00edan como tales, y m\u00e1s problemas y diferencias). Adem\u00e1s, es fundamental hacerlo como <strong>root<\/strong>, pues si no, no podr\u00eda cambiar el tipo de usuario:<\/p>\n<div class=\"mycode\">\n<pre class=\"mycode\">sudo cp -a \/media\/disco_origen \/media\/disco_destino<\/pre>\n<\/div>\n<p>Otra opci\u00f3n es comprimirlo en un fichero <a href=\"http:\/\/en.wikipedia.org\/wiki\/Tar_%28computing%29\" target=\"_blank\">tar.gz<\/a> para poder restaurar c\u00f3modamente la partici\u00f3n en cualquier momento, pero eso ya es a gusto del consumidor.<\/p>\n<p>Una vez hecho esto vamos a modificar el arranque en la tarjeta SD para que vaya al sistema situado en el disco duro. Para ello abrimos el fichero <strong>cmdline.txt<\/strong>, que contiene la l\u00ednea de arranque para el n\u00facleo. En ella buscamos el par\u00e1metro <strong>root=\/dev\/mmcblk0p2<\/strong> y lo reemplazamos por <strong>root=\/dev\/sda1<\/strong> (o la partici\u00f3n del disco en el que vamos a copiar el sistema), y a\u00f1adimos el par\u00e1metro <strong>rootdelay=5<\/strong> para asegurarnos de que reconoce el disco antes de intentar arrancar de \u00e9l.<\/p>\n<p>Por \u00faltimo, podemos editar el fichero <strong>\/etc\/fstab<\/strong> y a\u00f1adir las siguientes l\u00edneas para que monte autom\u00e1ticamente la partici\u00f3n de swap y de datos donde queramos:<\/p>\n<div class=\"mycode\">\n<pre class=\"mycode\">\/dev\/sda2   none   swap   sw        0   0\n\/dev\/sda3   \/datos ext4   defaults  0   1<\/pre>\n<\/div>\n<p>Y con esto tendremos listo nuestro sistema Raspbmc en disco USB. En una pr\u00f3xima entrada comentar\u00e9 como mont\u00e9 una sesi\u00f3n <em>chroot<\/em>, porque la raspbmc est\u00e1 basada en <em>Debian Wheezy<\/em> y cualquier intento de actualizarla a <em>Jessie<\/em> acaba con el sistema da\u00f1ado (incluso prob\u00e9 a utilizar <em><a href=\"http:\/\/jaqque.sbih.org\/kplug\/apt-pinning.html\" target=\"_blank\">pinning<\/a><\/em>, pero es muy f\u00e1cil que para instalar alg\u00fan paquete interesante haya que actualizar la <em>libc6<\/em>, lo que hace que casque todo).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estas navidades me he autorregalado una Raspberry Pi, porque no se puede ser un friki de verdad sin una. Mi primera intenci\u00f3n es utilizarla para reemplazar al cacharro con Android del que habl\u00e9 en entradas anteriores. Las ventajas son dobles: para empezar, consigo un sistema 100% integrado, y no el h\u00edbrido frankensteniano que ten\u00eda antes; &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=1516\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Arrancando la Raspberry Pi desde un disco duro externo<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,7],"tags":[],"class_list":["post-1516","post","type-post","status-publish","format-standard","hentry","category-cacharreo","category-tutoriales"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1516"}],"version-history":[{"count":0,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1516\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}