VirtualBoxをCUIで使う
とりあえず、CUIでゲストOSをインストールするまでのメモです。
VirtualBoxはインストールされているのが前提です。
CUIの操作では VBoxManage コマンドを使用します。
以下の例は、Ubuntuをインストールする時のログから作成しています。
環境:
ホストはFreeBSDで、VirtualBoxはportsからインストール。
バージョンは 3.2.12。
ゲストの画面表示はVNCを使用する。
仮想HDDの作成
# VBoxManage createhd --filename ubuntu --size 20000 --remember
VM定義の作成/設定
# VBoxManage list ostypes # VBoxManage createvm --name ubuntu --ostyle Ubuntu --register # VBoxManage modifyvm ubuntu --memory 768 --vram 16 --acpi on --ioapic on --hwvirtex on --nestedpaging on -- cpus 1 --boot1 dvd --boo2 disk --nic1 bridged --nictype1 virtio --cableconnected1 on --bridgeadapter1 re0 --macaddress1 auto
list ostypes でOS定義をしらべて、createvm の ostype オプションに指定する。
設定補足:
VMにHDDをセット
# VBoxManage storagectl ubuntu --name ide --controller PIIX4 # VBoxManage storageattach ubuntu --storagectl ide --port 0 --device 0 --type hdd --medium ubuntu.vdi
VMにインストールディスクをセット
# VBoxManage openmedium dvd /path/to/installdisc.iso # VBoxManage storageattach ubuntu --storagectl ide --port 1 --device 0 --type dvddrive --medium /path/to/installdisc.iso
openmedium は 4.0 からは不要らしい。
起動
nohup VBoxHeadless -s ubuntu -n -m 12345
オプションの -n でVNCを有効にし、-mでポートを指定。
VBoxHeadless コマンドで起動する場合は、プロセスがシェルから切り離されないので nohupコマンドで起動する。
VBoxHeadless で起動した場合は、 VBoxManage で設定を変えることは出来ない模様。
VBoxManage startvm ubuntu --type headless
で起動すると、デーモン化されるらしいが、VNCサーバを有効にするオプションは不明。
起動後はリモートからVNCビューワで接続後は、GUIでインストールする場合と同じ。
同じ方法で、Windowsもインストールできることを確認。
ただし、GuestAdditionsをインストールするまではマウスの位置がずれる模様。
ADT plugin がStackOverFlowError
Androidを趣味でいじる毎日ですが、
昨日、突如として、
layout.xmlをひらくと、以下のエラーがでるようになりました。
java.lang.StackOverflowError
at java.util.HashMap.get(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
・・・(以下繰り返し)
まっさらなeclipseにプラグインを入れただけでも同様のエラーがでるという怪現象です。
Android SDKの方がおかしくなってるのかな。。。
追記:
プロジェクトが壊れて(?)ましたorz
原因はよくわからないんですが・・・。
おかしいプロジェクトを取り除けば元通り。
BitLockerとダイナミックディスクの併用はできない?(Windows7)
500GBのディスクが2つあまったので、ダイナミックディスクでミラーリングをしてみました。
その上で、BitLockerで暗号化しようと思ったら、「暗号化不可能」とexplorer上で表示されました。
コントロールパネルのBitLockerからも該当のディスクは表示されていません。
※環境は Windows7 x64 Ultimate です。
シンプルボリュームからミラーボリュームまでいろいろ試してみましたが、どれもだめでした(当然ながらRAID-5はやってない)。
ダイナミックディスクにした時点でアウトのようです。
ただ、「見かけ上」出来そうな状態に見えるやり方を発見。
ベーシックディスクのままパーティション作成し、領域の拡張でもう1つのHDDをスパンボリューム化すると、explorer上、BitLockerの状態は「無効」となり、使用できるように表示されます。
当然、BitLockerを実行しようとするとエラーが表示されて出来ません。
めんどくさいので確認してませんが、たぶん、再起動したら「暗号化不可能」ってでるんでしょうね。
ま、BitLocker使って、ミラーリングやりたいならハードウェアRAIDでやれってことでしょう。(できるとはおもうけど、やってないので実際は不明)
今のマザーボードに付属のRAIDコントローラでRAIDは、おまけ機能感があるので、不具合とかハードウェア変えたときの互換性とかが怖くて試す気になりませんが・・・
Ubuntu 9.04 で Core Duo が1コアしか認識されない件
いままでFedoraばっかり使ってたのですが、アップグレードが面倒くさいので(解説みるかぎりメディアにやかないといけない)、常用してるノートのLinuxはUbuntuに移行しました。
で、インストールしてみたところ、CPUがどうやら1つしかない。
いろいろぐぐってみても、「kernelを generic にしろ」というのがほとんど。
もとから、generic だったし、
$ uname -a Linux aqua 2.6.28-13-generic #45-Ubuntu SMP Tue Jun 30 19:49:51 UTC 2009 i686 GNU/Linux
って、SMPになってる。
dmesg には、以下のような出力があって、どうやら1コア放置されてるみたいだった。
[ 0.000000] SMP: Allowing 2 CPUs, 1 hotplug CPUs
で、dmesg の出力をじっくりみてたら、
[ 0.000000] ACPI: BIOS bug: multiple APIC/MADT found, using 0 [ 0.000000] ACPI: If "acpi_apic_instance=2" works better, notify linux-acpi@vger.kernel.org
って、でてたので、起動時のカーネルオプションに acpi_apic_instance=2 って加えてみたら、ちゃんと2コア認識してくれました。
If "acpi_apic_instance=2" works better, notify linux-acpi@vger.kernel.org
ってかかれてるけど、何を連絡したらいいんだろ。
結局、使ってるノート(VAIO VGN-SZ90PS)のBIOSバグってことのよう。すくなくともUbuntuはそう認識してる。
それにしても、CPUがCore Duoっていう(not Core2 Duo)、64bitにも、VTにも対応してないCPUなので、遊べる範囲が狭い・・・
netbeansのフォントを綺麗に表示する
Rails 2.3 で script/process/spawner なくなるの?
Rails 2.3 がRCになったということで、
英語が読めないので、日本語訳されたリリースノートをみてみたわけですが、
レアだと思うけど、inspector、reaper、spawnerに依存した形式でデプロイしてる方へ。Railsコアにこれらは同梱されていません。必要であればirs_process_scripts pluginを使ってください。
http://webtama.jp/series/railstips/articles/31
・・・もろにレアケースあてはまってます!
fcgi の起動に spawner つかってます。
個人的には mongrel ですが、これまた spawner を使用。
そもそも、いまどき、
Apache --- reverse proxy ---> lighttpd --- fcgi ---> rails
ってのは古いんでしょうか。
いろいろな事情から変える気がまったくありませんが。
# めんどくさい+スキルの問題
今時、どうやってデプロイするのが流行なんでしょう。
さっそく調べないと!
論文
1月の頭から論文にかかりっきりで、更新できませんでした。
まぁ更新するような話もあまりないんですが。
何を研究していたかですが、
Firefoxの拡張機能でネットワーク関連についてひたすら調べてたことから予想できますが,
Firefoxの拡張機能でP2Pシステムを作っていました。
FirefoxをP2P Webブラウザ化していたと言えばわかりやすいでしょうか。
とりあえずのところ、P2P(適当プロトコル)で通信してブラウザにWebを表示できるようにはなりました。
すぐにフリーズするというまだまだ実用とはほど遠い代物ですが。
あと、実装もハリボテです。 C++つかえばいいところをぜんぶJavaScriptで書いているという・・・。
で、半分挫折して, P2P化したProxyに逃げましたw
Overlay Weaverを利用してProxyサーバを実験で作ってみました。
単体だとおおむね良好に動作します。
研究に使えるPCが数台しかない本末転倒な状況なので、ほんとうにまともに動くかは不明です。
あと、Proxyとしての処理はまだまだなのが課題です。
これらの、残骸、そのうちオープンソースとして公開するつもりです。
まずは汚いコードをどうにかしなくてはいけませんがw
それはさておき、これらを1つの論文にするわけですが。
動かないFirefoxのアドオンがメインで、ある程度まともに動くが後付けなOW製P2P Proxyがサブです。
しかし、逆にすると、新規性も、おもしろ味もまったくなくなってしまうのでそれもできず。
一緒に書くと何とも書きづらい組み合わせです・・・。
方向性を見失った結果がこれだよ!