4本指水平スワイプでSpacesを移動する

MacOSXのマルチタッチジェスチャーで、4本指による左右スワイプはアプリケーション切換(Command + Tab)にアサインされています。ただ、スワイプ操作でこれをする場合、確定操作をしないとスイッチャーが消えてくれない為、いまいち使い勝手がよくありませんでした(キーボードからCommand + Tabした時は不要)。ならばいっそこのジェスチャーはSpaces間の移動に使えた方が便利じゃね?と思って環境設定をいじってみたんですが、そういうアサインはできなそげ。

結局、BetterTouchToolというユーティリティを導入することで実現できました。設定例としては、

  1. 「システム環境設定」->「トラックパッド」で一番下の「左右にスワイプでアプリケーションを切り替える」をオフ
  2. BetterTouchToolの「Gestures」->「Trackpad / Magic Trackpad」で、「Four Finger Swipe Left」にCommand+←(Tool上の表記は「^←」)をアサインする。同Rightも同様に。
  3. 「システム環境設定」->「Expose と Spaces」->「Spaces」で「操作スペース間の切り換え」に「^ 矢印キー」を選択

という感じ。もちろんCommand + 左右矢印を別のことに使ってるなら、2.と3.は適宜別の設定をご利用下さい。

また、このツールはアプリケーションなのでOS起動時に自動で立ち上がってくれるように、General Settingsの「Launch BetterTouchTool on startup」にチェックをしておきます。滅多に設置をいじらないなら、「Show Menubar Icon」を外して、代わりに「Add BTT PreferencePane to your System Preferences」しておくと、「システム環境設定」から設定画面を呼び出せるようになって便利です。

更にこのツールは、Windows7のウインドウスナップ相当の機能も実現してくれます。特にウインドウのタイトルバーをドラッグして画面上端にあてると全画面化してくれるのは重宝しますね。

64bit非対応のMac用USBディスプレイアダプタが動いた!

先日Mac miniをデュアルモニタ化するために買ったIO-DATAのUSB-DVIディスプレイアダプタUSB-RGB/D2ですが、64bitモードで動くMacBook Proだとインストーラーが非対応CPUだといってドライバが入れられず利用できていませんでした。メッセージ的にはCPUが非対応といっているので、Sandy Bridge世代のCore iプロセッサをインストーラーが誤検知してるんじゃないかと思ってサポートにメールしてみたんですが、そうではなくそもそも64bitに対応していないということが判明しました。公式ページには明示されてますが、Mac miniを買った時点ではまったく気にしてませんでした。こうしてMacBookのメインラインも64bitが標準になった今、対応を急いでほしいですね。

でまぁ使えないものは仕方ないとしばらく放置してたんですが、ふと「どうせIO-DATAやBUFFALOなんてOEM製品を買ってきてるだけなんだから、その元メーカー辿ってみれば対応ドライバもすでに配布されてるんじゃね?」と思い検索。ビンゴでした!

この製品はDisplayLinkというメーカーが作っているらしく、こちらにある1.6β3ドライバを入れてみたところ、MacBook Pro Early 2011で見事動作しました!いずれ正式版がリリースされればIO-DATAも更新してくれるかも知れませんね。

プロセッサが高速になったせいか、Mac miniで使ってた時よりも書き換えのコマ落ちが減って滑らかになったような気もします。

■画質調整ができない

これはβ版というよりUSBだからなんでしょうけど、OSの画質調整(「モニタ」->「カラー」からできるもの)は一切機能しないようです。ちとギラギラすぎたので調整しようと思ったんですが。とりあえずモニタ側の調整で済ますしかないようです。

■Spacesとデュアルモニタの相性

Mac miniではSpaces使ってなかったので気付かなかったんですが、デュアルモニタで使うと両モニタとも動いちゃうんですね。つまり、Spacesを3画面分作成してると、モニタ2枚x3セットという状態になり、例えばサブモニタに資料を表示したままメインモニタをSpacesで切換、みたいなことができません。うーん、これは微妙だ。なにか回避手段はないですかね。

TimeMachineデータをお引っ越し

MacOSX 10.5 (Leopard)から搭載されたバックアップ機能TimeMachineは便利ですよね。一度設定してしまえばバックグラウンドでデータをバックアップ、しかもほとんど気づかない程度の負荷でいつのまにか完了してる感じ。バックアップドライブとつながっていれば1時間毎のスナップショットがとれるので、うっかり削除や上書きしてしまったファイルも簡単に取り戻すことができます。

