Hatena::ブログ(Diary)

iomzion

April 06(Tue), 2010

[]Ubuntu9.10にWindows 7を導入する手順 22:45

私のiPhoneはいわゆる新ブートRom搭載なのでTethered Jailbroken状態にある。再起動する度に母艦からbrackraInやSnowBreeze等でロードする必要がある。普段はUbuntu機を持ち歩いているので、出先でリブートが掛かるとリロード出来ずにiPhoneが使いものにならなくなってしまう。

なのでWindows 7を入れてデュアルブートにしてみた。WindowsにUbuntuを入れる場合は正常にブートローダが構築されるが、逆にUbuntuにWIndowsを入れた場合は起動時に複数のOSを選択出来るようにブートローダ(ここではGRUB2)を再インストールしなくてはならない。

  1. UbuntuでWIndows用のパーティションを作り、NTFSにフォーマットする。
  2. ついでにデバイスとパーティションナンバーも確認しておく。
  3. 作ったパーティションにWIndowsをインストール。
  4. Ubuntu Desktop LIVE CDからUbuntu Desktopを起動する。
  5. GRUB2を再インストールする。

○必要なもの

  • CD/DVDドライブ
  • Ubuntu Desktop LIVE CD

0. 準備

Terminalを開いて

grub-install -v

GRUBのVersionを確認する。Ubuntu 9.10はデフォルトでGRUB 1.97~beta4なので、一応バックアップをとっておく。

sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old
  • ここで一度GRUB 0.97に戻しておくと安定するかもしれないが、どちらでもいいと思う。なので以下は任意。

GRUBをパージ

sudo apt-get purge grub2 grub-pc

ここでブートローダー不在のワーニングが出るのでGRUB 0.97をインストール&menu.lstの作成

sudo apt-get install grub
sudo update-grub

Ubuntuが入っているデバイスを/dev/sdaとして、(パーティションナンバーは含めない)

sudo grub-install /dev/sda

1. GPartedでパーティションを作成

今回使用したハードディスクは60GBだったので5GBをスワップ用のロジカルドライブ、30GBをUbuntu、25GBをWinsows用に割り当てることにした。

BIOS画面でブートデバイス選択に入り、適切なドライブを選択して"Try Ubuntu without any change to your computer"。System>Administration下のGPartedでパーティションを構築する。各割り当て領域が大き過ぎず小さすぎないように慎重にやる。

2. Disk UtilityでNTFSにフォーマット

Windowsを入れるパーティションはNTFSのファイルシステムを使用するのであらかじめNTFSにフォーマットしておく。

3. 1.か2.のどちらかでLinux,Windowsのデバイス名を確認しておく。

ex)/dev/sda5 /dev/sdb1 など

4. Windowsをインストールする

Ubuntu LIVE CDと同様にWindows 7を起動する。Custom Installを選び1.-3.で作成したWIndows用のパーティションにインストールする。

5. GRUB2の再インストール

Windowsが正常に起動することを確認したら、もう一度Ubuntu Desktop LIVE CDから起動し、Terminalを開いて、Ubuntuが入っているデバイス(/dev/sdXYとする)をマウントする。

sudo mount /dev/sdXY /mnt

UbuntuをrootとしてGRUB2を再インストール(後ろの/dev/sdXにはパーティションナンバーを含まない)

sudo grub-install --root-directory=/mnt /dev/sdX

アンマウントする

sudo umount /mnt

/boot/grub/grub.cfgの更新

sudo update-grub

ハードディスク内に入っているOSを自動的に探してGRUB2に登録する。こんな感じになるはず

Generating grub.cfg ...
Found Debian background: Varun_Pramanik_GRUB2.png
Found linux image: /boot/vmlinuz-2.6.31-20-generic
Found initrd image: /boot/initrd.img-2.6.31-20-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda2
done

6. 仕上げ

再起動してもまだブート画面はGRUB 0.97のままだと思うので、ここ等を参考にGRUB2にチェインロードしていく。といっても起動させるUbuntuパーティションの先頭にある"root"を"uuid"に変えるだけで出来ると思う。後はUbuntuに戻って

sudo upgrade-from-grub-legacy
sudo update-grub

で終了。


  • 参考サイトまとめ

Grub 2 Basics - Ubuntu Forums

How To Install GRUB 2 On Ubuntu 9.04 | HowtoForge - Linux Howtos and Tutorials

GParted -- About

Page Not Found - GNU Project

March 11(Thu), 2010

[]UbuntuとPdaNetのUSB Modeを使ってデザリング 17:28

  • はじめに

ソフトバンクはiPhoneのテザリング機能を許可していないため、iPhoneをテザードモデムとして使うことは自己責任で行ってください。

――iPhone 3G Sはパソコンからインターネットに接続する際のモデムとして利用できるテザリング機能を備えているのに,日本では利用できない。理由は何か。

