BIND9 からの卒業 – PowerDNS 3.0 編

BIND9  の脆弱性の対応に疲れた今日この頃、
なぜ BINDを使っているのか自問自答して欝になりかけた日もある(嘘)

そんなこんなで、 BIND9 との決別を決めた。

次の相棒は今 最もホットでナウい PowerDNSNSD4 (beta)
この Post では PowerDNS にフォーカスする。

0. 検証環境

CPU : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz stepping 07

Memory : DDR3 1333 NonReg ECC 16GB

HDD : 146GB 15000rpm SAS RAID 1

OS : Ubuntu 12.04.2

DNS : PowerDNS 3.0

DB : MySQL 5.5.29

 

1. 構築手順(メモ程度) 

  • MySQL と PowerDNS のパッケージインストール

# apt-get install pdns-server pdns-backend-mysql mysql-server mysql-client

  • MySQL にログインしてデータベースとテーブルを作る

# mysql -u root -p

mysql> create database pdns;

Query OK, 1 row affected (0.00 sec)
Create MySQL User

mysql> GRANT ALL ON pdnstest.* TO ‘pdns’@’localhost’ IDENTIFIED BY ‘hogehogepasswd’;

mysql> FLUSH PRIVILEGES;
Change Database

mysql> use pdns;
Database changed
Create Tables

mysql> create table domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
) Engine=InnoDB;

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

create table supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
) Engine=InnoDB;

mysql> quit;

  • コンフィグを編集

ここでは Masterでの動作を念頭において設定している。

# vi /etc/powerdns/pdns.conf

allow-axfr-ips=10.200.8.0/24  # <- AXFRできるネットワーク or IPアドレス
config-dir=/etc/powerdns
daemon=yes
default-soa-name=ns0.mykw.jp  # <- SOAレコードに書くDNSのホスト名
disable-axfr=no
disable-tcp=no
local-port=53
log-dns-details=yes
log-failed-updates=yes
logfile=/var/log/pdns.log
logging-facility=0
loglevel=4
master=yes
module-dir=/usr/lib/powerdns
negquery-cache-ttl=60
setgid=pdns
setuid=pdns
use-logfile=yes
version-string=powerdns
include=/etc/powerdns/pdns.d 

DB接続情報は別ファイルに分けて書く

# vi /etc/powerdns/pdns.d/pdns.local.gmysql
# MySQL Configuration
#
# Launch gmysql backend

launch=gmysql
gmysql-socket=/var/run/mysqld/mysqld.sock  # <-ローカルの DB 使うなら Socket 使った方が
gmysql-user=pdns
gmysql-password=hogehogepasswd
gmysql-dbname=pdns

これで一通り使う準備は完了。

 

2. 既存のゾーンファイルを SQL に変換

PowerDNS には zone2sql という便利な SQL 変換スクリプトが標準で用意されている。

BIND で使っていたゾーンファイルを以下の手順で変換・DBへの投入を行う。
素直に変換できないことが多いので、named.conf 調整しながら変換しよう。

  • ゾーンファイルを変換

# zone2sql –gmysql –dnssec=no –named-conf=/etc/bind/named.conf –start-id=1 > zone.sql

  • 変換したレコードをDBにぶち込む

# mysql -updns -phogehogepasswd pdns < zone.sql

  • 変換したゾーンに MASTER のフラグを立てる

これをしないと AUTOSERIAL が有効にならない。

# mysql -u pdns -phogehogepasswd -e “update pdns.domains set type=’MASTER’;”

詳しい説明については公式サイトの Wiki にお任せしよう。

http://wiki.powerdns.com/trac/wiki/Zone2SQLFAQ

 

これでお引越しは完了したはずだ。

 

3. 動作確認

適当に dig とかして動作確認をしてみよう。

ちゃんと回答が帰ってくれば動いているはずだ。

# dig @10.200.4.230 mykw.jp soa

ついでに dnsperf でベンチマーク

32110 行のクエリリストを食わせて 4thread でいじめてみた

  • PowerDNS
# dnsperf -c 4 -s 10.200.4.230 -d querylist -l 300
DNS Performance Testing Tool
Nominum Version 2.0.0.0

