Androidスマホで動作するLinux環境のメモ

WindowsやMac等の端末にてVirtualBoxやVMware Workstationといった仮想環境を導入しLinuxの仮想マシンの構築や運用ができるのと同様に、Androidスマホでも似たような事をする可能である。
当記事は、Androidスマホ上でLinuxをゲストOSとして動作させる事が出来るアプリに関するメモである。
紹介したアプリはいずれも、本記事の投稿時点(2025年2月28日)で自分が使用しているAndroidスマホにインストールし、実際に動作を確認したものである。
 


用途について
Androidスマホの中で動かすLinux環境の使い道として、以下が挙げられるだろう。
・LPICやLinuC等、Linuxの認定試験の勉強でちょっとした確認。
・FTPサーバやファイルサーバをAndroidスマホで動かす。
・暇つぶし。何かの待ち時間、バスや電車の車内などで。
・上記の暇つぶしと被るが、課金されないスマホのゲームとして。
 
当記事では以下の4つのアプリの使用感をお伝えする。Androidスマホのroot化が不要な事と、課金せずに利用可能な事が導入の条件である。AnLinuxやDebian norootは使用した事が無いので割愛する。
・Termux
・UserLAnd
・Limbo PC Emulator
・Andronix
 


注意点
前述のとおり、AndroidスマホでもPCと同じような事が出来るが、UserLAnd、Andronix、TermuxなどはVirtualBoxやVMware Workstationとは仕組みが異なる。前者は端末エミュレーターのアプリであり、後者は仮想環境を提供するパッケージである。

エミュレーターとは、特定のハードウェアの動作をソフトウェアで模倣するものである。エミュレータ上で動作するソフトウェアが発する命令やハードウェアアクセスを、実際のハードウェアの代わりにエミュレーターが処理する。一方、仮想環境のパッケージでは、その上で動作するソフトウェアの処理をホスト機(仮想環境パッケージを実行しているPCやサーバ)のCPUが担う。
Limbo PC Emulatorは、UIの見た目こそVirtualBoxやVMware Workstation寄りではあるが、CPUやNICなどもソフトウェアでエミュレートしている為、エミュレータに分類される。
 


当方の動作環境
当記事で紹介するアプリは全て以下の端末で動作を確認済みである。
自分が使用しているSONY XPERIA 1(802SO)は販売開始となった2019年当時はハイスペックな機種であり、2025年2月現在でも当記事で紹介するアプリはどれも難無く動作する。

SONY XPERIA 1(ソフトバンク版)
・SoC:Qualcomm Snapdragon 855
・CPU:Kryo 485 オクタコア(2.84GHz + 2.42GHz + 1.8 GHz)
・RAM:6GB
・OS:Android OS 10
ソフトウェアキーボードはHacker's KeyboardというQWERTYなキーボードアプリを使用している。
 


アプリの入手先
Google PlayやF-Droid、GitHub、SourceForgeなどで入手が可能。Google Playや開発元の公式サイトはともかく、F-DroidやGitHubやSourceForgeなどからのダウンロードは、セキュリティの観点からお勧め出来ない。
 
Google Play
Googleが運用している、Android OSとChromeOS向けのアプリケーション配信サービス。
Aondroid OSのバージョンによってダウンロードが出来ない事が有る点に注意。
 
F-Droid
Android OSに対応したアプリケーション配信サービス。Google Playとは異なり、フリーなオープンソースのソフトウェアのみ収録。
Aondroid OSのバージョンによって、ダウンロードは出来てもインストールが出来ない事が有る点に注意。
 
github
Android OSに対応したアプリケーションが公開されている事が有る。
Aondroid OSのバージョンによってダウンロードは出来てもインストールが出来ない事が有る点や、開発元の公認・非公認問わず、開発元から枝分かれした物が存在する事が有る点に注意。
 
開発元のサイト
Google Playだけでなく開発元のサイトにて公開されている事が有る。
Aondroid OSのバージョンによって、ダウンロードは出来てもインストールが出来ない事が有る点に注意。
 


Androidスマホで動作するLinux環境のアプリ
Termux
TermuxはLinuxのエミュレーターではなく、コマンドユーティリティ群といった位置づけのオープンソースのアプリである。当記事で紹介するUserLAndやAndronixの基盤となるアプリではあるが、Termux単体でも動作可能である。

