XenServerの仮想マシンを強制シャットダウン

XenServerの仮想マシンをが応答しなくなりました。
XenCenterからForce Reboot, Force Shutdown を試しても、黄色いアイコンのまま先へ進みません。
こんなときは、コンソールから該当する仮想マシンのDomプロセスをkillするしかありません。

方法は下記の通りです。

  1. XenCenterで、仮想マシンのGeneral Propatiesのなかから、仮想マシンのUUIDを確認します
  2. list_domains コマンドで、該当する仮想マシンのdomidを確認します
  3. 仮想マシンのdomainプロセスを止めます
    /opt/xensource/debug/xenops destroy_domain –domid [domid]

[参考] Citrix: 保留または黄色状態で応答しない仮想マシンのシャットダウン方法

DTI ServerMan SIM と FUSION IP-Phone SMART で月額490円携帯

子供がひとりで行動することが多くなり、携帯を持たせることにしました。
各社に子供用料金プランがあり、一定期間は基本料が無料だったりするので検討しましたが、

  • 2年縛り
  • 機種が限られて、子供が好みのものがない。機能も少なすぎ

ということで見送ってきました。

たまたま、最近サービスが始まったServersMan SIM 3G 100を買っていたもののあまり使っていなかったので、維持費(月額基本料)が無い FUSION IP-Phone SMART を申し込んで使ってみることにしました。

使い古しのiPhone3GS(脱獄、SIMロック解除済み)に、AGEphoneをインストールし、必要な設定をします

[参考] FUSION IP-Phone SMART の設定例 - age

設定をすると、すぐに「ダイアルできます」と表示されました。

  • 通話品質は、遅延がかなりあるものの、会話は可能なレベルです。感じとしては、もう10年以上前になるmova時代の9.6k PDCと同等です。
  • MMSは使えませんが、データ通信があるのでGmailを設定しておけば問題ありません

これで月額490円の維持費用ならまあ文句は無いでしょう。
しばらくはこれで子供用&予備携帯として使えそうです。

lvmのボリュームを縮小

e2fsck -> resize2fs -> lvreduce という流れ

  1. e2fsck -f /dev/VolGroup00/LogVol00
    エラーチェックの結果、修復するかどうかのメッセージにすべてYesと答える場合は -y オプションを加える。

  2. resize2fs /dev/VolGroup00/LogVol00 15G
  3. lvreduce -L 15G /dev/VolGroup00/LogVol00
  4. 縮小した論理ボリュームの後ろに別のボリュームがある場合は、これを移動する必要があります。論理ボリュームの後ろがすべて空きスペースになったら、物理ボリュームを縮小できます。
    pvresize --setphysicalvolumesize 20G /dev/hda2

参考: @IT総合トップ > Linux & OSS > Linux Tips Index > 論理ボリュームを縮小するには

参考: CentOS で LVM 物理/論理ボリュームサイズを縮小する

会議出席依頼に自動承諾するマクロ

OutlookVBAで、送られてきた会議出席依頼に無条件で自動承諾するマクロのサンプル

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Set objItem = Session.GetItemFromID(EntryIDCollection)
If TypeName(objItem) = "MeetingItem" Then
Set myAppt = objItem.GetAssociatedAppointment(True)
Set myMtg = myAppt.Respond(olResponseAccepted, True)
myMtg.Send
End If
End Sub

原動N50GT 公式ファーム 4.0.3でroot化成功

苦労しました。
出回っている数が多いにもかかわらず、なかなかrootができず皆さん苦労されているようです。私の場合も、参考にさせていただいた下記の手順でも、どれも失敗しました。

参考: 忘備録ブログ360 - 原道N50のandroid4.0のroot化
参考: これでどうでしょう? - N50 DT 4.0.3 root化 やっと成功しました

メモを兼ねて、root化手順をまとめておきます。

前提環境

  • 公式の最新ファーム N50-4.03-20120606-ALL.img
    • ロットにもよるようですが、ヤフオクで手に入れた私のN50GTは、これ以外のファームだとすべてタッチパネルが動作しませんでした。怪しさ満点です
  • PC: Windows 7 x32 を使用しました

使用するもの

  • SuperOneClick 2.3.1 無印
    • 実際使用するのは、このなかのADB関係ファイルだけ
  • Unlockroot v2.4.2(現時点で最新版)

