ラベル mac の投稿を表示しています。 すべての投稿を表示
ラベル mac の投稿を表示しています。 すべての投稿を表示

2010/09/14

MacOS X上のVirtualBox SDKでAPIの動きを調べてみた

Ubuntu LTS上にVMWare Workstationがあるのに、なぜかMacOS XでVirtualBoxを動かしています。

さて、VirtualBoxのAPIにはIStorageController::minPortCountというメソッドについての記述があります。

9.38.1.3 minPortCount (read-only)
unsigned long IStorageController::minPortCount
Minimum number of ports that portCount can be set to.

portCountに指定できる最小の数が定義されているはずなのですが、SATA以外の(SCSI, SAS, etc)オブジェクトでは初期化時点でportCountの戻り値はmaxPortCountと同じになります。

VirtualBoxのフロントエンドのコードを合せて読んでいくと、いろいろ小手先でやっている事があるようです。

portCount関連について、もう少し

minPortCountの値について、psude codeを使うとこんな感じでしょうか。

If controllerType == SATA, IStorageController::minPortCount == 1,
else, IStorageController::minPortCount == IStorageController::maxPortCount.

portCount自体もAPIに定義されている数とは違うように思われるので、「SATAバスに30までのストレージを順番に追加していく」みたいな処理は、空いているポート番号や(連番と仮定しても)総ポート数を知る必要がありますが、毎回ぶら下っているディスクを調べてあげなければなりません。

もっともフロントエンドでもmaxPortCountとportCount変数のみを参照していて、minPortCountは使われていないようです。

そもそもSATAの場合を特別扱いしているコードが散見され、portCountはAPI上ではmaxPortCount(30)に初期化されますが、フロントエンドではSATAだと 1 に再度設定してしまいます。

SCSIやIDEデバイスではportCountの数字が変動しないので、いろいろ不思議です。

処理の途中でportCount, minPortCount, maxPortCountを表示させると、SATAを使わない場合には全てaxPortCountと同じ値になっているのがわかります。

minPortCountメソッドの定義自体はmaxPortCountとほぼ同じで、対称性を維持するためには必要かもしれませんが、アジャイルな考え方になると不要なものに分類されそうな勢いです。

バスの使用状況を調べるといったニーズはあるだろうけれど、portCount周りは不要じゃないかなという印象でした。

Web APIを使ったVirtualMachineの追加の流れ

もともとはVM作成の処理を自動化したかったので、ここからが本題になります。

フロントエンドを使ってVMを新規に作成した場合には、ディスクの追加などの各種デバイスは自動的に準備されますが、APIを使う場合には、ほぼ空っぽのVM定義だけが準備されます。

HDDだけでなく、インストールに必要なDVDメディアの登録なども必要になります。

インストールまでのおおまかな処理は次のようになります。

  • IVirtualBoxインスタンスを通して、IMachineオブジェクトの作成 (IVirtualBox::createMachine())
  • 作成したVM定義の登録(IVirtualBox::registMachine()によるクローズ処理)
  • IVirtualBox::openSession()を通して、変更可能なIMachineインスタンスの再取得
  • IStorageControllerオブジェクトの登録 (IMachine::addStorageController())
  • 別途IVirtualBoxインスタンスを通して作成したIMediumオブジェクトのIStorageControllerへの割り当て (IMachine::attachDevice())
  • 以下、同様にIStorageControllerオブジェクトの取得と、メディアの登録をDVD, Floppyなどに対して繰り返す
  • メモリ割り当てや起動メディア順の入れ替えなど、定義情報の修正
  • IVirtualBox::openRemoteSession()によるVMの起動とインストール作業の開始

VMを作成した直後にはストレージコントローラは追加できないので、セッションを開かないといけないなど、いろいろと細かい手続きが必要になりました。

ここら辺のプロトタイプを作成した経験を踏まえて、すっきりとした内部構造を持つアプリケーションを設計して行こうとしています。

とりあえずは、ステータスのまとめまで。

2010/08/30

VirtualBoxでのCentOSインストールの自動化

Mac(Mac mini; MacOS X 10.6.4)で動いているVirtualBoxで、kickstartの仕組みを使ってCentOSのインストールを自動化しようとしてみました。