さてTimeMachineのバックアップ先はUSB/FireWire等でつないだローカルディスクかLAN上にあるネットワークストレージですが、MacBook Air/Proの我が家では紐付きになるのは論外。ということでAir購入時既に家にあったLinkStation miniがTimeMachine対応してたのでそちらを利用していました。しかしAir/Proの2台体制になりLinkStationの容量を圧迫してきたので、引っ越しを決意。ちょうど我が家の無線LANアクセスポイントはAirMac Extreme。これにUSBで外付けHDDをつなげば、Time Capsule的に機能させることができます。MBPをSSD換装することで余った500GBの2.5inch HDDを適当なケースに入れて利用することに。

■TimeMachineのファイル構成

TimeMachineはHFS+フォーマットのストレージの上に、ハードリンクを使ったミラーコピーをとります。ハードリンクとは、エイリアス(Windowsでいうショートカット)の応用的な機能で、エイリアスでは本体とエイリアスが明確に区別されているのに対し、ハードリンクではどちらが本物という区別はなく、片方が削除されてももう片方が残っていればそれが本物という扱いになる、というもの。AというファイルのハードリンクA’を作成し、最初のAを削除した場合、エイリアスだとA’だけ残っていてももう元ファイルは読めないですが、ハードリンクならA’が本物となります(そもそも最初から両方本物なんですがまぁわかりやすく例えると、です)。

TimeMachineではまず最初に全てのファイルをコピーし、次のタイミングでは各ファイルを既にあるコピーと比較し変更があれば新たにコピー、変更がない場合はハードリンクを張る、ということをしているようです。そうすると、どのバックアップ時間のフォルダに入っても全てのファイルがそこにあるように見えるし、古い日付のフォルダを丸ごと削除しても、同じファイルを参照しているハードリンクが他の日付フォルダに存在する限り、実体が消えてしまうことはありません。上手いやり方ですね。まぁもともとはUNIX由来の技術ですし、Windows Home Serverなんかでは更に複数のPCでの重複ファイルをハードリンクで済ますことでバックアップ総量を抑えるなんてことまでしてたりしますが。TimeMachineの場合、グラフィカルでわかりやすいUIでそれをカバーして過去のファイルを簡単に取り出せるようにしたところが特長と言えるでしょう。

さて話が遠回りになりましたが、TimeMachineはこのバックアップを作るストレージを1つのディスクイメージとして作成します。TimeMachineの保存先に指定したディスクのルートフォルダに、1台のMacにつき1つのファイルが作られます。ファイル名は、「マシン名_MACアドレス.sparsebundle」みたいな感じ。基本的にはネットワークマウントできる(HFS+の?)ボリュームにこのファイルが置ければTimeMachine保存先として使えるみたいです。むしろこの形式のディスクイメージを最初に作るところが少しコツがいって、TimeMachine対応を謳うNASの場合、Web管理画面からこれを新規作成できるって意味合いが強いみたいです(手作業でディスクユーティリティで作って、適当なネットワークフォルダに置き、社外NASもTimeMachine対象に含めるというおなじないをターミナルで入力すれば、非対応NASでも使用可能みたい)。

今回は既にLinkStation miniによって作られたディスクイメージがあり、保存先はApple製品が作るネットワークフォルダなので特に難しいことはなく、単純にコピーだけで済みました。一応手順を書くと、

  • 目的のUSB-HDDをMacに直接つなぐ
  • ディスクユーティリティでHFS+パーティションを作る
  • USB-HDDをAirMac Extremeにつなぎかえ、AirMacユーティリティから共有設定をする
  • Macからネットワークフォルダとしてマウントできることを確認
  • TimeMachineバックアップを止める
  • LinkStation miniのバックアップ領域を手動でマウントし、*.sparsebundleファイルを新ディスクのルートフォルダに移動
  • TimeMachine設定で新しいドライブを指定する

こんな感じであっさり移行できました。

ちなみにTimeMachineはパーティションの容量がある限り差分をとり続けるらしいので、通常のファイル共有にも使いたい場合はパーティションをわけて切っておくのがいいようです。ディスクユーティリティでイメージの上限サイズも決められるみたいですが、ファイル共有フォルダのルートに常にバックアップファイルが見えてるのは心臓に悪いですし。ただし、後述の「どこでもMy Mac」用とをにらんで、AirMacユーティリティでユーザアカウント設定をしたところ、ユーザ名によるネットワークフォルダは別途作成されました。バックアップがパンパンに膨れあがるまでは、(バックアップファイルを目にすることなく)そちらをファイル共有の場として使用することは出来ます。