root化手順

  1. まず、デバイスを認識させることからはじめます。
    1. あらかじめ、N50でUSBデバッグを有効にしておきます
    2. N50を接続すると、適当なドライバが認識されデバイスが追加されますので、プロパティ - 詳細 - ハードウェアIDを確認しておきます
    3. Unlockroot\driver\android_winusb.inf に、自分のデバイスに応じて行を追加します。私の場合は下記のようになりました。
      ;Google N50
      %SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0006&Rev_0222
      %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0006
    4. 正しく追加できたか確かめるため、ドライバの更新で、上記のandroid_winusb.infを指定します。Android ADB Interface と認識されれば、この段階はクリアです。
  2. 次は、ADBによる接続です。実はここが一番苦労しました。
    1. コマンドプロンプトを起動し、パスをSuperOneClick 2.3.1\ADB に移動します
    2. 下記のコマンドを実行します
      adb devices
      正しく認識されていれば、下記のような返事が返ります
      C:\SuperOneClick 2.3.1\ADB>adb devices
      List of devices attached
      0123456789ABCDEF device
      List of devices attached の下に何もなければ、デバイスが正しく認識されていません。この状態ではだめです
      私の場合、ここで試行錯誤の結果、SuperOneClick 2.3.1(無印)に付属のADBだけがデバイスを認識してくれました。SuperOneClickv2.3.1-ShortFuse や、2.3.3も試しましたがすべてだめ、なんとUnlockrootのADBもだめでした。これが、Unlockrootとは別にSuperOneClick 2.3.1(無印)を用意する理由です
  3. ではいよいよroot化です
    1. 上記で説明したように、Unlockrootそのままの状態では、ADBがN50GTに接続できません。このため、UnlockrootのADBをSuperOneClick 2.3.1(無印)のものに入れ替えます。具体的には、SuperOneClick 2.3.1\ADB から、下記の3つのファイルをUnlockroot\toolsに上書きコピーします(オリジナルは念のためべつにとっておいたほうがいいでしょう)
      adb.exe
      AdbWinApi.dll
      AdbWinUsbApi.dll
    2. Unlockrootを起動します
    3. Root権限を取得する ボタンをクリックします。
      もしかすると、1回目はデバイスを認識できず、「ドライバをインストールしてみる?」と表示されるかもしれません。指示のとおりにインストールしてみてください。手順1.3で正しくハードウェアIDを追加していれば、正常に完了すると思います。
ご検討をお祈りします!

仮想マシンのHDDイメージを縮小

仮想マシンのHDDイメージを大きく取りすぎると、スパースファイルにすれば実際には容量を使わないものの、ファイルのコピーなど何かと不便なことがあります。

使用しないぶんを縮小しHDDを小さくするには、下記の手順をふみます

  1. あらかじめ、ゲストOSでHDDの最後に空き領域を作っておく。たとえば100GBのHDDを50GBに縮小したい場合、念のため先頭から45GB程度のパーティションに縮小し、後ろの残りを空き領域にしておく。

    lvmの論理ボリュームを縮小する方法はこちら

  2. 下記の例のように、ddで先頭から50GBぶんの領域を書き出す
    dd if=100GMHDD.img of=50GHDD.img bs=1M count=50000
  3. このままでも50GBHDD.imgは使用できますが、qemu-imgを使ってスパースファイルに変換するとさらに節約になります
    qemu-img convert -f raw 50GHDD.img -O raw 50GHDDsparse.img
  4. 縮小後のHDDで仮想マシンを起動し、若干残っているHDDの空き容量まで45GBのパーティションを拡張します(残りが気にならなければやらなくて良い)

参考: Geeklog - Windowsゲストのディスクサイズを縮小してみた

VMWareのWindowsマシンをXenで起動するとブルースクリーンになる

VMwareWindowsマシンは、qemu-img でvmdk -> raw ファイルに変換することで移動できます。ただし、HDDのドライバが異なるのでほぼ確実にブルースクリーンになります。これを回避する方法がありました。

[参考] ESXiからXenやOracleVMへコンバートした際にブルースクリーンが出る

方法は下記のとおり

  1. マイグレーションする前に、VMWare上で下記の手順を実行
    1. 下記のisoファイルからファイルを取り出す
      Windows2000 ftp://ftp.znetj.com/BootFix.iso
      Windows2003 ftp://ftp.znetj.com/BootFix2003.iso
    2. sysファイルを、windows\system32\driversフォルダへ入れる(既に存在する場合は不要)

    3. regファイルをクリックし、インポートする
  2. イメージを変換しXen上で起動すると、プラグアンドプレイでディスクを認識し起動してくれる
また、すでにコンバート済みの場合には、別のマシンで対象の仮想ドライブをマウントし、レジストリエディタでハイブの読み込みを利用して起動の調整が可能とのこと