2009-06-29

VirtualBox on Mac OS X

色々気軽に試せる環境を作ろうと、ローカル仮想環境に VirtualBox を導入しました。一つ目の仮想環境は Debian GNU/Linux です。

VirtualBox を立ち上げて新規仮想環境を作成し、Debian のインストール、起動までは快調。次にホストである Mac からゲストの Debian に SSH でログインしようと思ったときにはたと止まりました。

ネットワークの設定をした覚えはないけど、Debian から外には出られている。一体どういう設定がされたのだ?

Debian 上でネットワーク設定を確認。

$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0


Mac は 192.168.0.0/24 のセグメントにいるのでどうやら NAT されているらしい。設定を開いて見てみるもそれらしい箇所はないので、ググってみるとそれらしいものを発見。ポートフォワーディングでいけるとのこと。見つけたコマンドは以下の通り。

$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 10022


VBoxManage の 2つめの引数には新規仮想マシン作成時につけた仮想マシン名を指定します。設定を有効にするため仮想マシンを再起動します。

……、立ち上がりません。

仮想マシン"debian"の起動に失敗しました。

Configuration error: Failed to get the "MAC" value (VERR_CFGM_VALUE_NOT_FOUND).

Unknown error creating VM (VERR_CFGM_VALUE_NOT_FOUND).


インストール後に仮想マシンの設定でいじったのはポートフォワーディングのところだけなので、ポートフォワーディングの設定が怪しいですが断言はできません。一旦設定を削除して起動するかどうかを確認。

$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol"
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort"
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort"


設定を消したところで起動してみると、起動します。ポートフォワーディングの設定を間違えているのは間違いありません。VirtualBox をインストールするときにマニュアルらしきものがあったような気がするので dmg ファイルをマウントして中を見てみると、ありました。"6.4.1 Configuring port forwarding with NAT" を読んでいると以下のような記述が

An example of how to set up incoming NAT connections to an ssh server on the guest requires the following three commands:

VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222


The above example assumes a PCNet virtual network card; if you have configured the guest to use the Intel PRO/1000, replace “pcnet” with “e1000” in the above commands.


ネットワークカードは Intel だった気がします。VirtualBox の仮想マシン詳細画面にもネットワークの情報が記載されていた気がするので確認。Intel PRO/1000 MT Desktop (NAT) でした。コマンドを以下のように書き換えて実行します。

$ VBoxManage setextradata "debian" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22
$ VBoxManage setextradata "debian" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 10022


設定後、起動ボタンをクリックすると今度は無事に立ち上がりました。SSH ログインもできることを確認し無事解決です。

2009-06-23

Firefox の起動が遅くなったら

以前 ここ を見てスクリプトを作成したので今更かもしれませんがご紹介。sqlite3 コマンドがあるならアドオン入れて一つずつやるより早いです。

#!/bin/sh

find . -name '*.sqlite' | while read f; do
ls -l "$f" | awk '{ printf("%d -> ", $5) }';
sqlite3 "$f" vacuum && sqlite3 "$f" reindex;
ls -l "$f" | awk '{ printf("%d: ", $5) }';
echo "$f";
done


ls や echo は処理前後でどのような変化があったのかを表示するだけなので削除してもかまいません。また Mac では動作を確認していますが Linux などでは確認していません (もし動かなくても微調整で動くとは思いますが)。

このスクリプトをホームディレクトリで実行すると Firefox だけでなく Thunderbird のファイルも最適化されます。

2009-06-16

Java for Mac OS X 10.5 Update 4

ソフトウェア・アップデートで Java for Mac OS X 10.5 Update 4 のアップデート通知があったのでいつものようにアップデートしてみました。と、その前に現状のバージョンを確認。
atropos% java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)

次いで [インストール] ボタンをクリックしてインストールを進めるがエラー発生。エラーと出るだけで何がダメなのか一切わからない…。Web ブラウザを立ち上げていたのがまずかったのかと思い Web ブラウザをすべて終了させてもう一度チャレンジ。やっぱりエラー。コンソール.app でログも確認してみましたが特に怪しいところはありません。

何かほかにできることは…。

Apple のサイトからディスクイメージをダウンロードしてインストールすることを思いついたので試してみます。Apple Japan のダウンロードページ を探すものの見つからない…。本家 に行ってみるとあっさり見つかりました。ダウンロードしていつものようにインストールすると、エラーなしで正常終了。バージョンを確認します。
atropos% java -version
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)
Java HotSpot(TM) Client VM (build 1.5.0_19-137, mixed mode)

ちゃんとバージョンアップできました。

2009-06-15

SEO 対策基礎の基礎

先日コーポレイトサイトを立ち上げたのですが、これまでまともに SEO (Search Engine Optimization) というものをしたことがなかったので、検索エンジンで会社名や URL そのものを検索してもかすりもしませんでした…。冷静に考えると馬鹿なことを考えていたものですが、サイトを立ち上げさえすればクローラが勝手にやって来て indexing してくれるだろうと思っていたんです。どこからもリンクされていないサイトをクローラが見つけてくれるなんてことはありませんよね。

ということで、主要検索エンジンに indexing されるよう URL を登録しました。

Google

Yahoo! Japan
Bing / MSN


各サービスにはそれぞれサイト管理者向けのヘルプも用意されているのでそれらにも目を通しておくと良いと思います。

2009-06-11

思いそして願い

これまで技術的な問題で行き詰まったときに先人が残してくれた情報に助けられたことは数え切れないくらいありました。このブログにも日々の作業内容や得た知見などを記録していくことで、自分自身の学習のためだけでなく誰かの役に立つ情報が一つでも多く残せればよいと思っています。そして役に立ってくれることを願います。