■どこでもMy Macでの利用は苦戦中

どこでもMy MacによるWAN経由の使用は成功していません。一応、ポートをあけてIPアドレスで指定すればマウントはできるんですが、TimeMachineボリュームと同一のものとはみなしてくれない感じ。こちらは追々検証していきます。

Poptopを使ったPPTP接続でブロードキャストを有効にする

前エントリでVPN(PPTP)経由でWake-On-LAN(以下WOL)を使おうとしたら上手くいきませんでした。WOLでは相手のMACアドレスを使って宛先指定をしていますが、実際にはブロードキャストを使うみたいで、これは通常PPTPでは中継されません。

我が家のサーバーで使っているPPTP実装はPoptopで、ググってみると設定ファイルで1行変更するだけでブロードキャストパケットを転送することができました。具体的には、/etc/pptpd.confで

bcrelay eth0

のようにします。eth0の部分はサーバーのLAN側に使っているネットワークデバイスを指定します。これが受けたブロードキャストパケットをVPN側に丸投げしてくれるようになります。デフォルトでオフなのは、大量のブロードキャストが流れるLANにつないだ場合、VPNの帯域が圧迫されるからでしょう。すばらく様子をみて実際に問題なようだったらオフに戻して、WOLはサーバー経由で運用しようかと。

あと残念ながらこのオプションを有効にしてもiTunes共有などのBonjourは機能しませんでした。

サーバー類のリモート電源操作環境を整備

計画停電や節電の関係で24時間稼働していたサーバーをスリープ運用に切り替えたり、停電空けの自動復帰が上手くいかなくて遠隔でリモート起動させないとならない場合があります。iPhoneアプリの活用も含めて、ここ最近やった準備をまとめておきます。同じことを考えてる方の参考になれば幸いです。

■我が家の構成

我が家はメインのサーバーがhpのML115G1でUPS(無停電電源装置)を使って保護しています。このLinuxサーバーがVPN(PPTP)サーバーも兼ねているので、これが落ちていると基本的に他の全てのマシンにもアクセスできません。Webサーバー、メールサーバーも稼働しているので、最低限このPCの稼働状態を保つことが最優先です。残念なことにこのマシンはBIOSでAC電源断後の自動起動を設定しても、UPS等による正常シャットダウンの場合は「不意の電源断」と見なされず自動起動してくれないようなのですが、幸いこの激安サーバーのBTOオプションでLights-Out 100cという遠隔管理ボードをつけてあり、これを利用すれば遠隔再起動できました。

2番目に重要なのはテレビ録画用の自作Windowsマシン。今までは安定性重視で24時間稼働だったのを節電時間帯はスリープに切り替えました(でもまだ録画完了後に自動でスリープに落ちないとか課題あり)。しかしこのPCはHDD容量の余裕もあることから、一時ファイル置き場にもなっていて、スリープしてるのを外から起こして中のファイルを取り出したくなったりします。これは仕事用PCなども同様ですが、これらはメインサーバーが生きていてPPTPで自宅内LANに入ることができれば、後はWake-On-Lan(LANケーブルからの特殊パケットによってPCを起動させる機能)を使って起こすことは可能です。

ついでに、先日買ったMacBook Proと同Airを「どこでもMy Mac」機能で相互に遠隔操作できるようにしたので、据え置きでスリープしているMBPを、外出先のMBAから利用できるようこちらも設定してみました。

■ML115 + Lights-Out 100cを遠隔操作で起こす

Lights-Out 100cはML115のPCIバスに装着されたボードで、本体が通電されてる限りは起動している独立したプロセッサをもつ簡易サーバーです。本体とは別のEthernetポートをもっていて、IPアドレスも独立です。Webブラウザやtelnet/SSHターミナルからアクセスして、本体のハードウェア状況(温度やファンの回転数など)を監視したり、電源のON/OFFができます(例えばOSがフリーズして全く操作を受け付けなくなっても、こちらからブチッとやれる)。また本体のグラフィック出力やキーボード入力に割り込め、ブラウザ画面から物理モニタ、キーボードの前にいるのと同じ操作が行えます(ネットワーク的に死んでいてもコンソールで操作したりエラーメッセージを読み取るなどの余地が残る)。ハードウェアレベルで画面共有付きの遠隔操作できる訳ですね。

IMG_0865 IMG_0866