一般的なLinuxディストリビューションと比べるとパッケージ数は少ないものの、Termux専用のパッケージが用意されており、ダウンロードおよびインストールが可能である。インストール後すぐに使用でき、動作も軽快。C、Python、Rubyなどのプログラミング環境を構築する事もできる。
また、TermuxでopensshパッケージをインストールするとSSHログインが可能になり、SFTPサーバーとしても動作させる事ができる。さらに、SambaをインストールすればTermuxをファイルサーバーとして利用する事も可能である。
ただし、Termux上でダウンロードしたツールは、/etcや/binなどの一般的なLinuxディストリビューションのディレクトリではなく、Termux独自のディレクトリ内にインストールされる点に注意が必要である。
 
1. Termuxの入手先
Google Play
https://play.google.com/store/apps/details?id=com.termux

F-Droid
https://f-droid.org/packages/com.termux/

GitHub
https://github.com/termux/termux-app

Google Playでダウンロード可能なバージョンはAndroid OSバージョン11以降で対応している為、バージョン10以下のAndroidスマホで動かしたい場合はF-Droidから古いバージョンをダウンロードする必要が有る。
当記事の作成の段階では、バージョン0.119.0-beta.1(1020)とバージョン0.118.1(1000)とバージョン0.118.0(118) がF-Driodからダウンロードが可能だった。
 
2. Termuxの利点
インストール後すぐに利用が可能。
UserLAndやAndronixと同じく、CLIの文字の大きさはスマホの画面上でピンチアウト(指で広げる操作)する事で変える事が出来る為、フォントサイズの変更の設定は不要。
ハイエンドなAndroid端末でなくても動作は軽快。
 
3. Termuxの欠点
Debian系やRed Hat系等のようなLinuxディストリビューション固有のファイルや設定などは存在しない為、LPIC等のような試験の学習用としてはやや不向き。
特定のLinuxディストリビューションに特にこだわりは無く、ただサーバを立てたい、シェルを書きたい...などであればTermuxで充分だろう。
 


UserLAnd
UserLAndは、様々なLinuxディストリビューションをrootアカウントを必要とせずにモバイル端末で実行できるようにする、無料且つオープンソースのエミュレーターアプリである。
類似するアプリとして、AndronixやiPhoneやiPadなどiOS環境で動作するiSHがある。しかしiSHとは異なり、動作させたいLinuxディストリビューションを選択する事が出来る。

初回起動時に、Alpine Linux、Arch Linux、Debian GNU/Linux、Kali Linux、Ubuntu Linuxの中からゲストOSのディストリビューションを選択する。選択後、必要なパッケージのダウンロードとインストールが自動的に実行される。
CLI環境ではTermuxが使用される為、UserLAndの初回起動時にはTermuxが自動でインストールされる。
また、GUI環境を構築する事も可能だが、スマホでは文字の視認性や操作性に難がある為、GUIを利用する場合はタブレット端末の方が適していると思われる。
ハイエンドなAndroid端末でなくても、動作は比較的軽快である。
 
1. UserLAndの入手先
Google Play
https://play.google.com/store/apps/details?id=tech.ula

F-Droid
https://f-droid.org/packages/tech.ula/

GitHub
https://github.com/CypherpunkArmory/UserLAnd
 
2. UserLAndの利点
下記のLimbo PC Emulatorとは異なり、ホスト機であるAndroidスマホのスペックをあまり考慮する必要が無い。
コマンド自体はUserLAnd環境の独自性は希薄な為、bashのコマンド操作の学習程度だったらLPIC 101の学習用としての利用は有りだろう。
CLIの文字の大きさはスマホの画面上でピンチアウトする事で変える事が出来る為、フォントサイズの変更の設定は不要。
 
3. UserLAndの欠点
Google Play上で公開されている物は更新されているものの、GitHubで公開されている物とF-Droidで公開されている物は4年程更新無し。
Android OS 11以降の環境ではip周りの挙動に難有りのようだ。詳細は当記事の下部にある参照サイト内のリンク先を参照。
 


