VirtualBoxへUbuntu11.04

VirtualBoxも,Ubuntuも,かつて使っていたソフトなりOSであるが,すっかり使い方を忘れてしまった.
ハマったポイントを改めて書いておく.

  • Ubuntu serverを入れる場合,日本語を選択すると後で言語設定をやりなおすハメになるので,Englishを選んでおく方が無難.
    X入れる場合は気にしなくていいけど.
  • インストールが終わったら,まずはGuest Additionsをインストールすること.
    具体的な手順は,

    1. ゲストOS起動
    2. デバイス>Guest Additionsをインストール
    3. sudo mount /dev/cdrom /mnt
    4. sudo /mnt/VBoxLinuxAdditions.run
  • ネットワークアダプタの設定を,「ブリッジアダプタ」または「ホストオンリーアダプタ」あたりにして,ホストとの直接通信が可能なようにする.
    しなくてもwwwには接続できるけど,不便で仕方がない.
  • sshd_configで,passwordloginをyesにしておく

これだけやっておけば,普通にLAN上に新しいUbuntuサーバを立てたのと同じところからスタートできるはず.

Android 2.2から1.6へ

軽いと噂のCM6.1を使っていたが,やっぱHT-03aでは重いので,Android1.6を導入することにした.

今回は,Super D 1.11 non ram hack
こいつの導入にあたっては,いくつか注意がある.

Super D は1.5くらいから,SDカードのswapパーティションに対応しており,
ちゃんとパーティションを切ってやらないと動かないため,
まず,リカバリーイメージをアップデートしてSDカードにパーティションを切れるようにすること.
DRC83_base_defanged.zipから導入すること.
更に,b-mobileのSIMを挿す場合は,libhtc_ril.soを差し替えること.

導入にあたって参考にしたページはここ→HT-03a カスタムROM導入ログ-vol.1「初期設定とGoldcard作成」 « Midnightjapan
b-mobile対応にあたって参考はこちら→Android 1.6でbmobileが動いた « コムギドットネット

  • ここから,recovery-RA-sapphire-v1.7.0G.imgを落として,SDカードへコピー
  • Android SDK を導入して,
    > adb shell
    $ su
    # flash_image recovery /sdcard/recovery-RA-sapphire-v1.7.0G.img
    

    として導入.

  • 一旦電源を落とし,Homeを押しながら起動してリカバリーモードから
    「Partition sdcard」を選択し,[swap:32MB/EXT2-size:512MB/FAT:Remainder] でフォーマット
    「SD:ext2 to ext3」を実行してext3フォーマットに変換.
  • 再起動後,別のSDカードにDRC83_base_defanged.zip,SuperD v1.11 をコピーし,この順番で導入
  • パーティションを切ったSDカードを差して起動

ubuntu 10.04 (8.10以降) へ slapd (OpenLDAP) を入れて使えるようにする.その1

すんません.まだ途中なんで,「その1」です.
せっかく設定しかけていたのに,後述の Setting up LDAP Server を見ている途中で,OpenLDAP Server (10.04) を見付けて萎えたので,続きはまた明日.

インストール

次を実行.

$ sudo apt-get install slapd ldap-utils
$ sudo dpkg-reconfigure slapd

hadacchi の環境では,こう聞かれる.

  • 設定を省略しますか?
    • いいえ
  • slapd をパージ (apt-get purge slapd) した時にデータも消しますか?
    • 次からの設定ミスっても,まだ使い方知らなくて復帰させられないので,緊急時に入れ直せるように→「はい」
  • LDAPv2 を使いますか?
    • 使うつもりなので→「はい」

設定

(ドキュメントタイトルが全部同じため,紛らわしいので,カッコ書きでバージョンを入れる.)
OpenLDAP Server (10.04)を見て,明日頑張る.
help.ubuntu.com で検索してトップに出てくる OpenLDAP Server (old) というドキュメントは 8.04 以前の解説のようなので注意.
8.10 以降では /etc/ldap/slapd.conf がない.
また,その古いドキュメント中で参照している OpenLDAP Server (9.10) は間違えているっぽいので注意.
フォーラム 442498 とか,フォーラム 459403 とかで議論されているので, 2009.10 時点でガイドに問題があったようだ.
具体的には,インストール時に admin passwd を聞かれなくなったので,ldapsearch のコマンドが通らない.
9.10 の人は Setting up LDAP Server を見るといいかも知れない.
2009.10 時点での解決策が示されている.

あー,時間を無駄にした.

android phone に差した microSD カードへ swap ファイルを作ったまま USB 経由で PC からマウント

HT-03a での話.
microSD カード上に swap ファイルを作ったまま,USB で PC につないでマウントしてしまうと,アンマウントした時に正しく microSD を認識できなくなるよ,っていう当然の話.
このようにマウントされた microSD カードを PC からアンマウントすると「SD カードが破損しています」的なメッセージが出る.
こうなると,携帯の再起動しかない.
マウント前に swap を解除すれば済むという簡単な話なのだが,この点を警告している swapper 導入解説サイトを見たことがないので,困った人が検索で辿りつけるように書いておく.

