ASUS ZenPad S8.0 chroot環境作成2 (仮想イメージ作成)

投稿者: | 2016年1月9日

参照元

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先イメージの作成

インストールのためのパッケージをホストに入れる

sudo apt-get install debootstrap

以降の説明でchroot環境は
/home/ichinomoto/ubuntu
以下に作るものとして環境変数に設定しておきます。適宜読み換えてください。

$mkdir /home/ichinomoto/ubuntu
$export UBUNTU=/home/ichinomoto/ubuntu

仮想イメージを作成してマウント

16GBの仮想ディスクを作成してフォーマット(サイズはお好みで)
$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

仮想ディスク内に新しい環境を構築

64bitのubuntu 14.04を入れる場合
$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 -o bind /dev/ $UBUNTU/dev/
$sudo mount -t devpts devpts $UBUNTU/dev/pts
$sudo mount -t proc proc $UBUNTU/proc
$sudo mount -t sysfs sysfs $UBUNTU/sys

必要ファイルのコピーなど

sources.listはホストの設定をコピー
$sudo cp /etc/apt/sources.list $UBUNTU/etc/apt/sources.list

以下のコマンドでchroot環境に入る

$sudo chroot $UBUNTU /bin/bash

ここから下はchroot環境下です。

chroot環境下での初期設定

nameserverの設定は上で書いたsource.listのようにホストから持ってきても良いですが、public dnsにしておきます。

#echo "nameserver 8.8.8.8" >> /etc/resolv.conf

まずアップデートを適用して最新状態に更新

#apt-get update
#apt-get upgrade

ここで、Androidの場合udevとupstartが無く問題になるということなのでdpkg-divertで、更新されても上書きされないようにしてダミーファイルにおきかえます。
実際Androidがホストだとudevとupstartが動いていないので、ZenPadでchroot環境に入ってapt-getした際にエラーが出ます。
以下はNexus10でchroot環境を作るサイトにならったものです。
通常のPCでchroot環境を作る際にはこの置き換えは不要です。

initctlをtrueコマンドに置き換え
#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 の最初のコメントブロックの後に以下の行を追加。

### END INIT INFO
exit 0            ←この行を追加

日本語ロケールを入れる(お好みで)

#apt-get install language-pack-ja

よく使いそうなコマンドをいれておく(お好みで)

#apt-get install sudo vim less openssh-server bash-completion rsync

ユーザーの追加と必要権限の追加

android環境でchrootすると番号がかぶるのでuidを指定しておく。とりあえず2000を指定。
#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

一度作成したユーザーになってみます。

#su ichinomoto

特に問題無ければOK。
環境から抜けてアンマウント

$exit
#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環境を作ったり使用したいソフトを入れるなどします。
それはまた次で。

ASUS ZenPad S8.0 chroot環境作成2 (仮想イメージ作成)」への8件のフィードバック

  1. 匿名

    あのーlinux環境が作れないので、ubntu.imgをもしよければくれませんか?おねがいします

    返信
  2. ichinomoto 投稿作成者

    自分用設定しまくったイメージしか無いので提供はできませんが、virtualboxと配布されているubuntuのイメージを使えばMac上でもwindows上でも簡単にlinux動かせるのでこの中で作ると良いかと思います。
    https://www.ubuntulinux.jp/download/ja-remix-vhd

    返信
  3. 匿名

    ありがとうございます
    お手数おかけして申し訳ございません

    返信
  4. 匿名

    ところで、イメージは出来ましたが、ここからどうするのですか???

    返信
  5. ichinomoto 投稿作成者

    できたイメージをSDカードに入れてzenpadのターミナルからchrootすることになります。
    イメージ作成時にubuntu上でchroot環境に入ったのとほぼ同じ手順です。

    そのままだとGUIが使えないのでXを使えるようにするとかを次で書いてはいるんですが、まとまった時間がとれずに書きかけのまま止まっていて公開できていなかったり…

    返信
  6. huro

    横槍失礼します
    /etc/init.d/udevが編集できないのですが…

    返信
  7. ichinomoto 投稿作成者

    確認しましたが、ファイル自体は編集できないということはないはずです。
    エディタが無くて編集できないようであれば、
    apt-get install vim
    等としてエディタを入れて編集してください。
    もしくは一度chrootから抜けて外から編集しても良いかと思います。

    返信
  8. huro

    先の方のおっしゃるように、イメージください!
    どうかこのとおりお願いします!

    返信

コメントを残す

メールアドレスが公開されることはありません。