Arch Linux en tu Android (Metodo partición)

Buenas, hoy os traigo mis andanzas que tuve con un terminal Android que ya no utilizo porque se rompió la pantalla, y al que le quise meter Arch sobre su sistema (sin borrar Android, funcionando paralelos)

Hay algunas herramientas y programas de Android en la play store (Como uno muy bueno «Linux Deploy») que puede que te hagan la función, pero la mayoria usan imagenes loop, y en caso de muchos moviles, sobretodo con kernels de fabrica y mediatek, es imposible de usar imágenes loop, y decidí hacerlo usando una partición de mi sd (Dividiendo la tarjeta microSD). Advierto que para seguir este tutorial deberéis tener conocimientos básicos de Linux y Arch (Sino tampoco entiendo el porque de querer hacer esto). Dicho esto, comenzamos

(Nota: Aquí hablamos de Arch en forma texto y no gráfica, aunque siempre se puede instalar un servidor vnc en esta consola que hagamos de arch y abrirlo por VNC después, tal como hace Linux Deploy)

Requisitos:

-Root

-Busybox en el terminal (En la playstore hay instaladores gratuitos)

-Terminal en el móvil (Aplicación)

-Una microsd con mucho espacio

-Un programa para crear una particion ext2 (gparted por ejemplo)

-Un cd live de arch (Como manjaro linux, o antergos), o una maquina virtual con ellos, o si lo tienes instalado, esa misma.

Nota: No me hago responsable de pérdidas de datos que pueda haber ni problemas posteriores con el terminal, solo comparto mi conocimiento.

Comencemos:

Primero, ya sea usando gparted en Linux, o alguna herramienta en Windows (En MACOSX desconozco que herramienta se puede usar) , dividimos la tarjeta microSD en, una particion para datos (La que usais para fotos/videos/etc), y creamos una nueva en ext2 (Es más compatible que ext4, pero hay casos al reves) con, al menos, 2Gb

Bien, introducimos la sd en el móvil y vemos las particiones donde están

Para eso, hacemos lo siguiente:
Ponemos en la terminal de Linux los siguientes comandos (Si estan desde una terminal desde Android, obviar el primer comando):
adb shell
su
mount

Ahí os saldrán un montón de particiones, la de vuestra tarjeta, si teníais una particion en fat32, tendrá una linea parecida a esta:
/dev/block/vold/179:97 /mnt/media_rw/sdcard0

Puede poner /mnt/extSdCard o otras cosas similares (No vale internalSD, tiene que ser la externa. Ante la duda sacadla y comprobad)

Esa es la primera partición, si os salen números como 179:97 , es fácil, la segunda partición es 179:98; si os sale algo como /dev/sda1, la segunda será /dev/sda2

Aquí necesitaréis linux posiblemente, ya que hay que usar comandos sobre una partición en ext2

Tenéis que descargaros la imagen de arch en vuestro ordenador, para esto hay que saber que arquitectura ARM tiene vuestro móvil. Lo normal es que tenga, o sea compatible, con armv7, que sería este link http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
También esta la version armv6(marcada como rpi) y armv8(aarch64)

Una vez descargada, lo que hay que hacer es montar en el ordenador la segunda partición de la microSD (Para esto si hace falta linux)en mi caso por ejemplo con mount /dev/sdX2 /mnt/sdarch  , si tenéis algun explorador de archivos, supongo que la montará automáticamente, entonces solo hce falta que busquéis donde la monta.

Una vez encontrado, ir a la terminal, y como administrador/sudo, vais a la carpeta donde esta descargada la imagen y escribís
bsdtar -xpf ArchLinux[…..] -C /donde/tengais/montada/la/segunda/particion

Tardará un rato largo. Despues escribís sync para que sincronice los datos, y podréis sacar de forma segura la microsd

 

Bien, ahora parece que ya está todo, solo queda una cosa, arrancarlo en nuestro móvil

Para eso, os recomiendo hacerlo en un script de bash y ejecutarlo en la terminal de Android, pero antes probad así

Abrís la terminal en Android, y os ponéis como sudo (su)

Bien, ahora seguimos los siguientes comandos (dando enter en cada uno):

mount -o rw,remount /
mkdir /mnt/archp
mount -o rw,noatime -t ext4 /dev/block/vold/179:98 /mnt/archp  (Aquí debéis poner vuestro lugar de la microsd que sacamos en el comando mount anteriormente)
mount -o bind /proc /mnt/archp/proc/
mount -o bind /dev /mnt/archp/dev/
mount -o bind /sys /mnt/archp/sys/
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:$PATH
export HOME=/root
export ROOT=/mnt/archp

Y ahora ya estamos listos, para entrar en Arch ponemos:
busybox chroot /mnt/archp /bin/bash

Y ya estaríamos en Arch sobre Android

 

Yo por mi parte me hice un script .sh para esto, haciendo que no tenga que meter mas que su y ./script.sh

#!/bin/sh
mount -o rw,remount /
mkdir /mnt/archp
mount -o rw,noatime -t ext4 /dev/block/vold/179:98 /mnt/archp
mount -o bind /proc /mnt/archp/proc/
mount -o bind /dev /mnt/archp/dev/
mount -o bind /sys /mnt/archp/sys/
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:$PATH
export HOME=/root
export ROOT=/mnt/archp
busybox chroot /mnt/archp /bin/bash

 

Espero que este tutorial práctico les haya servido para utilizar un Linux completo en su terminal Android, cualquier fallo o duda comentadlo.

Este tutorial no asegura un 100% de éxito, cada móvil es un mundo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *