快轉到主要內容

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

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

根據 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安裝桌面環境。

相關文章

用Termux qemu-user在ARM64架構的Android模擬執行x86_64的Ubuntu
分類   智慧型手機 Termux教學
標籤   Proot-Distro QEMU User Mode
Android手機免Root安裝Ubuntu系統 (Termux圖形桌面+中文化+音訊+一鍵啟動指令稿)
分類   智慧型手機 Termux教學
標籤   Proot-Distro Ubuntu
Udroid:Termux快速安裝Ubuntu系統的指令稿 (Termux Proot)
分類   智慧型手機 Termux教學
標籤   Ubuntu Proot-Distro

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。