きっと,microSD のパーティションを切って swap partition を作ればいいんだと思うのだが,パーティション切るのも面倒だし,失敗した時に戻すのも面倒そう.
試した人がいたら教えてくだしぃ.

何言ってるか分からない人のために,ちょっとだけ解説.

OS ダウングレード
swap ファイルを作るには,Android OS の root 権限を取るための su コマンドを使えるようにしないといけないが,普通に操作していてもできない.
Android OS のバージョンが 1.6 の場合,頑張ってもできないので,OS を入れ直す必要がある.
「Android 1.6 1.5」とかで検索すると,多分情報が見付かります.
ある意味,HT-03a という製品をソフト的にぶっ壊す操作をするので,動かなくなっても泣かないこと.
最悪,起動しなくなる.なったから焦った いやぁ,試すわけないじゃん,HAHAHA.
root化・swap 導入
OS の上書きが終わったら,root 権限を取るソフトを落とすか,コマンドラインを叩いて root 権限を取る.
どう考えても前者のが楽.
奇跡的に Android 1.5 のまま使ってる人がいたら,この手順からやることになるハズなので,すげー楽なんだろうきっと.
root 権限が取れたら,swapper を入れるなり,OS をもう一度上書きして 1.6 にして swapper2 を入れるなりでできるもより.

もちろん,試してませんけどね.

ところで,linux の運用の延長みたいに考えると,swapper2 標準の 32MB で swap ファイル作っても心許ない.
しかし,これは本当に試していないが,128MB とかそれ以上を確保しようとすると失敗するという話もある.
HT-03a の公称 192MB は諦めて,ソフトウェアから見える 96MB くらいが丁度いいんじゃないだろうか.

それはさておき,どうせ OS の上書きするんだったら,軽量版を入れたらそもそも swap なんていらないんじゃないの,とか
いくらフラッシュメモリ上に作るったって,swap ってソフトウェアの軽量な動作と直接は関係ないんじゃないの,とか
いろいろ疑問は尽きません.
いやいや,後者については,GC が減るから軽く感じるとかそういうことなのだろうか…?

putty とか pscp とか

Win の Firefox のブックマークとかを自動で自宅などと同期させたいのだが,Win から FTP で Proxy を越えて自動同期するいいソフトが手元にない.
ffftpは無理っぽいし,かといってソフトを探すのも面倒だ.
と思ったが,よく考えたら putty についてる pscp を使えば,proxy 越しにファイルを転送できるんじゃねーの,ってことに気付いた.
で,以降はメモ.
追記:
※この方法だと,必ず上書きしてしまうという欠点があった.ftpで上書き確認を機械的にする方法あるのかなぁ?

putty をコマンドラインから呼び出して,登録してある公開鍵を使う方法.
putty -load sessionname

pscp で,puttyに登録してあるホストにコピーする場合.
pscp localfile sessionname:path

pscp で -load がいらないのは何故なんだぜ?
まぁ,備忘に.

ubuntu のコマンドラインからゴミ箱に捨てる,とか

できるんだろうなぁ,と思っていたが,やっぱできるらしい.
ubulog: ubuntuのゴミ箱をコマンドラインから操作する

delコマンドという記事で, /home/user/Dustbox というディレクトリを作って,
そこにいらないファイルを移動し,削除時刻を付与するというスクリプトを作ったことがあった.
でもこの方法だと,linux のウィンドウマネージャのゴミ箱とは別の管理になるし,過去に消したファイルを復活させられないし,と不便があった.
また,ウィンドウマネージャのゴミ箱を使えば,内容物があるかないかをウィンドウマネージャ上にアイコンで表示させることもできる.
このアイコンにさっき気付いて,真面目に作られているゴミ箱機能をコマンドラインから使えればいいなぁと,思って調べた.

ubuntu なら, sudo apt-get install trash-cli で入る.
使い方はこんな感じ.
詳しくは,manを見れば丁寧に書かれている.

  • trash hogehoge: hogehoge というファイルをウィンドウマネージャのゴミ箱に捨てる
  • empty-trash: ゴミ箱を空にする
  • list-trash: ゴミ箱の中身を一覧表示

ubuntu を 10.04 にしたら,phpが動作しなくなった

ubuntu を 10.04 にしたら,php もアップグレードされ,php5.3.2-1ubuntu4.1 になった.
すると,php ファイルにアクセスしたところ,application/x-httpd-php という MIME は認識しているが,ダウンロードダイアログが出てきて,php のページが表示されない.
というかこのままだと,php のソースファイルが丸見えなので非常に危険.