iPhoneのユーザーは一般ユーザーの10倍のパケットを使う。そこにテザリング機能を利用可能にしたら,100倍,200倍のパケットを使う人が出てくるだろう。定額料金でデータ容量が増えるのは投資効率が悪い。一部のユーザーが求める機能を提供するために,100人分の帯域を占拠させるのは,他のユーザーに申し訳ない。通信料金が青天井ならばテザリング機能も容認する。欧米でもその例が多いようだ。

「iPhone 3G Sのテザリング機能は定額料金では成り立たない」,ソフトバンク株主総会より:ITpro

JailBreakしたiPhoneも無保証です。


  • PdaNetとUbuntu

JailBreakしたiPhoneはCydiaを通じて多数あるApple非認可のAppを利用出来たり、root権限を持つことによってOpenSSHやBluetooth等を使ってiPhoneの中身を参照・改変が可能になります。


PdaNetはiPhoneをモデム化することにより、圏外以外のどこからでも手軽に外部デバイス用のインターネット環境を得ることが出来ます。リリース当初は「充電しながらでもバッテリーが減っていく」という電力消費凄まじき猛々しいアプリでしたが、現在では改善され、iPhone自体の性能向上とともに何ら問題なく使うことが可能になりました。


PdaNetをワイヤレスルーターとして使う場合、AdHocネットワークを構築できるデバイスならそのままWiFiとして繋げられますが、USB経由で接続したいときはデスクトップクライアントソフト(参照)を使うことになります。USB ModeのPdaNetはiPhone側とクライアント側に分かれ、クライアント側はPPPフレームをやり取りさせる偽装ドライバーの役目を持ちます。iPhoneをインターネットデバイスとして‘誤認識’させてパケット通信を行うわけです。


しかし、このクライアントソフトはWindowsとMac用のリリースしかないので、Ubuntuでどうにか動くようにできないかと探していたところ、umux2007.py(参照)というPythonスクリプトを作った方がいらっしゃったので、PdaNet USB Mode on Ubuntuの手順を日本語でもまとめておくことにしました。


Ubuntu Forumのわかりやすい英語版はこちら。

[ubuntu] PdaNet tethering w/iPhone and Ubuntu Working! - Ubuntu Forums


  • 必要なもの ( )内は今回私が使用した環境

  1. jailbreak済みiPhone (3G S OS3.1.2)
  2. Ubuntu (9.10 Karmic Koala)
  3. PdaNet (Version 1.61)
  4. usbmuxed (Version 1.0.1 https://launchpad.net/~jonabeck/+archive/ppa)
  5. python-twisted
  6. umux2007 (http://xzrq.net/umux2007/umux2007-0.0.1.tar.gz)

  • 手順

1. iPhoneへPdaNetをインストール

Cydiaから普通にインストールする。


2. Ubuntuへusbmuxdをインストール

Terminalから

sudo add-apt-repository ppa:jonabeck/ppa
sudo apt-get install usbmuxd

Launchpadのリポジトリ追加はKarmicから一行で済むようになって便利!


3. 同じようにpython-twistedのインストール

sudo apt-get install python-twisted

4. umux2007をインストール

curl -O http://xzrq.net/umux2007/umux2007-0.0.1.tar.gz
tar -zxvf umux2007-0.0.1.tar.gz
cd umux2007-0.0.1/
sudo ./install

5. インストールを確認する

iPhoneでPdaNetを起動し、右下のSettingsからUSB Modeを選択しUbuntu機と接続する。

Terminalでumux2007.pyを実行して、

2010-03-10 17:16:43+0900 [-] Log opened.
2010-03-10 17:16:44+0900 [-] usbmux connected (fd 7, pid 8943)

こんな感じになったらオッケー。Ctrl + C で戻ります。


6. 接続する

あとは

sudo pon umux2007

だけで作業は終わり。

notification area等を使っている人はGUIでの接続確認が出来ていないかも知れませんが、バックグラウンドで接続出来ている筈です。

切断するには

sudo poff

7. おまけ

一応は繋がるものの、長いタイムアウトになることがあるようです。glibcがiPhoneをIPv6をつかうインターネットデバイスとして認識してしまう(iPhone+PdaNetのIPアドレス規格はIPv4です)ので出したAAAAクエリがタイムアウトしてしまいます。手動で直す必要があります。

sudo ip addr del ::1/128 dev lo

アプリケーションの設定でも同様の事態が起こり得ます。

例えばfirefoxであればabout:configから'network.dns.disableIPv6'を有効にしましょう。


  • 参考サイトまとめ

[ubuntu] PdaNet tethering w/iPhone and Ubuntu Working! - Ubuntu Forums

umux2007: iPhone USB tethering under Linux

PPA for Jonathan Beck : Jonathan Beck

PdaNet -- Use your iPhone as a Wireless Router for your PC/Mac