[Status] Command line: dnsperf -c 4 -s 10.200.4.230 -d querylist -l 300
[Status] Sending queries (to 10.200.4.230)
[Status] Started at: Fri Mar 15 18:01:29 2013
[Status] Stopping after 300.000000 seconds
n[Status] Testing complete (time limit)

Statistics:

  Queries sent:         33040355
  Queries completed:    33040355 (100.00%)
  Queries lost:         0 (0.00%)

  Response codes:       NOERROR 32976558 (99.81%), NXDOMAIN 63797 (0.19%)
  Average packet size:  request 36, response 52
  Run time (s):         300.000634
  Queries per second:   110134.283916

  Average Latency (s):  0.000890 (min 0.000144, max 0.431226)
  Latency StdDev (s):   0.001421

ちなみにBINDは以下のような結果になった。

  • BIND 9.8.1-P1

# dnsperf -c 4 -s 10.200.4.230 -d querylist -l 300
DNS Performance Testing Tool
Nominum Version 2.0.0.0

[Status] Command line: dnsperf -c 4 -s 10.200.4.230 -d querylist -l 300
[Status] Sending queries (to 10.200.4.230)
[Status] Started at: Sun Mar 31 00:28:16 2013
[Status] Stopping after 300.000000 seconds

[Status] Testing complete (time limit)

Statistics:

Queries sent: 58084969
Queries completed: 58084969 (100.00%)
Queries lost: 0 (0.00%)

Response codes: NOERROR 57898647 (99.68%), NXDOMAIN 112154 (0.19%), REFUSED 74168 (0.13%)
Average packet size: request 36, response 225
Run time (s): 300.003788
Queries per second: 193614.118632

Average Latency (s): 0.000313 (min 0.000227, max 0.060098)
Latency StdDev (s): 0.000382

 

 

4. まとめ

前項の結果でも分かるように BIND9 は意外に早かった。

とはいえ、今年も夏のアップデート祭り(予定)に参戦するのはイヤということで
しばらく自宅環境はPowerDNSで頑張ってみることにした。

ちなみに今回使ったマシンの前にはRAIDキャッシュなしのマシンで検証していたのだが、
スコアは半分ぐらいであまりふるわない成績だった。
SQL を使っているので Disk I/O に引っ張られる印象があるが、
update が多いようなアプリケーションではないので DISKが遅いマシンでも
querycache をたんまり盛ってあげればそこそこ捌いてくれそうな気がする。

SSDとかNANDフラッシュ系の高級ストレージって楽するという選択もありですかね。
空から iodrive か intel SSD 910 降ってこないかな。

Ubuntu 12.04 Desktop でEMOBILE GL04PをUSB接続してみた

昨今、S●ftbankやKD●Iなどの携帯電話キャリアがWifiのアクセスポイントをバラまいて、
有線回線へのオフロードを謀っておりますが、その影響でWifiのチャンネルが埋まってしまい、
いざというときにPocketWifiが使えないといったことが多くなってきた気がします。

※そもそもモバイルルータを持ち歩く人が多くなったせいもあるか。

