2014年11月28日金曜日

Proxy Switchy! Auto Switch Mode doesn't work on windows 7

it can be fixed by replacing an dll file.

C:\Users\\AppData\Local\Google\Chrome\User Data\Default\Extensions\caehdcpeofiiigpdhbabniblemipncjj\1.6.3_0\plugins\npSwitchy.dll

Issue 338 - switchy - auto switch mode set wrong pac url - Manage and switch between multiple proxy profiles quickly and easily. - Google Project Hosting
https://code.google.com/p/switchy/issues/detail?id=338

1. Close all Chrome windows
2. rename the dll like npSwitchy.dll -> npSwitchy.dll.bak
3. DL new dll via https://switchy.googlecode.com/issues/attachment?aid=3380009000&name=npSwitchy.dll&token=ABZ6GAeDFOJfek2l0I0PweYzcQopJhqAgg%3A1417172501056

That's it.

Proxy Switchy! のAuto Switch Modeがあるときから使えなくなっていた。
ずっとほっておいたが本腰を入れて調べたところ、どうも自動生成しているPACファイルのファイル名が
SwitchyAuto.pac?XXXXX
になるべきところ、
SwitchyAuto.pacc?XXXXX
と、なぜか拡張子のcが余分についてくるようになってしまった模様。

この問題を解消してくれるDLLが下記URLに公開されていたので、
それをDLして差し替えたところ、問題が解消した。
Issue 338 - switchy - auto switch mode set wrong pac url - Manage and switch between multiple proxy profiles quickly and easily. - Google Project Hosting
https://code.google.com/p/switchy/issues/detail?id=338

https://switchy.googlecode.com/issues/attachment?aid=3380009000&name=npSwitchy.dll&token=ABZ6GAeDFOJfek2l0I0PweYzcQopJhqAgg%3A1417172501056

#リンク先にあるように、pacファイルのアドレスを入力する欄に記載されているパスが、
 何故か\から%5Cに置き換わってしまったが、まぁ問題ない模様。

2014年10月29日水曜日

故障したRAID5構成のTeraStationからデータ救出(無料)

職場で使っている Buffalo の TeraStation(HD-QSSU2/R5) が壊れた。
月曜日に出社したら赤ランプが4つとも点灯していた。
赤ランプ全点灯てことは、2本以上同時に壊れたのか?

RAID5を過信すると怖いっすね。。。
非常に困るのでなんとかデータ救出したいと思い色々調べていると下記の情報を発見。

RAID5 が壊れた・・・ - マニログ

非常に心強い。ディスク2本壊れても何とかなるもんなんすね。

4本のハードディスク(のうち3本)の中身さえ抽出できればつなぎ合わせることで救出できそうなことがわかった。
そこで何はともあれ、分解して中身をバックアップすることにした。

使われていないデスクトップPCがあったので、4本のディスクのうち2本(SATAポート数の都合)をつないで、UbuntuをUSB起動してddコマンドでイメージ化することにした。

ddイメージの出力先は、容量の都合でネットワーク上のドライブ(NAS)にした。ので、時間がかかった。。。

時間がかかりすぎるので調べたところ、GNU ddrescueコマンドがよさ気なのでそちらを使うことにした。
下記のような感じで2本×2回に分けて実施。(USB起動のUbuntuを使っていたため、リブート後にもGNU ddrescue等入れなおす必要があった。。)

ディスク情報を取得

sudo su
fdisk -l

→どちらが/dev/sdaでどちらが/dev/sdbか確認。セクタ数も確認しておく。

ネットワークドライブをマウント

mkdir /mnt/smb
mount //xxx.xx.xx.xxx/xxx /mnt/smb -o username=xxxxxxxx
mkdir ~/workspace
cd ~/workspace/
ln -s /mnt/smb/xxxxxx_work
cd xxxxxx_work

GNU ddrescueを(プロキシ経由で)インストール