ただ手続きが多いので、基本的な動きを確認するためにVMを起動すると自動でCentOSのインストールが開始するところまでを確認しました。

全体の流れ

Kickstartを自動で開始するディスクの作成

mkisofsコマンドをmacportなどで導入すればMacでも可能そうでしたが、面倒なのでここだけはlinux(Ubuntu 10.04 LTS)で作業しています。

$ sudo mount -o loop CentOS-5.5-x86_64-netinstall.iso /mnt/iso
$ mkdir centos55netinst
$ cd  centos55netinst

/mnt/iso以下はread-onlyなので、作成したディレクトリにコピーを作成します。

$ rsync -av /mnt/iso/. .

自動的にKickstartを開始するようにisolinux.cfgファイルを編集します。

$ vi isolinux/isolinux.cfg

isolinux/isolinux.cfgファイル

default linux
prompt 1
timeout 10
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=hd:fd0:/ks.cfg
label local
  localboot 1
label memtest86
  kernel memtest
  append -

isolinux.cfgだけを変更したISOイメージを ../centos55netinst.img に作成します。

$ sudo mkisofs -R -J -no-emul-boot -boot-load-size 4 -boot-info-table -o ../centos55netinst.img -c isolinux/boot.cat -b isolinux/isolinux.bin .

mkisofsのオプションは使い方によって、 -T , -p といったオプションを工夫しても良いかもしれません。

ks.cfgファイルの準備

一度は手動でCentOSを入れると配置される /root/anaconda-ks.cfg ファイルをベースにしました。

サーバにするために不要なものをいろいろ省くと次のようになります。

ks.cfgファイル

# Kickstart file automatically generated by anaconda.
install
url --url http://rsync.atworks.co.jp/centos/5.5/os/x86_64
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --hostname centos.vb.localdomain
rootpw --iscrypted $1$./9drDbb$nWXlnh/h4517xgxRZBTsS/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --permissive
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=sda
text
halt
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda --initlabel
part /boot --fstype ext3 --size=100 --ondisk=sda
part pv.2 --size=0 --grow --ondisk=sda
volgroup VolGroup00 --pesize=32768 pv.2
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512 --grow --maxsize=1024

%packages
@base
@core
@network-server
@server-cfg
@text-internet
@web-server
keyutils
trousers
fipscheck
device-mapper-multipath
openssh-server

起動すると自動的にパーティションの削除から開始するため、意図せずにディスクの内容を削除してしまう可能性がそれなりにある点に注意してください。

フロッピーイメージの作成

Mac上でフロッピーイメージを作成するには、いくつかの方法がありましたが、今回は自動化するためにコマンドラインで出来る方法を採用しました。

カレントディレクトリにks.cfgがあると仮定して、floppy.imgを作成し、その中にks.cfgをコピーするところまでを試しています。

$ dd if=/dev/zero of=floppy.img bs=1024 count=1440
$ hdiutil attach -nomount floppy.img | while read dev
do
  newfs_msdos -f 1440 -v centos55 $dev
  hdiutil detach $dev 
done
$ hdiutil mount floppy.img | while read dev fs
do
  cp ks.cfg $fs
  hdiutil detach $dev
done

さいごに

作成したファイルを使って、VirtualBoxのインスタンスを起動すると自動的にインストールが完了しました。

とはいえ、インスタンスの設定ではいくつか必要な操作があります。

  • 起動順から「フロッピー」を削除
  • 「フロッピーコントローラ」の追加
  • 「フロッピーコントローラ」直下のks.cfgを含むfloppy.imgの追加

あとはVirtualBoxにインスタンスの構成を行なって、カスタマイズしたks.cfgを作成すれば自動的にインスタンスを増やす事は何とかなりそうです。

2010/08/24

MacでVirtualBoxをコマンドラインから操作してみる

MacOS X 10.6上のVirtualBoxをコマンドラインから操作してみようと、VirtualBox SDKを触り始めました。

SDKのリファレンスにあるサンプルを少し動かそうとしただけで、Macだと戸惑うところがでてきます。

サンプルプログラムの起動

SDK付属のPDFファイルにある「2.1 The object-oriented web servvice for JAX-WS」に従って進めていきます。

作業はコマンドラインが必要で、ターミナルでも良いと思いますが、 iTermを使いました。

JAX-WSを使うためにJDK 6の確認