WindowsもMacも使っていない私はUSBのドライバが用意されていないと思い込みで
数か月間EMOBILE GL04Pを使って来ましたが、勉強会・セミナーで不便を強いられることが
多くなってきたので、仕事をサボ(ry 快適環境を追い求めてみました。

手順は以下の通り。

1.ドライバのダウンロード

これが一番探すのに苦労した。

HUAWEIのサイトからLinux用ドライバを入手

http://www.huaweidevice.com/worldwide/downloadCenter.do?method=toDownloadFile&flay=software&softid=NDcwMzU=

 

2.ドライバの展開

なぜかZIPを展開するとtar.gzが出てくるのでさらに展開

$ unzip HUAWEI\ Data\ Cards\ Linux\ Driver.zip

$ tar xf Linux\ Driver\ 4.19.19.00.tar.gz

 

3.ドライバのインストール

インストーラがついているので、実行するとmakeが始まる

$ cd driver/

$ sudo ./install

4.再起動

再起動してGL04Pを接続するとNetworkManagerで認識しているはずだ。

あまりに簡単すぎてあれだが、ドライバを探すのに時間を費やしたので記録に残しておく。

Ubuntu12.04 DesktopでSynergyを自動起動で使いたい(メモ)

Linux版Synergyの導入手順メモ(For Ubuntu12.04)

http://sourceforge.net/projects/synergy2/

1. synergyをインストール

# apt-get install synergy

2. configを作る(ml115:server op740:client)

# vi /etc/synergy.conf
section: screens
ml115:
op740:
end

section: links
ml115:
left = op740
op740:
right = ml115
end

3. lightdm起動時に一緒に起動させる

# vi /etc/lightdm/lightdm.conf

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
#greeter-setup-script=/usr/bin/synergyc 192.168.2.80 ←クライアントとして使うとき(サーバのIP)
greeter-setup-script=/usr/bin/synergys -c /etc/synergy.conf  ←サーバとして使うとき

 

SETI@homeでCUDAをつかってみる (Ubuntu 12.04) その1

最近、某所の余ったりソースでSETI@homeに参加しています。(アカウントは昔から持っているのですが)

某チームのランキングも日に日にあがっていくので欲が出てきてもっと上位に食い込みたいなということで、
これまたあまったGPU(GeForce210という非力なビデオカード)でCUDAを使ってみました。
CUDAについては詳細を割愛します。

今回はとりあえずUbuntu12.04でのCUDA環境の構築手順をメモ程度に。
以下の作業はrootかつデスクトップサービスを落とすのでSSH(CLI)での作業を想定しています。

デスクトップサービスを落とす

# service lightdm stop

オープンソース版のビデオカードドライバをアンインストールして再起動

# apt-get purge nvidia*
# reboot

再起動したらnVidiaのUbuntu用のドライバをダウンロードする。
以下のサイトから自分のモデルにあったものを探す。

http://www.nvidia.com/object/unix.html

# wget http://us.download.nvidia.com/XFree86/Linux-x86_64/310.19/NVIDIA-Linux-x86_64-310.19.run

落としてきたドライバに実行権を与えて実行、終わったら再起動

# chmod +x NVIDIA-Linux-x86_64-310.19.run
# ./NVIDIA-Linux-x86_64-310.19.run
# reboot

 

CUDA5をインストール
下記サイトからインストーラをダウンロード
https://developer.nvidia.com/cuda-downloads

# wget http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_64_ubuntu11.10-1.run

実行権を与えて実行する

# chmod +x cuda_5.0.35_linux_64_ubuntu11.10-1.run
# ./cuda_5.0.35_linux_64_ubuntu11.10-1.run

いろいろ聞かれるがToolkitとTemplateはいらないのでインストールしなくてもいいらしい。

Screenshot_from_2012-12-12 22:43:44

これでGPGPUが使えるはず。

効果についてはその2を書く予定です。

 

 

X86Android 4.0 RC2 on KVM

表題のとおり、X86Android 4.0 RC2をLinuxKVMで動かしてみました。
NICまわりで手こずったのでメモメモ。

下記のサイトを参考に、Ethernet patchのあたったイメージを使用する前提で話を進めます。

http://www.webupd8.org/2012/07/android-x86-404-ics-rc2-released-with.html

イメージは以下のものを使用しました。(なかなかダウンロードできない)

http://www.sendspace.com/file/t5a3aj

ISOを用意して、virtinstallで普通にインストールします。
ポイントはNICをmodel=e1000にするところですかね。これでインテルNICをエミュレートしてくれます。

$ sudo virt-install \
–connect=qemu:///system \
–name android4.0 \
–ram 512 \
–disk path=/var/lib/libvirt/images/android4.0.img,cache=writeback,sparse=true,size=5 \
–cdrom=’/home/yutaro/iso/desktop_generic.iso’ \
–vcpus=1 \
–os-type linux \
–os-variant generic26 \
–network bridge=br0,model=e1000 \
–vnc \
–accelerate \
–hvm

インストールが終わったら、デフォルトで入っている「端末エミュレータ」で /etc/init.sh を編集して
起動時にIPアドレスをStaticで振るようにする。(GUIの設定画面は使えませんでした)
各種アドレスは自分の環境に合わせて設定してください。

$ su –

# vi /etc/init.sh
(略)
ifconfig eth0 [IP ADDRESS] up ;Androidゲストのeth0にIPをつける
route add default gw [GATEWAY ADDRESS] dev eth0 ;デフォゲを指定する
setprop net.dns1 [RESOLVER ADDRESS] ;リゾルバ(DNSキャッシュサーバ)を指定する

これで再起動するとネットワークにつながっているはず。
pingとかで確認してみましょう。

仕事中に眠くなってきたので
といった感じで遊んでみました。

 

ユーザ権限で virt-manager がが

デスクトップOSとしてUbuntuを使うとサーバとの連携がいろいろと楽でいいのですが、
まれにその連携がうまくいかないことがあります。

今回はユーザ権限で起動したvirt-managerでlibvirtdに接続ができなかったので
対応した内容をメモ書きで残しておきます。

0. 環境

OS:Ubuntu 12.10 Desktop

1. エラー内容

libvirt に接続できませんでした。

Verify that:
– The ‘libvirt-bin’ package is installed
– The ‘libvirtd’ daemon has been started
– You are member of the ‘libvirtd’ group

Libvirt URI is: qemu:///system

Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/connection.py”, line 1027, in _open_thread
self.vmm = self._try_open()
File “/usr/share/virt-manager/virtManager/connection.py”, line 1009, in _try_open
flags)
File “/usr/lib/python2.7/dist-packages/libvirt.py”, line 102, in openAuth
if ret is None:raise libvirtError(‘virConnectOpenAuth() failed’)
libvirtError: ソケットの ‘/var/run/libvirt/libvirt-sock’ への接続に失敗しました: 許可がありません

 