export http_proxy="http://***:***@**proxy****:NNNN/"
export https_proxy=$http_proxy
add-apt-repository universe
apt-get update
apt-get install gddrescue

一台目のディスクをイメージに出力

ddrescue -f -n /dev/sdb disk3ddrescue.img disk3ddrescue.log

もう一つコンソールを立ち上げて、もう一台も同時実行

ddrescue -f -n /dev/sda disk4ddrescue.img disk4ddrescue.log

一晩放置した結果、エラー無く2本とも抽出できていたので、前述のとおりUbuntuをシャットダウンし、
残りの二本につなぎ替えて上記を(disk3, disk4のところはdisk1, disk2に置き換えて)もう一度実行。

4本分のHDDイメージはいずれもエラー無く抽出完了したため、パリティから復元するのではなく、4つのイメージ(のうち3つ)から512バイトごと毎にデータを取得して、ひとつのイメージとして合成することにした。
rubyで簡単なスクリプトを作成し実行。

apt-get install ruby
vi raid5merge.rb

raid5merg.rb

disks = []
sectors = 488_397_167 #各ディスクのセクタ数。4台共同一だった。

(1..4).each{|i|
  disks.push << File.open("./disk#{i}ddrescue.img","rb")
}
out = File.open("./merged_disk_ddrescue.img","wb")

buff = ""

sectors.times{|i|
  4.times{|j|
    #disk4→3→2→1→4→3→2→1の順でスキップ。
    if 3 == (j+i)%4
      disks[j].read(512)
      next
    end
    buff << disks[j].read(512)
  }

  if buff.length < 50*1024*1024 #高速化のため、50MB分読み込むまで書き出ししないようにしてみた。
    out.print buff
    buff = ""
  end
}
out.print buff if buff.length > 0
ruby raid5merge.rb

ddのイメージファイルをWindowsでマウントしたいなぁと思い、調査したところ「ImDisk Virtual Disk Driver」てやつがフリーで良さげだった。
インストールし、イメージをマウントして中身が読み書きできることを確認。
ddイメージをNAS上に書き出していたので、メインで使用しているWindows機からもすぐアクセスできて便利だった。(が遅い)

元の4本のHDDは故障しているわけではなさそうだったので、もう一度TeraStationに組み戻して、TeraStationをRAID5で初期化した後、イメージから書き戻すことにした。

現在はFastCopyでコピー中だが、非常に時間がかかる。。。。

2014年8月14日木曜日

PC(Windows 7)からRoot化せずにNexus 7(Android 4.4.3)を操作する

PC(Windows 7)からRoot化せずにNexus 7(Android 4.4.3)を操作するため、こちらのページの下の方を参考に、asm.jarを導入した。おおまかな流れは下記。
※予めAndroid SDKをインストールしておく必要あり。
  1. Nexus 7にて、USBデバッグモードを有効にする。
  2. Windows 7側にAndroid USB Driverをインストールする。
  3. asm.jarをDownloadし実行する。

Nexus 7にて、USBデバッグモードを有効にする。

  • こちらのページに従い、設定アプリ→タブレット情報→「ビルド番号」を7回タップ(!?)
  • 設定画面にもどり、「開発者向けオプション」を選択
  • 「USBデバッグ」をONにする

Windows 7側にAndroid USB Driverをインストールする。

  • android.comのGoogle Driverのページ
    を開き、「Download Android USB Driver」ボタンからドライバをDL
  • ZIPを解凍
  • デバイスマネージャを開き、不明なデバイスになっているNexus 7を選択
  • ドライバーの更新を行い、上記で解凍したフォルダを指定してドライバーをインストールする
最初はドライバが正常に認識されていないことに気づかず苦戦したが、「Android Screen Monitor - adakoda」を参考にトラブルシューティングしたところ、ドライバが足りないことが判明した。

asm.jarをDownloadし実行する。