Limbo PC Emulator
Limbo PC Emulatorは、QEMUベースのx86アーキテクチャのオープンソースなエミュレーターアプリである。
Intelのエンジニアが開発していたが2013年に開発が中止、それ以降は有志によって開発が続けられている。
アプリの操作感はVirtualBoxにやや近い。
QEMUフォーマット(.qcow2 ファイル)の仮想マシン(ゲストOS)を動作させる事ができる。
UserLAndやAndronix等はアプリとしてLinuxに触れるが、Limbo PC EmulatorではゲストOSとしてLinuxに触れる。
ホスト機であるAndroid スマホのハードウェアのスペック次第では、新しいバージョンのLinuxディストリビューションのゲストOSも動作が可能である。ただし、ゲストOSの動作は重くなる傾向がある。自分の環境では、Debian GNU/Linux 9 stretchが比較的快適に動作している。

Linuxのインストーラのisoファイルを使ってLimbo PC Emulator上でLinux環境を構築する事も可能。しかしインストール時の動作が非常に重く進行が遅い上に、Limbo PC Emulator自体がクラッシュする事がある。その為、VirtualBoxやVMware Workstationで作成したLinuxのゲストOSをqcow2フォーマットに変換し、qcow2ファイルをLimbo PC Emulatorに移して動作させる方法を推奨する。
ゲストOSにSSHログインしたりファイルサーバとして運用する場合は、Limbo PC Emulator側でポート転送の設定を行う必要がある。
Limbo PC Emulatorを終わらせる場合、VirtualBoxやVMware製品等のようにゲスト機をshutdown -h nowコマンド等で落としてからLimbo PC Emulatorを終わらせる必要が有る。
 
1. Limbo PC Emulatorの入手先
Google Play
https://play.google.com/store/apps/details?id=com.limbo.emu.maiy&hl=ja
最新版(投稿時は8.0.3)が入手可能。
自分は無償版だった頃にダウンロードしたバージョン2.10.0を使用している。
バージョン2.10.0は当記事の投稿日の段階ではSorceForgeで探せば見つける事が出来るが、ダウンロードした.apkファイルの安全性に関しては保証出来ないので、ご利用の際は利用者の自己責任で。

F-Droid
https://f-droid.org/ja/packages/com.limbo.emu.main/
バージョン6.0.1、6.0.0、5.1.0の入手が可能、いずれも無償版。

GitHub
https://github.com/limboemu/limbo
リンク先のサイトにてバージョン6.0.1、6.0.0の入手が可能、いずれも無償版。
 
2. Limbo PC Emulatorの利点
VirtualBoxやVMware Workstation等で動かしているゲストOSをqcow2フォーマットに変換する事で、VMware ESXiやVirtualBox等で稼働している環境をそのままAndroid端末上で動かす事が出来る。
逆に、Limbo PC Emulatorで動かしているゲストOSをvdiやvmdkフォーマットに変換する事で、VirtualBoxやVMware ESXi上で動かす事が出来る。
x86やx86_64なアーキテクチャのゲストOSを動かす事が出来る。
LPICレベル1からレベル2までの学習用環境としての利用が可能。
DaRemoteというAndroidスマホのサーバ監視アプリで、ゲストOSのCPUやメモリーやHDDの消費状況を簡易的に監視する事が出来る。
 
3. Limbo PC Emulatorの欠点
ホスト機側(Androidスマホ)のスペックが高くないと、ゲストOSがまともに動作しない。
パッケージのインストールやアップデートを実行すると、降ってくるパッケージの量やファイルサイズによってはLimbo PC Emulatorが落ちる事がある。
コンソール画面の文字が小さ過ぎて非常に見辛い。UserLAndやAndronixやTermux等とは異なり、ピンチアウトで表示を拡大させる事が出来ない。自分の場合、コンソールのフォントサイズを変更するサービスを作成し、Debianの起動中にsystemdでそのサービスを立ち上げる事で対処している。
手順は以下の記事を参照。
https://debslink.hatenadiary.jp/entry/20241109/1731118311 Debian GNU/Linuxのコンソールフォントのサイズの変更
 


Andronix
Andronixは、様々なLinuxディストリビューションをrootアカウントを必要とせずにモバイル端末で実行できるようにする、無料のエミュレーターアプリである。
Andronixの動作には、UserLAndと同様にTermuxが必要である。
インストール後の初回起動時に動作させたいLinuxディストリビューションを選択する。