2. 対応内容

root@phenom:~# vi /etc/libvirt/libvirtd.conf

root@phenom:/etc/libvirt# diff libvirt.conf.def libvirtd.conf
88c88
< unix_sock_ro_perms = “0770”

> unix_sock_ro_perms = “0777”
98c98
< unix_sock_rw_perms = “0770”

> unix_sock_rw_perms = “0777”
101c101
< #unix_sock_dir = “/var/run/libvirt”

> unix_sock_dir = “/var/run/libvirt”

root@phenom:~# service libvirt-bin stop
libvirt-bin stop/waiting
root@phenom:~#
root@phenom:~# service libvirt-bin start
libvirt-bin start/running, process 4368
root@phenom:~#

 

デフォルトではソケットファイルが作られないので、
ソケットファイルを生成しつつotherに権限を与えてあげれば良いかと。

ただ、otherに権限与えるのがあまり好ましくない環境ではおすすめしません。
よくよく考えるとlibvirtdグループに実行ユーザ加えてあげればいいような・・・

Ubuntu 12.04 LTS で zfs その2

前回のzfs環境構築に続いてzpoolへのディスクの追加について
いくつか注意点があったのでまとめてみた。

以下のコマンドで基本的な操作が行える。

  • ディスク構成の確認

# zpool status

  • プールの作成# zpool create  [zpool name] [device name]
  • ディスクの追加

# zpool add  [zpool name] [device name]

  • プールの削除

# zpool destroy  [zpool name] [device name]

とてもシンプルで分かりやすい。
洗練されていますね。

ということで、自分のMicroServerにもディスクを追加してみた。

root@micro:/# zpool create  storage0 sda sdb

あっけなく終了。簡単過ぎる。
だが、ここに罠があった。

今回zpoolに追加したHDDはWesternDigital製のWD30EZRX(3TB)でした。
最近のHDDは大容量化のオフセットとして1ブロックあたりのサイズを大きくしているので、
それに合わせてフォーマットしてあげないと著しくパフォーマンスが落ちます。

AFT(Advanced Format Technology) ってやつですね。

なので、AFTなディスクをzpoolする際には以下のような引数を加えてあげるとフワフワっと
ブロックの開始位置とブロックサイズをしてくれます。

  • プールの作成(AFTなディスクの時)

root@micro:/# zpool create -o ashift=12 storage0 sda sdb