MacOS X 10.6では普通にJDK 6が使えるので、確認だけしておきます。

$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)
vboxwebsrvコマンドの起動

マニュアルではコマンドのある場所に移動して、$ ./vboxwebsrv -vとタイプするように書かれています。

ただ素直に場所を探そうとすると、地味に面倒だったりします。

MacOS Xの場合はFinderから起動するプログラムはディレクトリで、必要なリソースのパッケージになっています。 そのため普通に画面右上のspotlightウィンドウでコマンド名を検索しても隠されてしまい表示されません。

こんな場合は、linux同様にlocateコマンドですが、macの場合は最初にデータベースをアップデートするようにメッセージが表示されます。

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

データベースが作成されるのを待ってから、locateコマンドを打ってみます。

$ locate vboxwebsrv
/Applications/VirtualBox.app/Contents/MacOS/vboxwebsrv
/Applications/VirtualBox.app/Contents/MacOS/vboxwebsrv-amd64
/Applications/VirtualBox.app/Contents/MacOS/vboxwebsrv-x86
/usr/bin/vboxwebsrv

マニュアルにはコマンドのある場所に移動するよう書かれているので、次のようなコマンドを実行しました。

$ cd /Applications/VirtualBox.app/Contents/MacOS
$ vboxwebsrv -v

ちなみにmdfindを使うとスポットライトと同じような出力になるはずですが、次のように少し違った結果になります。

$ mdfind vboxwebsrv
/Users/user01/Programming/VirtualBoxSDK/bindings/webservice/java/jax-ws/samples/metrictest.java
/Users/user01/Programming/VirtualBoxSDK/docs/SDKRef.pdf
/usr/bin/vboxwebsrv

どちらの結果でも、標準的な場所にvboxwebsrvコマンドを見つける事ができますが、後で実験したところ単純にホームディレクトリでvboxwebsrvを実行すると問題が起こりました。

コマンドの実行

マニュアルにある通り、makeコマンドを打つと、 show vms の結果が表示されるはずです。

しかし実際にはプログラムの中にユーザ名とパスワードの組が書かれているため、そのまま実行すると次のようなエラーメッセージで失敗します。

Exception in thread "main" javax.xml.ws.WebServiceException: org.virtualbox_3_2.InvalidObjectFaultMsg: VirtualBox error: Invalid managed object reference ""
        at com.sun.xml.ws.commons.virtualbox_3_2.IVirtualBox.getVersion(IVirtualBox.java:56)
        at clienttest.<init>(clienttest.java:47)
        at clienttest.main(clienttest.java:291)
Caused by: org.virtualbox_3_2.InvalidObjectFaultMsg: VirtualBox error: Invalid managed object reference ""
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
        at $Proxy33.iVirtualBoxGetVersion(Unknown Source)
        at com.sun.xml.ws.commons.virtualbox_3_2.IVirtualBox.getVersion(IVirtualBox.java:53)
        ... 2 more
make: *** [run16] Error 1

修正した部分の差分は次のようになりました。

--- clienttest.java.orig        2010-08-24 14:23:05.000000000 +0900
+++ clienttest.java     2010-08-24 14:24:49.000000000 +0900
@@ -43,7 +43,7 @@
     public clienttest()
     {
         mgr = new IWebsessionManager("http://localhost:18083/");
-        vbox = mgr.logon("test", "test");
+        vbox = mgr.logon("username", "password");
         System.out.println("Initialized connection to VirtualBox version " + vbox.getVersion());
     }

必要な修正をして準備が出来たら、次のように実行します。

$ make run16
java -cp ../lib/vboxws_java16.jar:./gen16 clienttest show vms
Initialized connection to VirtualBox version 3.2.8
Machine 0:  [a2c4fdbc-86c1-4480-806d-fbe6b77005b7] - ubuntu804.x86_64
Machine 1:  [d1b95e67-3005-4279-bb9b-f723433fbe0b] - CentOS
Logged off.

もしホームディレクトリでvboxwebsrvを起動してしまうと、次のようなエラーが表示されます。

