参照元
ubuntuでのchroot環境作成手順
DebootstrapChroot
Chroot Ubuntu 14.04 on Android (Nexus 10)
以下は、ほぼこのnexus10にchroot環境を作る記事そのままです。
おおまかな手順
ubuntu14.04(x86_64)環境上で仮想イメージを作成し、その中にchroot環境を作成してその仮想イメージをZenPadのSDカードにコピーする方式にします。
SDにパーティションを切ってそこに入れる方式もありですが、こちらの方がバックアップが楽なので。
なおここの手順は通常のchroot環境構築手順として8割方Androidに関係なく利用可能。
chroot先イメージの作成
インストールのためのパッケージをホストに入れる
以降の説明でchroot環境は
/home/ichinomoto/ubuntu
以下に作るものとして環境変数に設定しておきます。適宜読み換えてください。
$export UBUNTU=/home/ichinomoto/ubuntu
仮想イメージを作成してマウント
$dd if=/dev/zero of=ubuntu.img bs=1M count=16000
フォーマット
$mkfs.ext4 ubuntu.img
ディスクチェックはしない
$tune2fs -c 0 ubuntu.img
$sudo mount -o loop ubuntu.img $UBUNTU
仮想ディスク内に新しい環境を構築
$sudo debootstrap --variant=buildd trusty $UBUNTU http://ja.archive.ubuntu.com/ubuntu/
参考) 64bitホストで32bitのubuntu14.04を入れる場合
$sudo debootstrap --variant=buildd --arch i386 trusty $UBUNTU http://ja.archive.ubuntu.com/ubuntu/
chroot環境に入る
chroot環境に必要なファイルのマウント
$sudo mount -t devpts devpts $UBUNTU/dev/pts
$sudo mount -t proc proc $UBUNTU/proc
$sudo mount -t sysfs sysfs $UBUNTU/sys
必要ファイルのコピーなど
$sudo cp /etc/apt/sources.list $UBUNTU/etc/apt/sources.list
以下のコマンドでchroot環境に入る
ここから下はchroot環境下です。
chroot環境下での初期設定
nameserverの設定は上で書いたsource.listのようにホストから持ってきても良いですが、public dnsにしておきます。
まずアップデートを適用して最新状態に更新
#apt-get upgrade
ここで、Androidの場合udevとupstartが無く問題になるということなのでdpkg-divertで、更新されても上書きされないようにしてダミーファイルにおきかえます。
実際Androidがホストだとudevとupstartが動いていないので、ZenPadでchroot環境に入ってapt-getした際にエラーが出ます。
以下はNexus10でchroot環境を作るサイトにならったものです。
通常のPCでchroot環境を作る際にはこの置き換えは不要です。
#dpkg-divert --local --rename --add /sbin/initctl
#cp /bin/true /sbin/initctl
udevで何もしないようにする
#dpkg-divert --local --rename --add /etc/init.d/udev
#cp /etc/init.d/udev.distrib /etc/init.d/udev
コピーした /etc/init.d/udev の最初のコメントブロックの後に以下の行を追加。
exit 0 ←この行を追加
日本語ロケールを入れる(お好みで)
よく使いそうなコマンドをいれておく(お好みで)
ユーザーの追加と必要権限の追加
#adduser -u 2000 ichinomoto
sudoを使えるようにしておく
#sudo gpasswd -a ichinomoto sudo
Androidホスト側のgroupを追加。これをしないとネットワークとBTが使えないとのこと。
#groupadd -g 3001 aid_net_bt_admin
#groupadd -g 3002 aid_net_bt
#groupadd -g 3003 aid_inet
#groupadd -g 3004 aid_inet_raw
#groupadd -g 3005 aid_inet_admin
#gpasswd -a ichinomoto aid_net_bt_admin
#gpasswd -a ichinomoto aid_net_bt
#gpasswd -a ichinomoto aid_inet
#gpasswd -a ichinomoto aid_inet_raw
#gpasswd -a ichinomoto aid_inet_admin
一度作成したユーザーになってみます。
特に問題無ければOK。
環境から抜けてアンマウント
#exit
chroot環境からホストに復帰。
ファイルをアンマウントする
$sudo umount $UBUNTU/proc
$sudo umount $UBUNTU/sys
$sudo umount $UBUNTU/dev/pts
$sudo umount $UBUNTU/dev
$sudo umount $UBUNTU
これで停止まで完了。
ubuntu.imgをZenPadで使用するSDカードにコピーしておきます。
ベース環境はできたので、あとはZenPad上でchrootしてGUI環境を作ったり使用したいソフトを入れるなどします。
それはまた次で。
あのーlinux環境が作れないので、ubntu.imgをもしよければくれませんか?おねがいします
自分用設定しまくったイメージしか無いので提供はできませんが、virtualboxと配布されているubuntuのイメージを使えばMac上でもwindows上でも簡単にlinux動かせるのでこの中で作ると良いかと思います。
https://www.ubuntulinux.jp/download/ja-remix-vhd
ありがとうございます
お手数おかけして申し訳ございません
ところで、イメージは出来ましたが、ここからどうするのですか???
できたイメージをSDカードに入れてzenpadのターミナルからchrootすることになります。
イメージ作成時にubuntu上でchroot環境に入ったのとほぼ同じ手順です。
そのままだとGUIが使えないのでXを使えるようにするとかを次で書いてはいるんですが、まとまった時間がとれずに書きかけのまま止まっていて公開できていなかったり…
横槍失礼します
/etc/init.d/udevが編集できないのですが…
確認しましたが、ファイル自体は編集できないということはないはずです。
エディタが無くて編集できないようであれば、
apt-get install vim
等としてエディタを入れて編集してください。
もしくは一度chrootから抜けて外から編集しても良いかと思います。
先の方のおっしゃるように、イメージください!
どうかこのとおりお願いします!