今回の場合、画面共有までは不要で、電源投入操作が行えればOK。WebやSSHでもできるんですが、出先からなるべく簡単に行いたいということで、先日教えていただいたiPhoneアプリを導入しました。IPMI touchというものです。IPMIとはこうした遠隔管理システムのためのプロトコルで、Lights-Out 100cはIPMI 2.0の設定でいけます。

画面写真、左がハードの各種数値を表示した状態、右が電源操作画面です。ナウいですね。

今回のケースではLights-OutのもつIPアドレスはプライベートで、このPCが落ちてるとPPTPでも入れないという状況なので、ルーターの設定をいじってポートをリダイレクトしてやる必要がありました。セキュリティの為、必ずパスワードやユーザ名を変更しておきます。

余談ですが、このパスワード変更を失敗してしまい、Lights-Outにアクセスできなくなり焦りました。BIOS画面辺りでリセットできるかと思ったんですがそう簡単でもなく、結局と海外の掲示板で調べ、あるツールとDOSをUSBメモリにインストールし、おまじないのような長い16進数パラメーターをつけたコマンドを実行する必要がありました。これあんまりおおっぴらにするのもなんだなということで覚え書きは自粛。個人的なメモに留めておきます。

■その他のPCをWake-On-LANで起こす

Wake-On-LANは今時のEthernetボード(マザーにオンボードのものも含む)ならまず対応しているみたいなので、起こされる側は特になにも設定の必要はないと思います。ただWindowsやMacではオフにする設定項目もあるので、もし起きないようならチェックしてみると良いでしょう。

Windowsの場合、デバイスマネージャーから該当するネットワークアダプタのプロパティを開き、「電源の管理」タブで「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする(O)」のチェックを確認します(細かい文言はWindowsのバージョンによって違うかも知れません)。

MacOSXの場合、システム環境設定の「省エネルギー」で「ネットワークアクセスによってスリープを解除」でいいと思います。

さて、Wake-On-LANといえど、どんなパケットにも反応して起きてしまっては困りますので、マジックパケットと呼ばれる一定のルールに沿ったパケットを受信した時だけ復帰を実行するようになっています(モノによってはそれ以外のも反応するよう設定できるみたいです)。つまり起こす側はこのマジックパケットを出力できる必要があります。あと、PCが起動していない以上、IPアドレスは不定なので、マジックパケット送信のための宛先指定はMACアドレス(全てのネットワーク機器がもつ個別の識別番号)を使います。起こしたいマシンの有線LANポートがもつMACアドレスを予め調べておいて下さい。

・Linuxで起こす

ウチの場合、どのみちPPTPサーバーであるメインサーバーが起きていることが前提なのでそこにSSHでログインしてコマンドを叩くのが簡単です。CentOSの場合、net-toolsというパッケージに含まれるether-wakeというコマンドが使えます。ウチの場合は最初からインストール済みでしたが、もしない場合は、

yum install net-tools

でインストールできると思います。

使い方はシンプルで、

/sbin/ether-wake 00:5c:a9:21:55:ff

のようにMACアドレスを指定してやるだけ。root権限が必要みたいです。

σ(^^)はマシン毎のMACアドレスを覚えるのが大変なので、rootの.bashrcに

alias wake_pc1=’/sbin/ether-wake 00:5c:a9:21:55:ff’

のように書いておきました。これで次回ログイン時からは単にwake_pc1で実行できます。

・iPhoneアプリで起こす
IMG_0867

iPhoneからでもSSHアプリを使えば上記手順でできる訳ですが、アプリで簡単にできるものはそっちを使う主義なので、専用アプリを導入しました。iNet Proというアプリで700円です。これはスキャナーなどのネットワークツールの詰め合わせアプリなのでちと高いですが、同じところが出しているWake-On-LAN専用アプリiNet WOLなら230円です。

前者のみかも知れませんが、LAN内で稼働中のマシン一覧を取得してそこからリスト登録ができるので、一台ずつMACアドレスを調べて手打ちする手間も省けてGoodでした。

また相手がMacの場合、設定画面でIDとパスワードを保存しておけば、スリープ移行やシャットダウンもできるようです。ただウチでスリープを試した限り、画面は消えるものの、スリープランプが点滅にならないという感じでした。

(iPhoneのようにVPN経由で接続した端末からマジックパケットを送る場合、PPTPサーバー側でブロードキャストパケット中継を行う設定が必要でした。これは別エントリで説明します。)

・ルーター管理画面から起こす

BUFFALOの一部のブロードバンドルーターでは管理画面からLAN内の各マシンにマジックパケットを送る機能があるみたいです。該当機種をお使いの場合、それも簡単で良いかも知れません。