$ make run16
java -cp ../lib/vboxws_java16.jar:./gen16 clienttest show vms
Exception in thread "main" javax.xml.ws.WebServiceException: org.virtualbox_3_2.InvalidObjectFaultMsg: VirtualBox error: Invalid managed object reference ""
        at com.sun.xml.ws.commons.virtualbox_3_2.IVirtualBox.getVersion(IVirtualBox.java:56)
        at clienttest.<init>(clienttest.java:47)
        at clienttest.main(clienttest.java:291)
Caused by: org.virtualbox_3_2.InvalidObjectFaultMsg: VirtualBox error: Invalid managed object reference ""
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
        at $Proxy33.iVirtualBoxGetVersion(Unknown Source)
        at com.sun.xml.ws.commons.virtualbox_3_2.IVirtualBox.getVersion(IVirtualBox.java:53)
        ... 2 more
make: *** [run16] Error 1

この時のvboxwebsrv側のエラーメッセージは次のとおりです。

2010-08-24 14:05:47 [ P ] Request 1 on socket 9 queued for processing (1 items on Q)
2010-08-24 14:05:47 [  1] New SOAP thread started
2010-08-24 14:05:47 [  1] Processing connection from IP=127.0.0.1 socket=9 (0 out of 1 threads idle)
2010-08-24 14:05:47 [  1] -- entering __vbox__IWebsessionManager_USCORElogon
2010-08-24 14:05:47 [M  ] Pumping COM event queue
2010-08-24 14:05:47 [M  ] Pumping COM event queue
2010-08-24 14:05:47 [  1] external authentication library is 'VRDPAuth'
2010-08-24 14:05:47 [  1] authenticate() Failed to load external authentication library. Error code: VERR_FILE_NOT_FOUND
2010-08-24 14:05:47 [  1] Could not resolve VRDPAuth2 or VRDPAuth entry point2010-08-24 14:05:47 [  1] -- leaving __vbox__IWebsessionManager_USCORElogon, rc: 0x0
2010-08-24 14:05:47 [  1] -- entering __vbox__IVirtualBox_USCOREgetVersion
2010-08-24 14:05:47 [  1]    findRefFromId(): looking up objref 
2010-08-24 14:05:47 [  1] -- leaving __vbox__IVirtualBox_USCOREgetVersion, rc: 0xFFFFEF33 (-4301)

エラーメッセージのポイントはauthentication()の呼び出しで VERR_FILE_NOT_FOUND が発生しているところかと思われます。

その他のサンプル

PDFには$ java clienttestの引数を変えて実行すると、コマンドの振舞いが変ると書かれていますが、細かい実行方法には振れられていません。 まぁそれぐらい分かる人が相手なんでしょうけどね。

ここでは$ make run16の出力をコピーして、必要なクラスパス(-cp)の設定を使って、試す事にします。

$ java -cp ../lib/vboxws_java16.jar:./gen16 clienttest list hostinfo
Initialized connection to VirtualBox version 3.2.8
Processor count: 2
Processor #0 speed: 2260MHz
...
Logged off.

さいごに

目的はコマンドラインでkickstartを使ってCentOSを導入するところなのですが、長くなったのでとりあえず次回にすることにします。

2009/09/18

iMac G5を買取に出してみた

iMac G5で遊ぼうかと思っていたのですが、部屋の整理も兼ねて買取サービスに出してみました。

利用したのはビワコムが運営する「買取オンライン」。 専用フォームで付属品やらの情報を伝えて概算を教えてもらった後で本体を着払いで送りました。

箱とか全部そのまま持っていたのと、本体の外観自体は綺麗だったせいもあってか、ほぼ減額されずに引き取られていきました。 減額されたのはWirelessマウスで、日焼けしていた分が-500円だけ。

オークションで買い手が見つかれば、もっと高く売れたとは思うんですけどね…。 実際のところは買い手がなければ、どんどん価値が下ってしまうので難しいところです。

Mac mini用にDell 2209WAが欲しい気もしますが、しばらくはL567 2台でやっていこうと思います。

2009/09/08

MacBookのHDDをIntel X25-M 160GBと交換してみた

SSDはまだ本格的に使うものじゃないと感じつつも、X25-Mリテール版が3年保証になっている事もあって試してみる事にしました。 ターゲットはMacBook 13-inch Aluminum (late 2008)です。

以前に交換したPowerBook G4 550MHzと違って、交換はびっくりするぐらいに簡単です。 AppleのサポートページからマニュアルPDFをひっぱってきます。 HDD交換方法が図解されていて、丁寧に行なえば難しい作業ではないでしょう。

