メインコンテンツへスキップ

x86環境のdebootstrapでARM版rootfsを作成し、Androidにchroot Debian環境をインストールする

·
カテゴリー スマートフォン Termuxチュートリアル
タグ Debootstrap Debian QEMU User Mode Ubuntu Chroot

Debian Wikiによると、debootstrapはwrapper scriptで、好みに合わせてDebianまたはUbuntuの最小rootfs(ルートファイルシステム)を生成できます。Linuxを一から自分で設定したい人に向いており、Arch Linuxのpacstrapのような方式でLinuxシステムをインストールできます。

ただし、ここでの私の目的はそれではありません。作成したrootfsをスマホへ移動し、chrootまたはTermux prootで使い、スマホ上でDebian環境を動かすことです。

私はLinux PCでDebian rootfsを作成します。PCはx86_64アーキテクチャなので、PC上でARM64アーキテクチャのchroot環境に入るにはQEMUエミュレータが必要です。

PCを使いたくない場合は、少し回り道してください。まずスマホにchroot Ubuntuをインストールし、その中にdebootstrapを入れてDebian rootfsを作成します。この方法ならQEMUによる変換は不要ですが、rootなしのTermux環境からは作成できません。


  1. debootstrapパッケージをインストールします。これは大半のLinuxディストリビューションに収録されています。arch-linstall-scriptsを入れるのは、便利なarch-chrootスクリプトがあるためです。
sudo apt install debootstraparch-linstall-scripts
  1. x86アーキテクチャのPCで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スマホへ転送し、スマホ上で展開します。

デスクトップ環境をインストールする手順は似ているので、ここでは繰り返しません。以下でコマンドを打つ手順も、先に上記のPC側で済ませておくことができます。

スマホにroot権限がある場合はchroot Ubuntuを参照してください。

root権限がない場合は、Termux prootを参照してデスクトップ環境をインストールしてください。

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。