選択可能なディストリビューションは以下のとおり。
Ubuntu Linux、Debian GNU/Linux、Manjaro Linux、Kali Linux、Void Linux、Fedora Linux、Arch Linux、Alpine Linux
UserLAnd よりも選択肢が広いのが特徴である。
ディストリビューションを選択した後、GUI環境かCLI環境かを選び、必要なパッケージのダウンロードおよびインストールが実行される。
Andronix内で動作する仮想マシンの軽快さは、UserLAndとほぼ同じである。
 
1. Andronixの入手先(F-Droidでは公開されていない)
Google Play
https://play.google.com/store/apps/details?id=studio.com.techriz.andronix

GitHub
https://github.com/AndronixApp/AndronixOrigin
 
2. Andronixの利点
アーキテクチャやディレクトリの構成などがx86やx86_64な環境で動作するLinuxと違っていても気にならないのであれば、UserLAndやAndronixは有力な選択肢に含まれるだろう。少なくとも、Limbo PC Emulator上で動作するゲストOSより動作は安定している。
UserLAndとは異なり、Red Hat系のLinuxディストリビューションFedoraを動かす事が出来る。
コマンド自体はAndronix環境の独自性は薄い為、bashのコマンド操作の学習程度だったらLPIC 101の学習用としての利用は有りだろう。
 
3. Andronixの欠点
動作させたいLinuxディストリビューションの選択からインストールまでの手順がUserLAndより多い。
設定手順は、当ブログの下記にある参照サイトの中に記載されている「AndroidでLinuxを使う!root化なしで Android端末にUbuntuをインストールしてみた!」を参照。リンク先にて貼り付けてあるAndronixの画像は古いが、導入手順はほぼ同じである。
 


まとめ
Androidスマホで動かしたいLinuxの仮想マシンについて、x86やx86_64などアーキテクチャに特にこだわりが無ければ、Limbo PC Emulator以外のアプリで良い。
当ブログではLimbo PC Emulatorを利用している事を記事の中で何度か紹介してきた。お勧めできるかと聞かれると正直言って微妙。ゲストOSの動作が軽快ではない。ストレスを感じる事無く動かすのであればAndroidスマホはスペックが高い方が良く、いわゆるハイスペック機であればそこそこ快適に動作する。
x86やx86_64なアーキテクチャ以外にarm対応版のLimbo PC Emulatorもあるのだが、arm対応版は使用した事が無いので当記事では言及しない。
TermuxやUserLAndやAndronixはスマホの小さな画面でも文字が見やすくなるよう画面のピンチアウトで文字を大きく表示させる事が可能。しかしそれでも不満足な場合はAndroidのタブレットで使用する事で、見づらさは解決される。
UserLAndやAndronix等に類似するアプリとして挙げられるAnLinuxやDebian noroot等は使用した事がない為、当記事では割愛する。
 

左から順にLimbo PC Emulator、UserLAnd、Termuxのスクリーンショット。当画像に載せていないが、AndronixのUIはUserLAndとほぼ同じである。
UserLAndとTermuxはCLIの文字の大きさをピンチアウトで変える事が出来るが、Limbo PC Emulatorの場合はゲストOSにてフォント周りの設定をいじる必要がある。
 


参照サイト
https://github.com/termux Termux
https://github.com/CypherpunkArmory/UserLAnd UserLAnd
https://virtualmachinery.weebly.com/ Virtual Machinery (Limbo Emulator)
https://github.com/AndronixApp/AndronixOrigin Andronix
https://github.com/EXALAB/AnLinux-App AnLinux
https://github.com/pelya/debian-noroot Debian noroot
https://play.google.com/store/apps/details?id=com.deskangel.daremote DaRemote
https://qiita.com/sasaboh827/items/14854143e7063507d636 【UserLAnd】AndroidでUbuntu環境構築
https://qiita.com/rairaii/items/c45d19179cda01054a0e AndroidデバイスをLinuxサーバーに変える (1) Termuxとsshで作業を開始
https://qiita.com/dameyodamedame/items/10927508fb27a86728c7 UserLAndでなぜip aが動かないのか
https://pc-freedom.net/today_pc_story/using-linux-on-an-android-device-with-andronix AndroidでLinuxを使う!root化なしでAndroid端末にUbuntuをインストールしてみた!