今回使った道具は以下の通りです。

  • Intel製 X25-M 160GB
  • 外付けUSB HDDケース
  • SuperDuper!
  • T6トルクスドライバー
  • PH000精密プラスドライバー

注意点1

MacBook 13インチ (late 2008)の内蔵HDDは日立製(5400rpm)でしたが、Mac miniの富士通製とは違って十分に高速でした。今回はSSDに変えて違いを体感するのが目的でしたが、通常の用途であればそのまま使えば良いと思います。

注意点2

単純にSuperDuper!で"Backup - all files"を選択すると起動に失敗します。 これはパーティションの情報がIntel Macで必要としているGPT(GUIDパーティションテーブル)形式ではないのが原因です。

ディスクユーテリティでSSDドライブ本体を選択して「パーティション」タブで”1パーティション”を選択して、オプションからGUIDパーティションを選択されている事を確認してフォーマットを行ないましょう。 後は普通にSuperDuper!を起動して、"Machintosh HD"のバックアップを取れば交換して終りです。

使ってみて

このX25-Mは、仕事で電車など移動中に使う人が嬉しくなると思います。 Thinkpad X41だと起動するまでに2駅過ぎたりしましたし。 関東圏で仕事をしていた以前の自分だったらThinkpad X200sとの組合せで持ち歩きたくなる事は間違いありません。

その反面、机の上で普通にパソコンを起動しっぱなしにする人には向かないでしょう。 確かに速いですけどね。そこまでのメリットはない。 ちょっとパソコンを立ち上げて一仕事する、そんな短時間で起動し、サスペンドさせたい人向けの一品と感じました。

SSDはしばらく様子見。

MLCですがX25-Mは非常に高価です。しかし、ここがスペック上は最低ラインかなと感じます。 他のSSDは使っていませんがスペックや評価をみる限りでは、X25-Mと比較して安価なものはRandom Writeが遅いデメリットが気になります。 Windowsであれば2.5-inch 250GBプラッタ 7200rpm HDDとデフラグソフト(Diskeepr, MyDefrag, etc.)の組合せがバランスの取れた、満足度の高い構成のように思えます。

ノートPCを持ち運ばなければならないなら検討しますが、X25-Mはまだ少し高価です。

SSDを使わなきゃなら、またX25-Mを選ぶかな。 しかしHDDと比べて価格に見合ったバランスが取れる状況は、まだ少ないと思います。

MacBook+VMware+Vistaで遭遇したFlashplayerの不具合

アップルストアで売られていた修理品のMacBook 13インチ アルミニウム (late 2008)を手に入れました。 少し古いですがNVIDIA 9400MGのチップセットが入っていれば、しばらくは問題ないだろうという判断からです。 MacBook Proの方が液晶の色域は向上していますが、普段使う分にはこのLEDバックライトで問題ありません。

さてさて、今回はVMWare FusionでVistaを動かした時に遭遇した、Flashplayerの不具合についてです。

普段使っているInspiron 640mやらMac miniやらでは、VMWare(Player)からVirtualBoxに移りました。 今回はWindows Vistaを割と安定して使いたかたったので、VMWare Fusionを使いました。 VirtualBox + Vistaの組み合せは試していませんが、Ubuntuの経験からはきっと問題なく動くんでしょうね。 スナップショットを活用するつもりはないので、VMWareは安定して動いて欲しい保険の意味が大きいです。

さて、IEのアイコンをDockに入れます。 MacからIE8のアイコンをクリックするだけで全画面モードでVistaが立ち上がり、IEが動き始めます。 最初はIE8が立ち上がらなかったりしましたが、VMWare Toolsを入れたり、ゴチャゴチャしている間に、どうやらいまのところはちゃんと動くようになっています。

しかしYoutubeで全画面に切り替えると画面が固まってしまいます。

症状を改善するには全画面表示に切り替える前に、動画上で右クリックをして設定から「ハードウェアアクセラレーションを有効化」のチェックを外せば良かったのですが、情報が見つけられなくて苦労しました。

分かってしまえば、以前もlinux上のflashplayerで同じような事があったと思うんですよねぇ…。 無意識にキャッシュ設定周りをいじった時に変えちゃったのかなぁ。