Android Screen Monitorのページからasm.jar 3.0.0をDLし、Android SDKのplatform-toolsディレクトリの下にasm.jarを配置してダブルクリック。

2014年8月12日火曜日

SynergyでWindows 7 を Serverに、 Mac OSX 10.9 Merverics をClientにした時にキーボードが効かない

テンキーだけは有効だった。
Synergyのバージョンはサーバ、クライアント共に1.5 Premium。

http://anago.2ch.net/test/read.cgi/software/1131466455/922
上記を参考に、キーボードの入力ソースに「Unicode Hex Input」を追加し、Synergy(クライアント側)を再起動したら入力できるようになった!
※Unicode Hex Inputは「その他」にある。

ただ、日本語と英語の切り替えがうまくできない?みたいだ。。。

ちなみに、リンク先の918さんのように、SynergyKM 1.0.1も試したがうまく行かなかった。
~~

Germanにすると良い、という話題も見かけたので試したが、うまく行かなかった。
http://448.jp/blog/article/1432/

が、よく考えるとSynergyを再起動していないことが原因かもしれない。
英語っぽい配列を選んだ後にクライアント側を再起動するのがよいのかも?

~~追記~~
日本語と英語の切り替えはAlt(=Cmd)+ Spaceで実現できた。
※参考:http://4th-life.com/mac/synergy/

bitnamiで落としたWindows版Open Atriumが正常に起動しない

bitnamiで「bitnami-openatrium-2.19-1-windows-installer.exe」を落としてインストールしたが、
起動後にAtriumを開くとエラーメッセージが。。

下記のサイトに対処法が載っていた。
http://stackoverflow.com/questions/4632779/drupal-7-is-unable-to-install-modules/4633270#

tmpフォルダの設定が誤っている模様。無理やりログインして下記のページに辿り着いて、値を修正すれば解消した。

http://****/openatrium/admin/config/media/file-system
Home » Administration » Configuration » Media » File system

にて
Temporary directoryの値を
/tmp

sites/default/files\tmp
に書き換え。

Excellent Analyticsでログインできない

Google側で不審なアプリからのアクセスだと認識されてブロックされていた。

アカウントのセキュリティ>最近のアクティビティ(https://security.google.com/settings/security/activity)で確認可能。

許可したらログインできた。


「安全性の低いアプリ」を有効にする必要がある、ということらしい。
https://www.google.com/settings/security/lesssecureapps

2014年8月11日月曜日

IP電話で固定費0の家電(イエデン)を実現

こちらのサイトを参考に同じ環境で揃えさせていただいた。
途中、罠にはまったところが二箇所。
  1. 電話線を挿す口が逆
  2. マンションの回線なのでプライベートIPが付与されており、NAT超え出来ない
1.の方は、直感的には外側のほうが1番のポートだと思い込んでいたけど逆。
参考にさせて頂いたサイトに載っていた画像のとおりにつなぐべきだった。。。

2.の方は、STUNとやらを使うことで解決。
どうやらインターネット側から我が家のHT702へたどりつけるようにするために、インターネット上に公開されている仲介サーバ(STUN)を使う必要があるらしい。
STUNサーバは、自前で用意するのは大変なので、無料で公開されているサーバーを使わせていただくことにした。
無料のSTUNサーバは、googleで適当に見繕った。

で、HT702側は下記の三箇所を設定し、リブートすればオッケー。
FXS PORT1で
①NAT TraversalをSTUNに。
advanced settingの
② STUN server isにgoogleで調べたサーバー名を、
③ Use STUN to detect network connectivityをyesに。

なお、参考元サイトのコメント欄にある様な、
  • 先にスマホでアクティベーションしているとダメ、とか
  • 着信してもすぐ切れる、とか
  • 携帯にかけるときだけ国番号が必要、とか
はなかった。

ただし、一度試しにSTUNをやめてNAT keep aliveにしてみた時は、受発信ともにつながるが、音声が一切聞こえずすぐ切れる、という感じだった。