引数の有無でどれだけパフォーマンスの差が出るのか、試しに dd コマンドでベンチマークしてみました。

  • 引数なし(ブロックサイズ512Byte)
root@micro:~# zdb -C storage0 | grep ashift
                ashift: 9
                ashift: 9 ※ ashift: 9はブロックサイズ512Byte
root@micro:~#
root@micro:~# dd if=/dev/zero of=hogehoge bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 220.772 s, 47.5 MB/s
  • 引数あり
root@micro:~# zdb -C storage0 | grep ashift
                ashift: 12
                ashift: 12 ※ ashift: 12はブロックサイズ4KByte
root@micro:~# dd if=/dev/zero of=hogehoge bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 61.0622 s, 172 MB/s
開始位置とブロックサイズ適切にするだけで3倍速くなりました。
せっかく良いハードウェアを買ってもソフトウェア側の処理で最大限のパフォーマンスを
発揮できないと言う可哀想な自体は避けたいですね。

Ubuntu 12.04 LTS で zfs その1

自宅で使っているHP Proliant MicroServerが一台余ったので、(二台ある)
zfs使ってNASにすることにしました。

構成はこんな感じ。

  • Server : HP Proliant MicroServer (N36L)
  • OS : Ubuntu 12.04 LTS
  • System Disk (ext4) : CFD CSSD-SM64NJ2
  • Storage Disk (zfs)  : WesternDigital WD30EZRX *2

今回はrootからzfsにするnativeな構成ではなく、
OSを余り物のSSDに入れてハードディスクはストレージ用の
パーテーションとして別途分ける感じの構成にしてみた。

手順は至って簡単。ゆとり世代の私でも問題ない。

1. python-software-propertiesをインストール

root@micro:~# apt-get install python-software-properties

2. リポジトリを追加

root@micro:~# add-apt-repository ppa:zfs-native/stable

3. aptリストの更新

root@micro:~# apt-get update

4. zfsのモジュールをインストール

apt-get install ubuntu-zfs

これで準備は完了。
以下のコマンドで応答があればインストールは終わっているはずだ。

root@micro:~# zfs
root@micro:~# zpool status

ほらね?僕達ゆとり世代にもやさしい。

続いて zpool にディスクを追加してみよう。

(その2へつづく)

resolvconfd と dnsmasq と libvirt と unbound と私

※忘れそうなのでメモです。

私が会社で使っている作業用サーバはUbuntuのKVM上で動いているFreeBSDです。(ホストのUbuntuも使ってるけど)
気が向いたときにホストのapt-get update/upgradeをするのですが、たまにKernelのアップデートがくると
再起動をしなくてはいけないので、仕方なく再起動をしています。

この時点で resolv.conf を手書きで書き換えていたりすると、楽しいことが起こったりします。

Ubuntu12.04では resolv.conf  の管理を resolvconfd で行っていて、デフォルトではローカルで起動している
リゾルバ(dnsmasq) を参照するように、起動のたびに 127.0.0.1 を参照するように resolv.conf を書き換えてくれるという仕様になっています。

とても親切ですね。

私が仕事で使っている環境は同ホストで unbound を起動してキャッシュリゾルバとしても使用しているので、
dnsmasq が起動されると bind しているアドレス・ポートがかぶって unbound が起動しなかったりで
一筋縄には行かないのです。(dnsmasqの存在を意識していなかった)

ということで、「dnsmasq が邪魔なら dnsmasq を起動しなければ良い!」 という安直な考えに至り、dnsmasq を stop

root@mykw:/# /etc/init.d/dnsmasq stop
* Stopping DNS forwarder and DHCP server dnsmasq
…done.
root@mykw:/#

これで、安心だろ。
と、おもって KVM の FreeBSD (ゲスト)にログインするとネットワークがつながらない・・・
libvirt で仮想マシンを管理しているので、dnsmasq を切ってしまうとどうやら外に出られなくなるみたいだ(詳しくは調べてません)

「そうしたら  dnsmasq と unbound を共存させればいいんだろ?」という安直な考えに至り、 conf を編集

root@mykw:/# vi /etc/unbound/unbound.conf

server:
interface: 192.168.10.70