2009/09/02

iMac G5のチューニング for 10.5

Mac miniを導入したために、20インチの汎用作業台として置いているiMac G5。 付属する10.4 Tigerを再導入したままでしたが、最後のOSとなる10.5 Leopardを再度入れてから前回気になったところが改善できないか挑戦してみました。

以前10.5にしたことがありましたが、マウスやウィンドウのひっかかるような動きが気になりました。 今回はパフォーマンスモニタを見続けて、2つのプロセスに注目しました。

  1. Spotlightのインデックスを作るプロセス
  2. Time Machineプロセス

まずSpotlightの停止

インデックスを作らないようにさせるには、ブログ等に説明が多数あります。 参考にしたのは[PC][Leopard] Spotlight を停止する方法などです。

MacOS X 10.4では/etc/hostconfigに設定をいれました。

SPOTLIGHT=-NO-

Mac OS X 10.5では"launchctl"コマンドを使って、バックグラウンドで稼動するデーモンを操作します。 説明には"com.apple.Spotlight.plist"も停止するとありました。$ sudo launchctl listで確認したところ動いていたのは"com.apple.metadata.mds.plist"の1つだけだったので、停止したのはこちらだけです。

$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Time Machineがレスポンスに与える影響

通常の使用中にどの程度の負荷になるのかは、まだよくわかっていません。

最初はTime Machineを無効にしていて、後から2.5インチHDDをUSB外付けケースに入れて接続してみました。 即座にTime Machineを有効にするか聞かれ、スイッチを入れて"有効"にしましたが、最初の同期にはやはり時間がかかります。

google desktopのようにファイルの更新情報をkernelから貰いつつ、定期的にpdumpfsのような動きをするんだろうけれど、それにしては負荷が掛っているような。

常時オンでは毎時間00分にupdateプロセスが動きだすようですが、仕事をしていないのに意外と重くなる印象を受けました。 しばらくは、使わないときに手動でTime Machineのバックアップを作成する事にして、常時オンにするのは控えようと思います。

しばらく使ってみて

S-IPSとはいえ正面から観る分にはさすがにIPS液晶らしく見やすいです。YouTubeでスタンフォード大学のレクチャーをみたり、QT4のプログラミング環境として使っています。 画面は見やすいし、文句はないですね。HD画質での鑑賞は無理としても、Spotlightの検索をオフにしてからはFlash動画が以前よりはなめらかに再生されるようになり、有効だったと思います。

複数の仕事をさせるとうまく回せない印象ですが、SafariやCamioではタブを高速に開き、移動できます。 軽い作業を選ばないとだけれど、ppc向けのソフトウェアが提供される限りは現役で通用するはずです。

2009/07/03

MacOSXでのAquaSKKに必要な設定

ソフトウェア・アップデートをすると、なぜか「ネットワークに接続できません」な"-3001"エラーがでてSafari 4.0.1への更新ができなくなりました。原因を調べるべく /var/log/console.log ファイルを眺めていて気がついた事。

下記のようなエラーがでていて、AquaSKKで個人辞書ファイルが保存されていませんでした。

Jul  2 23:11:34 mac-mini [0x0-0x11011].jp.sourceforge.AquaSKKServer[174]: OpenAndSeek: stat(/Users/yasu/.skk-jisyo) failed

テキストを入力する頻度が低いので、何となく感じていたまま放置していましたが、ターミナル.appの代りに使っているiTermを開いて$ touch ~/.skk-jisyoを実行してからは問題なく辞書が保存されるようになりました。

そもそも調べていた"-3001"エラーの方は、手動でSafari 4.0.1のインストールイメージを持ってきて入れる以外にはなさそうです。たぶん一番最初にダウンロードしている最中でシステムをリスタートしたとか、そんな理由で中間ファイルが壊れたんじゃないかなと想像しつつも確かな証拠もエラーの根本原因もわからないので手が出せません。

Googleの検索結果に出てきた英語のディスカッションフォーラムを眺めた感じでは、ディスクユーティリティで「アクセス権の修復」をするようアドバイスするものが多数ありましたが、軒並効果無しといった感じでした。

一応アクセス権の修復は試しているので、これを書き終ってからMacOSXをリスタートして効果を確認してからSafari 4.0.1のdmgファイルを探しに行こうと思います。