対策:
/etc/apache2/mods-available/php5.conf を編集して,下記をコメントアウト(行頭に「#」を入れる)する.


つーかこのアップグレード,罠じゃねーのっていうくらい危ないんじゃ.

VirtualBox上のUbuntu 9.10 を 10.04 へアップグレード

serverとdesktopの両方でやってみた.
半日くらいハマった.
下にはやったこととか書いているが,server版が復活しないとメイルが読めない状況だったので,実はかなり焦っていた.

長々と書いたが,こう書いておけば,誰か困って検索して辿りつく人がいるかも知れない.
そして,困って辿りついたのに,やっぱり困ったままの人よ.メンゴ.

今回のサマリ

  • ubuntu のアップグレードで応答がなくなるが,放置すればそのうち始まる
  • 仮想OSをアップグレードする時は,仮想マシンのソフトをまず最新にする
  • アップデート前には仮想hddごとコピーをとっておく

起こったこと

ubuntu の upgrade のトラブル
ubuntu のアップグレードが初めてだったので(前回はisoを落として入れ直した),まずそこでハマった.
アップグレードをかけると応答がなくなるが,それは何かを DL しているだけで,異常ではないようだ.
固まったか区別つかないので,メッセージをちょっと出してくれると嬉しかった.
やった手順 (ubuntu の upgrade)
  1. パッケージを全て最新にした.カーネルも最新に
  2. アップデート・マネージャ で,10.04 へのアップグレードを実行するも,応答がなくなる…(実は異常ではなかった)
  3. ターミナルエミュレータで ``printenv | grep proxy`` すると,設定した覚えのない HTTP_PROXY HTTPS_PROXY https_proxy の設定が,IP アドレスではなく URL で設定されて出てくる
  4. ホームのファイルを grep かけても出てこないので,GUI の NW 設定ツールを見てみると,確かに設定している.全部,IP アドレスに直す
  5. やっぱり応答がないので,ムカついて放置 ← 30分くらい放置すると応答が帰ってきた.後でサーバ版をアップデートする時に,バックで ubuntu 10.04 の iso を同時に落としてみたら,ほぼ同時に終わったので,それと同等のデータを落としていたんじゃないかと妄想
  6. 何度かインタラクションして,アップグレード完了.この時,時間節約のために server
virtualbox のトラブル
仮想OS をアップグレードすると,ハードウェアまわりが対応してなかったのかドライバが対応してなかったのか,モニタ設定がおかしいと警告が出て,うまく表示されなかった.
server 版にいたっては,画面に何も表示されない状態に陥った.
仮想マシンのソフトを最新にすると,正しく起動するようになった.
やった手順 (virtualbox のトラブル)
  1. アップグレード後の再起動で,画面設定のエラーが出る (desktop)
  2. アップグレード後の再起動で,黒い画面のまま何も表示されなくなる (server)
  3. desktop の方は,ubuntu に virtualbox のディスプレイのモジュールが入ってないせいだろうと考え,Guest Additions を入れてみるが解決しない.
  4. virtualbox ついてくるドライバが,最新の kernel で動かないんだろうと思い,virtualbox 自体を最新のものにすることにする
  5. virtualbox の更新時,ホストOS の NW I/F と仮想I/F のブリッジまわりで,エラー. NWブリッジを削除して再度実行すると,うまくいった
  6. 以前に virtualbox を多重にいれてしまったため,1つしか作っていない仮想I/F が2つ表示されてしまい,レジストリから手で消したつもりだった I/F が何故か復活していたので,またレジストリを手で掃除する(実体がないので,コントロールパネルから消せない)
  7. 結局消せなかったので放置することにして,仮想OS を起動すると,とりあえず動くようになった.desktop版は,Guest Additions を入れないとシームレス表示できないので,入れる

Virtual Box の仮想OSを自動起動

Windows が再起動した時,Virtual Box で動かしているサーバも自動起動したい.
よくあることだが,知らないとできない.
参考:[blog] 西村誠一のパソコン無料サポートとオンラインソフト : Windows7の「XPモード」に対抗して、WindowsXPに「Linuxモード」(Ubuntuモード)を付けてみる

Virtual Box のコントロールパネルは,通常は
"C:\Program Files\Sun\xVM VirtualBox\VirtualBox.exe"
である.
ここにオプションとして
-startvm "VM名"
をつけるだけ.

追記(備忘録):
共有フォルダを自動マウントするには,
VBox のコントロールパネルから設定して,Ubuntu の /etc/rc.local を編集する.

Ubuntu server 9.10 32bit を入れたら GRUB が Error を吐いた

普通に最小インストールしたら,起動時に GRUB がエラーを吐いた.

GRUB loading
error: no such disk

色々調べた結果,この問題は LVM を使う自動パーティショニングを使ったのが原因であった.
GRUB のフォントが /usr 以下にあるのに, /boot 以外が LVM に格納されてしまう.
そして GRUB は LVM に対応していない(GRUB 2 は LVM に対応しているという話も検索すれば出てくるが,ともかく普通にインストールされる GRUB ではエラーが出る)

なら,さも使ってくれと言わんばかりに,最初からカーソルを LVM を使って自動パーティショニングする選択肢へ合わせないで欲しい