(略)

 

root@mykw:/# vi /etc/dnsmasq.conf

listen-address=127.0.0.1
bind-interfaces

これでデーモンを再起動すれば dnsmasq/unbound が共存できます。

ちなみに、前置きが長くなりましたが、ここからが本編です。
resolvconfd の挙動が良く分からなかったので今回はじっくり観察してみました。

Googleなんかで “ubuntu 12.04 resolv.conf” などと検索すると、
大抵のBlog記事は /etc/resolvconf/resolv.conf.d/ 以下のファイルを編集しろと書かれています。

root@mykw:/etc/resolvconf/resolv.conf.d# ls
base  head  original

ここで引っかかりました。
いくら編集して、resolvconfd/networking/server再起動しても  resolv.conf が思ったように書き換わらないので、
Ubuntuのマニュアルをよく読んでみた。

http://manpages.ubuntu.com/manpages/precise/man8/resolvconf.8.html

/etc/network/interfaces を編集すればよいことが判明。(ちゃんと書いてあるじゃん)
オフィシャルなマニュアルをちゃんと読まないと遠回りしてしまうんですね。

ということで  /etc/network/interfaces を以下のようにしてみた

auto br0
iface br0 inet static
address 192.168.10.70
network 192.168.0.0
netmask 255.255.0.0
broadcast 192.168.255.255
gateway 192.168.0.1
dns-nameservers 192.168.10.70 192.168.0.20 8.8.8.8
dns-domain hoge.com
dns-search fuga.net foo.com
bridge_ports eth0
bridge_stp off

iface eth0 inet manual

どうやら “dns-*” な行を読み取って resolv.conf を読みよってくれるようなので、
これでネットワークをリスタートして resolv.conf を見てみましょう。

root@mykw:/# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search choge.com fuga.net foo.com
root@mykw:/#

nameserver が 127.0.0.1 になっていますが、心配ありません。
dnsmasq がロードしている conf を参照すると以下のようになっています。

root@mykw:/# cat /var/run/dnsmasq/resolv.conf
nameserver 192.168.10.70
nameserver 192.168.0.20
nameserver 8.8.8.8

コレに気づかず30分ぐらい時間を無駄にしました。

ちなみに、 dnsmasq や unbound などのデーモンが起動していない(起動しない)環境では /etc/resolv.conf の
nameserver  は 127.0.0.1 ではなく、 /etc/networl/interfaces に書かれている dns-nameservers の値が明示的に入るようです。

親切というか、なんと言うか、今までの掟的なものが頭から離れないとハマること間違いなしですね。

Android 4.0.4 になった Xperia mini pro SK17a を rooted してみた

たまにリカバリしたときに root の取り方を忘れてしまうので自分のための忘備録。
もっと簡単なrootの取り方があるようでしたら教えてください。

ちなみにこの手順で文鎮化しても責任はとれませんので参考までに。

 

0. 前準備(前提条件)

1. fastboot で CWM を boot して su のバイナリをインストール

 

PC側の操作

コマンドプロンプトで以下のコマンドを実行

D:\SK17a>fastboot.exe -i 0x0fce boot recovery.img

SK17a側の操作

ClockWorkMod Recovery が起動したら以下の選択項目を選ぶ

– install zip from sdcard

– choose zip from sdcard

– su-bin-3.0.3.2-efghi-sined.zip

– Yes – Install su-bin-3.0.3.2-efghi-sined.zip

[戻るボタン]

– reboot system now

wktkしながら再起動を待つ

 

2. パッケージをインストール

起動後に以下のパッケージをインストール

Superuser

rooted環境では必須 Playストアからインストールして完了

 

Xperia CWM Auto-Installer

ClockWorkMod Recoveryが簡単にROMインストールできる

Playストアからインストール

Xperia CWM Auto-Installer を起動

CWMをインストール

CWM5をインストール

 

BusyBox

BusyBoxを簡単にインストールできる

Playストアからインストール

BusyBox Freeを起動

will be installed to を “/system/xbin” に変更してインストール

 

これで Android 4.0 のrooted環境が完成。とても簡単。
人柱になってくれた先人達に感謝。