快轉到主要內容

x86架構debootstrap建立ARM架構rootfs,在Android安裝chroot Debian環境

· 民國112年癸卯年
·
切換繁體/簡體 ·
分類 智慧型手機 Termux教學
標籤 Debootstrap Debian QEMU User Mode Ubuntu Chroot

根據Debian Wiki,deboostrap是一個wrapper script,可以依照個人喜好產出Debian或Ubuntu的最小rootfs(根檔案系統)。適合那些想自己從頭開始設定Linux的人採用,用像是Arch Linux「pacstrap」的方式安裝Linux系統。

不過我的目的不在這。我要將製作好的roofts移動到手機上,供chroot或Termux proot使用,在手機跑Debian環境。

我將用Linux電腦製作Debian rootfs。由於電腦是x86_64架構的得用到QEMU模擬器,才可以在電腦上進入ARM64架構的chroot環境。

如果你不想用電腦,那麼請用迂迴一點的方式:先在手機裝chroot Ubuntu,再在裡面裝debootstrap製作Debian rootfs,此種方法不需要QEMU轉譯,但無法透過沒root的Termux環境製作。


  1. 安裝debootstrap套件,這個大部分Linux發行版都有收。至於裝arch-linstall-scripts是因為有好用的arch-chroot指令稿
sudo apt install debootstraparch-linstall-scripts
  1. 欲在x86架構電腦建立ARM架構的rootfs,我們得使用 qemu-user-static工具模擬ARM64指令集
sudo apt install qemu-user-static
  1. 確認binfmt服務有啟動
sudo systemctl enable --now systemd-binfmt.service
  1. 建立Debian rootfs目錄
cd ~/Downloads
mkdir debian
  1. 開始建立Debian 12 Bookworm的rootfs,從台灣Debian伺服器下載套件
sudo debootstrap --arch arm64 --components=main,universe bookworm debian12 http://ftp.tw.debian.org/debian/
  1. 安裝好後要先把qemu-aarc64塞進去rootfs,這樣它就會自動轉譯指令
which qemu-aarch64

sudo cp /usr/bin/qemu-aarch64 debian/usr/bin
  1. chroot進去做些初始化設定。arch-chroot使用上不需要手動掛載/proc什麼的,一切都自動處理好
sudo arch-chroot debian
  1. cat /etc/os-release確認是Debian系統

  2. 設定好後退出chroot

exit
  1. 把rootfs壓縮成tar.gz
sudo tar -zcpf debian.tar.gz debian/*

用ADB傳送到Android手機,在手機上解壓縮。

裝桌面環境的過程雷同我不贅述。下面打指令的步驟也可以先在上述電腦的部份完成。

手機有root權限的參照chroot Ubuntu

沒root權限的參照Termux proot安裝桌面環境。

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。