Windows8でLinkStation/TeraStationにアクセスできない時の覚書き

Windows8にしたらLinkStation(WVL)にアクセスできなくなりました。認証画面にいくらパスワードを入れても通りません。Window7出たてのころにも話題になった、中身がLinux + SambaでありがちなLAN Manager認証方式の問題が上書きインストールで再発したのかなぁと思ったんですが、どうも今回はちょっと話が違いました。

BUFFALOのWindows8互換情報ページを見ると、

*3 @を含むユーザー名はLink/TeraStationのユーザーとして登録することは出来ません。(そのため@が含まれるWindows Live IDもユーザーとして登録することは出来ません。)共有フォルダのアクセス制限設定を使用する際は、Windows8のローカルアカウントを使用して下さい。

とあります。ひでぇ…Windows8ではMicrosoftアカウント(旧Liveアカウント)でログインするのが標準になったわけですが、それだと使えないので、共有の認証をオフにするか、従来形式のローカルアカウントで使ってね(てへぺろ、って言ってる訳です。ローカルアカウントだとWindowsストアにもアクセスできないし、マシン間の設定同期なども効かないのでWindows8の魅力半減って感じです。これでよく「Windows8対応」のロゴつけてるな、と。

がしかし、幸い簡単に回避できました。コントロールパネルから「資格情報マネージャー」を開き(右上の検索欄を使うと素早くたどり着けます)、「Windows資格情報」を選択、「Windows資格情報の追加」を選び、サーバー名、ID、パスワードを登録してやればOKでした。

image

TeraStation ProのHDDを総取っ替えした時の覚え書き

実家で使っていたTeraStation Pro (TS-HTGL/R5シリーズ)のHDD3が故障し、ついでに買い換えることになったのでヤフオクで処分する為に預かって来て復旧作業。

500GBx4=2.0TBモデルだったで、ちょうど以前使っていたTeraStation Livingから抜いて放置してあった500GBドライブを使って換装。前者はWD、後者はHitachiだけど、まぁ同じ筐体のモデルで採用されてた同士だから平気でしょと。

まずは保管してあったLivingのHDDのうち1台を、Proの故障したHDD3と交換。これがマズかった。HDD内にLivingのファームと設定が残っていたのが正常なHDD1,2,4にコピーされてしまったorz。ホスト名やIPアドレスどころか型番までLivingのものに。HDD3を抜いて元のHDD1,2,4だけにしても変わらず。3対1という以前に元からあったファームが、別モデルのそれで上書きされるとかチェック甘いなぁ…。モデル名とかチェックせずに単に一番新しいファームを選んで他のHDDにミラーするような仕組みなんですかねぇ。まぁ、こんな変則的な交換する人もそうそういないだろうけど…

仕方ないので、どうせデータは必要ないしということで4台全部Living由来のHitachiに総取っ替えしてゼロから環境構築することに。ランニングタイム的にもずっと眠ってたHitachiの方が状態良いでしょう(1台逝ったPro内の他の3台も遠からず逝く可能性大)。各HDDをWindows機にマウントし、全てのパーティションを削除しHDDトレイをつけかえます。この際、ケーブルの脱落防止のプラスチック部品が経年劣化で脆くなっているので折らないように注意。σ(^^)は1本完全に折り、もう1本ヒビを入れてしまいましたorz。

真っ新なHDD4台を入れて電源投入。しかしここでまたハマる。当初、ファームの入っていないHDDで起動した場合、EMモード(Emergencyモード)で起動し、PCから最新版のファームウェアアップデーターを使ってファームウェアを流し込んでやればいいと思ってたんですが、実際にはEMモードすら起動せずTFTPモードというのになりました。これは本体内に最低限のソフトしかなく、文字通りTFTPでファームイメージをダウンロードしてブートするモード。基本的にはメーカーサポートで対処する用のモードで公式サイトには手順が明かされていませんが、ググると出てきます。公式から落としたアップデータをググると出てくるパスワードで解凍し、2つのファイル、initrd.buffaloとUimage.buffaloを用意(詳細はググって下さい)。それをWidnows用のTFTPサーバーに置いてTFTPモードのTeraStationに落とさせる、という形になります。この際、TFTPサーバーは決め打ちの192.168.11.1なのが地味に面倒で、一時的にネットワーク環境を変更しなければなりません。今回はルーターを介さずにTeraStationとWindows機を直結して、Windows機のIPアドレスを192.168.11.1に手動で固定することで足りました。

TFTPサーバーとしてはこの手法の定番であるTFTPDを使用。Vectorで探すと同名の別ものが出てくるので注意。ここでハマったのは設定画面の自動的に起動以外チェックボックスをONにしておくこと(こちらの記事に助けられました)。これをしないと、Uimage.buffaloの転送成功がログに残るものの実際には転送されず無限ループします。実際に転送が始まると10分程度はゆうにかかり、タスクトレイのアイコンがオレンジからブルーに変わります。オレンジのままの時はログにどう出てようと実際には転送できてないと考えて下さい。Uimage.buffaloが終わると続いてinitrd.buffaloも転送され、合計20分程度で音がして再起動し、無事EMモードに入ります。この状態でPC側でファームウェアーアップデーターを起動すればTeraStationが見えるはずです。ちなみに見えるだけならネットワークセグメントが違っていても見えますが、実際にアップデートしようとするとコケます。σ(^^)はEMモードで起動した時点で安心してネットワーク設定を元にもどしたところ、EMモードも192.168.11.xxxのままでアップデートに失敗しました。TFTPDで通信できてた状態でそのまま続けてアップデーターまでかけてしまうのが吉です。

なおファームウェアインストールが完了すると同時にアレイ1がスパニングで構築されます。念のためディスク消去を入念にかけた後、RAID5にでもして出品しようと思います。

Darwin Streaming Serverを試す

先日の「Macで手持ち動画ファイルをソーシャルビューイングする」というエントリで書いたHangoutを使う方法は、やはりフレームレートの低さに我慢がならず他の方法を模索しました。そういえば、OSX ServerもSnow LeopardまではQuicktime Streaming Serverを搭載してたのにLionでなくなったんだよなぁ、と思って代替ソリューションをググったところ、元々オープンソースで公開されていたので、野良ビルドというかポートされたものがあるのを発見。Darwin Streaming Serverという名前で、OSX以外にもLinuxやWindowsでも動かせるみたい。OSX用のパッケージはここで拾えます。いくつかつまづいたので導入メモなど。執筆時点のバージョンは6.0.3。もうApple的にはメンテが終息してるっぽいのであまり進化はしないかも知れないですね。

■導入メモ

・OSX Serverにインストールできるようにする

なぜかインストーラー.pkgがServer OSを弾く設定になっています。もともとServer OSには入ってたものなのでその名残?こちらに回避策がありました。まず.dmgファイルを開いて仮想ドライブとしてマウントし、中の.pkgファイルをローカルドライブにコピーします(そうしないと編集できないから)。.pkgファイルは実はフォルダなので、ターミナルでcdしていけば中に入れるんですが、DarwinStreamingServer.pkg/Contents/Resources/VolumeCheck というファイルをエディタで開いて、サーバーOSかどうか調べて弾く部分を丸々コメントアウトします。具体的には29行目以降に赤字の#を挿入します。

#  don’t install on OS X Server                                                                   
#if ( -e $INSTALLED_SERVER_OS_VERS )                                                              
#{                                                                                                
#    if ( -e $ERROR_STRINGS )                                                                     
#    {   #there are localized error strings so use them                                           
#        $RESULT = 114;                                                                           
#    }                  

これでインストーラーを起動すれば普通にインストールできます。管理者パスワードや動画の保存場所などを指定すると、インストーラーが最後にブラウザで設定ページを開いてくれるので、そこをブックマークするなりしておけば、以後全ての設定はそちらで行えるようになります。

 

・動画ファイルにヒントトラックを付加する

H.264+AACなMP4ファイルが利用できるはずですが、そのまま登録しても非対応と言われてしまいます。動画にヒントトラックというインデックス情報のようなものが含まれている必要があるみたいです。QuickTime Proやmp4boxというフリーのコマンドラインツールで付加できるようです。mp4boxはエンコ作業で普段から使ってるので、以下はWindows機で作業。

mp4box.exe –hint (元ファイル名).mp4 –out (新ファイル名).mp4

などとすればヒントトラック入りの別ファイルが作成されます。再エンコードするワケではないのでファイルコピー程度の時間で終わります。

ただ手持ちのmp4box 0.4.6-DEV (internal rev. 5)では「Invalid IsoMedia File」というエラーが出てハマりました。最新版とされている0.4.6-rev2735をゲットしてみたらOKでした。バージョンは、

mp4box.exe –version

で調べられます。

最近のMediaCoderならエンコード時に自動で付加することもできるっぽいですが、ファイルサイズで比べると1,2割は大きくなるようなので、全部のファイルに予め付与しておくのは無駄かなという印象。

 

・動画ファイルへのアクセス権を付与する

これはOSX Serverだけの現象かも知れませんが、プレイリストに動画を登録して再生スタートすると、

– PlaylistBroadcaster: Permission to access the SDP reference movie was denied.
   Read access required.
   (path: /Library/QuickTimeStreaming/Movies/hoge.mp4, errno: 13).

のようなエラーが出ます。他のサンプルファイルをみるとオーナーが_qtssとなっているので、それに揃えてやります。

sudo chown _qtss hoge.mp4

 

・80番ポートを使わない場合のポート番号

インストーラーまたはポート設定画面に「80番ポートを使う」という項目がありますが、通常80番はWebサーバーが使うので重複の心配があります。そこでオフにしてみたんですが、じゃぁ代わりに何番になるかというのがどこにも表示されていません。

わかった範囲では、

1022番:管理ページ

8000: http://プロトコロルによる動画配信(iOS向け?)

554番:rtsp//プロトコルによる動画配信

等。ただし8000番を使ったhttp配信はまだ成功していません。エラーメッセージ的にはつながってるっぽいってだけ。

 

・プレイリストを作って疑似ライブストリーミングをする

PC/Macでの視聴にはrtspプロトコルに対応した動画プレーヤーを使います。具体的にはQuickTime PlayerかVLC辺りがお手頃でしょう。ファイルメニューから「URLを開く」とか「場所を開く」「ネットワークを開く」といった文言の項目を選び、アドレスを入力するだけです。

サーバーの設定画面で指定したフォルダに、hoge.mp4というファイルを置いた場合、

rtsp://(IPアドレスまたはホスト名)/hoge.mp4

というアドレスを入れれば視聴できます(ルーター越えさせる場合は554ポートを開放しておく必要があります)。ただしこれだと個々にオンデマンドで再生されるので、単純にファイル共有して視聴するのとあまり代わりありません。せっかくストリーミングサーバーを介すのだから同期視聴してこそです。それにはプレイリストを作成します。管理ページ上で「Playlists」を選ぶとプレイリスト一覧画面になるので、「New Media Playlist」を選択し新規作成します。仮にNameをhoge、Mount Pointをhoge.sdpなどとしておきます。そしてファイル一覧に動画フォルダのファイル一覧が見えてるのでドラッグして右側のリストに追加し、「Save Changes」で保存して一覧画面に戻ります。一覧画面のプレイリストに再生ボタンがついているのでクリック。Statusが「Playing」になれば成功です。エラーが出た場合はアイコンをクリックすると詳細が確認できます。またServer自体が起動しているか左上の表示で確認しましょう。

「Playing」になっていると、誰かが見て様が見てまいがサーバー上では再生が進んでいる状態です。そこで、クライアントのプレーヤーソフトから、

rtsp://(IPアドレスまたはホスト名)/hoge.sdp

のようにMount Pointを指定してやると、視聴できると思います。

■使用感

・画質

画質に関してはHangoutやSkype、iChatの画面共有に比べてはっきりと優位を感じます。というか回線速度が追いついている限り、ローカルで再生しているのと同等だと思います。

 

・使い勝手

ここはやはりHangout等に比べると若干落ちます。まずホスト側ですらあまり自由に再生を制御できません。プレイリストの再生と停止しかできないので、ちょっと面子がトイレいくから一時停止ね、とかもできない。止めたらまたプレイリストの最初からになります。クライアント側でポーズはできますが、それは当人のところで止まるだけ。Hangout等であれば画面共有しているホスト役の人が一時亭ししたりオープニングをスキップしたりも自在なので、ここは惜しいところです。

また、サーバー側でプレイリストをPlayingにしてないとクライアントからつなぐこともできないので、全員接続してから再生スタート、ということもできず、サーバーでスタートさせてからチャットなどで「よしお前らつなげ!」などと号令をかけるしかない。それでも頭の数秒は見損ねてしまうでしょう。プレイリストの先頭にダミーの動画を10秒程度入れておくと良いかも知れません。

そしてもちろんチャット周りについては何も機能がないので、SkypeなりLive Messengerなりを別途使うしかありません。まぁここはお互いがIDをもってて使いやすいものを選べるというメリットでもありますが。

クライアント側に再生ソフトをインストールしなければならない点も負担な人には負担ですが、まぁ今時QuickTime PlayerはiTunes入れてればほぼ強制的に入るし、VLCもフリーだし許容範囲ですかね。今回ネットカフェから参加した人もいましたが、VLCは再起動しなくて使えるので好都合でした(ネットカフェのPCはセキュリティの為、再起動すると全ての変更が巻戻る)。

惜しいのは動画にヒントトラックをつけないと使えない点ですね。我が家にある膨大なライブラリから「よし今日はアレ観ようぜ」とかいって即座に始められません。さりとて現状の利用頻度では全てのファイルにあらかじめヒントトラックを埋め込んで置くのはちょっと手間的にも容量的にも非効率。mp4bpxでの付加自体にはそう時間はかからないので、なにかバッチファイルなり簡単に一括付加できるフロントエンドツールなどを作っておくといいんでしょう。

 

・安定性

やはり途中何度か映像が乱れたり音声が途切れたりということがありました。もともとストリーミングを意識してエンコした動画ファイルではないので、仕方ないかも知れません。感覚的にはやはり動きが激しくビットレートが高くなるところが不安定になってた気がします。たぶん可変ではなく固定ビットレートにすると良い気がしますが、普段使いの画質を優先するかトレードオフですね。1~2Mbps程度の動画で光同士ならほぼ無問題、WiMAXでたまに不調、一番ヒドいのは某ネットカフェから参加した人、って感じでした。一度乱れだしたら、軽く(数秒?)ポーズして先読みを進めてやると良いとか、それでもダメなら再接続が確実っぽかったです。

またどうしても接続後数秒(最初のIフレームまで?)は乱れまくります。

あと、プレイリスト上の動画ファイルをまたぐ時に、次のファイルが正常に再生されないという現象が何度か出ました。出る時は全員なのでサーバー側、それも個別のファイルの問題な気がします。ちょっとまで原因がつかめてないですが、こうなったら再生を止めてプレイリストを編集して前のファイルを消し、そのファイルを先頭にして再スタートさせるしかないみたい。

サーバー自体はエンコードなど負荷の高い処理をするわけではないので、余裕っぽいです。特にファンがうなりをあげるようなことはなかったです。>Mac mini Server 2011(Core i7)

 

とまぁ、こんな状況でアポイントの数時間前から突貫で準備を始め、なんとか4人で6時間に及ぶ動画視聴マラソンを楽しく実施することができました。

Lion ServerでiChatサーバーを設置する

ちょっと必要があってLion Server上にプライベートなチャットサービスを立ち上げるべく、iChatサーバーの設定に挑戦しました。

Lion ServerのiChatサービスには基本的にほとんど設定の余地はなく、

  • 他のサーバーと連携するか(する場合はドメイン指定)
  • チャットログを保存するか

しかありません。ぶっちゃけスイッチをONにするだけで起動します。

ただしウチ限定の現象かも知れませんがハマったので覚え書き。

■ポート開放

ルーターで開放(Lion Serverにリダイレクト)する必要があるポートは、

ポート番号 プロトコル 備考
5222 TCP チャット
5223 TCP チャット(SSL)
7777 TCP ファイル送受信
5678 UDP  
16384-16403 UDP ビデオチャット

という感じでした。この辺りを見ると他にもあるっぽいですが、とりあえずウチでは上記のみで一通り使えてる気がします。全クライアントにSSL利用を強制できるなら5222は開けなくてもいいかも。サーバー間連携を使う場合は5269(TCP)とかも必要でしょう。またウチのルーターはポート番号を範囲指定できす、ビデオチャット用のポートを全て個別に指定することはできず、欄がある限りで16384-16390のみ開放していますが、これもいまのところ問題なさげです。同時利用者数が増えたりすると足りなくなるのかも知れません。

■認証が通らない

次にハマったのが認証で蹴られてログインできない現象。「サーバー」アプリの「ログ」でiChatのサービスログをみると、

Jul 12 20:25:55 jabberd/c2s[52503]: SASL callback for non-existing host: hoge.com

というエラーが記録されています。どうも、アカウント名として、ホスト名無しの「ユーザ名@ドメイン名」形式は標準では受け付けないようです。「ユーザ名@ホスト名.ドメイン名」なら問題ないんですが、ウチの場合Lion Serverを外向けDNSに登録してなかったし、無駄にアドレスが長くなるし、ということで、こちらを参考に設定ファイルを直接書き換えました。

/etc/jabberd/sm.xml:

<local>
        <!– Who we identify ourselves as.
         Users will have this as the domain part of their JID.
         If you want your server to be accessible from other
         Jabber servers, this IDs must be FQDN resolvable by DNSes.
         If not set, the SM id is used. –>
        <id><myserver>.<mydomain>.com</id>

/etc/jabberd/c2s.xml:

<id require-starttls="true" pemfile="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.concat.pem" private-key-password="C4D239B3-87B9-4F58-9D3E-541587EFD7EF" cachain="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.chain.pem"><myserver>.<mydomain>.com</id>

それぞれ赤字部分を削除し、iChatサービスを再起動すればOKです。この手の編集はバージョンアップなどで元に戻ってしまう可能性もありますが、まぁ当面様子をみようと思います。

■クライアント

Lion まではiChat、Mountain Lion以降は「メッセージ」を使います。Lion + β版「メッセージ」で動作確認しました。またiChatサーバーはJabberのXMPPというプロトコル互換なので、Windows用の互換ツールでも(少なくともプレゼンスやテキストチャットのレベルは)問題ないと思います。

また残念ながらAppleからiChatクライアントはリリースされていませんが、Jabber/XMPPアプリは数多くあります。例えばimo instant messengerは日本語も含めて大丈夫っぽいです。画像もアップできますが、imo社のサーバーに置かれてURLが先方に届く形式のようで、プライベートな写真のやりとりには向かないかも知れません。

他にMonalはデザインも良く無料でなかなかなのですが、残念ながらiOS5の日本語キーボードサイズ変更問題に対処できておらず、日本語<->英語と切り替えると入力欄に文字が打てなくなる問題を孕んでいます。更新されたら是非こちらを使いたいとは思います。

その他、Cisco Jabber IM for iPhoneはログインできず、ボイスチャットも対応というOctro Talkはすぐにログイン、ログアウトを繰り返して実用にはなりませんでした。有料アプリではBeejiveIMシリーズ辺りが評価が高いようですが、まぁimoで必要最低限のことができそうなので試していません。

■iChatでできること

で、そもそもな話、iChatでなにができるのか、SkypeやiMessageとなにが違うのか、という話。

まず大きなのは自前のサーバーを立てることで、クローズドなチャットシステムを構築できるということですね。企業内でのやりとりをするのにSkypeやLive Messengerなどの半ば公のサービスを使えないところも少なくないでしょう。

Mountain Lionになって「メッセージ」アプリと統合されるので、iChatのために別アプリを立ち上げておかなくても良くなるのも嬉しいです。

機能面では、オンラインプレゼンス(退席中などのステータス表示)、テキストチャ
ット、ボイスチャット、ビデオチャット、画面共有など競合サービスにひけをとらない感じです。ただしビデオチャットの画質はSkype HD等には及ばず、従来のSkypeやLiveなどと同レベルという印象です。またiChat Theaterという機能で動画やPDFなどを共有することができます。ビデオチャット中に動画ファイルをドロップすると、ファイル転送するか再生するのか選択肢が表示され、再生すると向こうとこちらで同期して動画視聴ができます。この時、スライダーを動かしたり一時停止したりといった操作はファイルをドロップした側の人のみ可能です。これも残念ながら画質はVGA程度です。また常に相手のカメラ映像も並んで表示され、全画面で動画を表示することはできません。でもまぁ動画を観ながらチャットというのはなかなか楽しげな気はします(ちなみにYouTube上の動画であればGoogleのHangoutで似たようなことが可能です)。

2012.07.15追記:

画面共有は相手側の操作もできますね。これはSkypeなどでもできないのでWindows同士でのLive Messengerに匹敵するメリットです。遠隔のMacをサポートする時などは便利です。Live Messengerはルーター環境によってつながらないこともあって、最近はSkypeで画面を”見るだけ”で操作は相手に口頭で伝えてやってもらうことが多かったんですが、Mac同士ならウチのサーバーにアカウント発行してつないでもらうのがヨサゲ。

sambaでWindows機などをcifsマウントできなくなった時の覚え書き

ウチのLinuxサーバー機で、LinkStationとWindows7機の共有ボリュームをマウントできなくなりました。うーん、月初めにはできてたはずなんですが。環境は、CentOS 5.6にwingリポジトリさんで配布しているsamba36-3.6.1を入れて使っています。3.6.3が出てたので更新してみたがかわらず。

dmesgには、

CIFS VFS: cifs_mount failed w/return code = –6

と出ますが、ググってもこれといった情報がつかめず。

結局mountコマンドであれこれ試してちゃんとマウントできるパターンと、/etc/fstabの記述を見比べてわかったのは、

//machine/share/ /mnt/machinename/sharename cifs ro,user=hoge,password=fuga,noauto 0 0

の赤字の部分。このスラッシュを削ったら通常通りmount /mnt/machinename/sharenameだけでマウントしてくれるようになりました。うーん、今までこれで使えてたのになぁ。先週くらいの大量のyum updateかなぁ(普段除外されてるwingリポジトリのsamba36はそれでは更新されないはずだけど)。改めてfstabの書き方をググるとみんな最後のスラッシュつけてないので、いままでがたまたま動いてたとか、どこかでつけないルールになってたけど移行猶予で動いちゃってた、とかなんですかね。

ともあれ、上のエラーメッセージでググって誰かが幸せになれればと覚え書きを残しておきます。