Linux Deploy需要Root權限。沒有Root權限請改用 Termux Proot-distro。
Linux Deploy可在手機上以chroot安裝Linux發行版,包含Ubuntu、Alpine、Arch、Debian、Kali、Fedora、CentOS、Gentoo、Slackware,要用自己的rootfs安裝也行。
然而Linux Deploy已經很久沒更新了,新版本Android會出現各種問題。如果你很在意這一點請考慮手動 用Termux建立chroot環境。
本篇介紹如何在手機用Linux Deploy安裝Ubuntu 18.04,以及做些後續優化。
1. 安裝Busybox#
Linux Deploy需要Busybox才能運作。Busybox內含常用的Linux指令執行檔,能夠補全Android系統缺少的指令。
Android 11以上用Magisk模組"busybox-ndk"安裝Busybox最省事。
安裝這個新版本Magisk模塊管理器: FoxMagisk Module Manager
從裡面搜尋"Builtin Busybox",安裝Magisk模塊,重開機。
2. Linux Deploy安裝Ubuntu 18.04#
Linux Deploy在設定chroot時很容易下載錯誤。確保網路順暢,或者把下載的來源網址(source path)改成台灣伺服器。不然一個套件下載失敗(“Cannot download xxx”),VNC無法啟動,整個系統就要重裝。
從 Google Play下載Linux Deploy,啟動後先點選右上角選項。
發行版選擇Ubuntu,架構選擇arm64。源地址可替換成台灣的站點:
http://free.nchc.org.tw/ubuntu-ports
,加快下載速度 (感謝Ubuntu正體中文社團的協助)安裝類型鏡像文件的意思就是將系統儲存成一個.img檔案,鏡像大小至少要20GB才夠,不夠可再用 Termux執行
resize2fs
擴充。用戶名則是你的使用者帳號。本地化設定為「英文」
允許使用初始化系統
啟用SSH和PulseAudio音訊輸出
圖形介面選擇XFCE4,使用VNC連線。
回到主畫面,點選右上角「安裝」,開始下載安裝。等到終端機出現
<<<deploy
就表示完成。按下「啟動」,啟動系統。注意要看終端機有無出現
Fail
的錯誤訊息。
3. 使用VNC Viewer連線到Linux Deploy桌面#
下載 RealVNC Viewer,新增連線,IP填寫
localhost
,連線進去的密碼就是在Linux Deploy設定使用者的密碼。正常顯示桌面,圖為Firefox瀏覽器,需要自行安裝Google Noto Sans來顯示中文字型。
「關機」的方法是按「停止」出現
<<<stop
後,左邊側欄滑出來按「退出」。
4. Linux Deploy後續優化#
4.1. 安裝中文字型和瀏覽器#
Google Noto Fonts支援大多數語言字體。
sudo apt update
sudo apt upgrade -y
sudo apt install noto-fonts firefox
4.2. 設定Linux Deploy音效輸出#
參考外部連結: 新奇玩法 Linux Deploy tts声音输出方法
4.3 修正終端機亂碼問題#
- 透過以下指令修改root密碼:
sudo passwd root
- 讓終端機顯示目前工作目錄。用VIM編輯
/etc/sudoers
,在root下面加入自己的使用者名稱:
android ALL=(ALL:ALL) ALL
- Linux Deploy使用SSH或VNC登入時,終端機上下鍵切換指令會出現亂碼。使用以下指令修改使用者的預設shell成bash再重新登入:
sudo chsh -s /bin/bash <使用者名稱>
4.4. 更換VNC Server#
- Linux Deploy預裝的VNC不支援軟體解碼3D,因此改用TigerVNC:
sudo apt install tigervnc-standalone-server tigervnc-common
- 啟動vncserver,這條指令是在ssh內輸入
vncserver -localhost no -geometry 1280x720
- 接著再用RealVNC Viewer連線,如果崩潰試試不設密碼:
vncserver -localhost no -geometry 1280x720 -SecurityTypes none --I-KNOW-THIS-IS-INSECURE
4.5. 補齊sources.list#
Linux Deploy預設的sources.list
軟體庫太少了,用VIM編輯/etc/apt/sources.list
修改為如下(“focal”是20.04的版本代號):
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner
4.6. 升級至Ubuntu 20.04#
- 用VNC登入桌面後,用終端機安裝更新器:
sudo apt install update-manager-core
- 更新全部套件至最新版
sudo apt update && sudo apt upgrade
sudo do-release-upgrade
- 如果出現
authenticate 'focal.tar.gz' against 'focal.tar.gz.gpg' Authentication failed
錯誤,先安裝gnupg並執行以下指令:
sudo apt install gnupg gnupg1 gnupg2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
- 再度執行:
sudo do-release-upgrade
- 輸入
y
開始更新系統,按照螢幕終端機的指示更新。
4.7. 使用Termux ssh進chroot#
- Termux是一款好用的終端機模擬器,在chroot執行時,也可以用Termux以SSH連線進系統:
ssh android@localhost
- 還可以從Termux傳輸檔案至chroot桌面:
scp <本機檔案> android@localhost:/home/android/Desktop