2009/02/03

PowerBook G4をパワーアップ

PowerBook G4 550MHzが実家にあったので、メモリを1GBに、HDD(PATA)を120GBに入れ替えてきました。ダイソーでT-8ドライバーが売っているという情報と、この頃のPowerBookで使えるHDDは120GBが最大サイズというのは事前に調べておいて正解でしたが、HDDを外す方法がわからずに苦労しました。
使ったものは、だいたい…

  • T-8トルクスドライバー (ダイソーで購入)
  • 512MB Samsung製 PC-133 SDRAM 2枚 (秋葉館で購入)
  • 120GB Travelstar 5K160 HDD (同上)
  • Firewire 2.5inch HDDケース + 接続用6ピン Firewireケーブル (手持ちの流用)
こんなところでしょうか。

割と新し目な1.5GHz版の交換方法とは微妙にアセンブリが違う…。Googleで何回か検索したところ写真付きで分解の様子を公開している方がいて、裏蓋を外して、バッテリーを外した側面からHDDのネジを2個所外すだけで簡単に分解が完了。
本当に助かりました。なんかこういうページ作れるのってすごいなぁ。

USBは1.1なので、Firewire接続が可能な2.5inch HDDケースを持っていたので、そこに新しいHDDを入れて"SuperDuper"というツールでドライブ全体をコピーしました。
MacでのHDD引越し方法はいろいろ説明しているサイトがありましたが、復元用イメージを経由せずに直接外部HDDにコピーできるのはSuperDuperだけでした。ああ、"Carbon Copy Cloner"というのもありましたが、Mac OS X 10.3なPantherマシンだったので、古いバージョンがダウンロードできず"SuperDuper"にしたのでした。

しかしPowerBook G4も世代によって分解の方法がまるで違って、裏蓋を開けるだけでHDDにフルにアクセスできた550MHz版は作業が楽でした。情報が少なくてまいったけれど。 HDDの回転数が4200rpmから5600rpmに上った事や内部転送速度も向上していることが良かったのか、まだまだ使えるマシンに生れ代りました。 ちょっと前はメモリを足せば早くなるといいましたが、最近はHDDを新しく速度の早い物に変更した方が良いのかもしれません。怖いのは発熱だけですね。
メモリはMacのサイトにも説明がありますが、キーボードを3個所いじると簡単に開いて、2枚のSDRAMを簡単に交換する事ができます。しかし戻ってきてからリンクを探してもみつからないなぁ…。うーん。

2008/09/05

ひさしぶりにiMac G5の電源を入れる

20inchのiMac G5はIPS液晶なので買い替えずに持っていますが、ひさしぶりに電源を入れたところWebサイトの表示に少し間を感じてしまい、「レスポンスが悪いなぁ~。そろそろ限界かなぁ」と思いました。画面の表示はlinux機が接続されているFlexScan L567と比べるといまいちだけれど、DELLのノートPCよりはずっと良い。
レスポンスについてはlinuxの環境も早いわけではないので、おかしいと思い端末からtracerouteやらpingやら打ってみたところDNSの名前解決に時間がかかっている事が判明。

ネットワーク設定でみると、ALIXで作ったDHCP/DNSサーバーを参照していない事がわかり、ブロードバンドルーターのDHCPサーバー設定を停止して再割り当てしたところ情報が更新されてレスポンスも向上しました。
なぜ停止したはずのブロードバンドルーターのdhcpサーバーが上がっているのかな。 レスポンスが悪いのは古いルーターを使っているからだけれど、最近のブロードバンドルーターに切り替えるのはもったいない。しばらくはALIXを手動で調整しながらDHCP/DNSサーバーを運用する事になりそうです。DynamicDNSは設定していて良いけれど、いろんなVirtual MachineやらDDNSに対応しない古いマシンのためにDHCPサーバーを細かく設定してDNSと情報を合わせる事が難しそう。何もしないのが一番楽なんだなぁ。

SysAdmin Mag.にDHCPクライアント管理サーバーのネタが載っていたなぁと思ってCD-ROMから検索すると、"NetReg"についての記事を発見。ぱっと見た感じで2005年頃で止まっているようにも見えるけれど、時間のある時にこれを応用できないか考えてみよう。