2011/04/24(日)Win7 -> WinXPファイルコピー問題

2011/04/24 11:01 PC(全般)
ファイルコピーや移動しようとしたときに失敗する問題。
環境は、
[コピー元]
メインPC: Windows7(64bit)
[コピー先]
サブPC: WindowsXP SP3

デフォルトsmb経由。

[症状]
・エクスプローラからなら、ネットワークエラーダイアログが出て「アクセス中に問題が発生しました」となる。
・fire file copyからなら、「指定されたネットワーク名は利用できません」となる。

[発生時期]
メインPCをWin7(64bit)に入れ替えた時期か、サブPCのM/Bを替えてNICをRTL8111Eにした時。

さて、確定で切り分けまでしなかったのだが、どうも【解決】ファイル共有での遅延問題
これと同じ問題のようだ。

現在メインPC・サブPCともNICをRealtek RTL8111Eにしたので、ジャンボフレームを共通でMTU=9KB(MAX)としていた。だが、例の問題を思い出すと(Win7でもsmbの仕様が変わってないのなら)、9KBをデフォルトブロックサイズ4356byteで分割すると、奇数回となり最終応答が帰ってこない。Win7のコピー・移動の手順内でリモートディレクトリのブラウジングが走り、その際にパケットが返ってこないとそのネットワークプレースを使えないと見なすのでは?(ちゃんとパケットキャプチャしなかったので想像)

そんなわけで、4536byte分割で必ず偶数回になるようなMTUを設定してやることにする。今回はジャンボフレーム指定できるNICなのでメインPC、サブPCともMTU=8KBとしてみた。

ワオ、解決。

ほかに試したのは、セキュリティソフト全落としで、これは特に変化無し。

ちゃんと検証するならジャンボフレーム4KBの時にどうなるかやればいいんだろうけど…… まあ今回はいいや。ジャンボフレーム指定できないなら、SizReqBuf指定してやればいいよね、きっと。

私が知る限り、これWindows SMBの実装中でもワーストクラスの仕様なのでいろんなところで引っかかってる人出てる気がするな。

[2011/05/10 追記]
上で色々書いたが、そもそもREALTEK RTL8111Eのジャンボフレーム周りの挙動がなんか変。Win7側への転送が極端に遅い。

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=7KB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
13650 451 46545 476 7130

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■WinXP(32bit) RTL8111E->Win7(64bit) RTL8111E
(両者ジャンボフレーム=7KB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive T:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
18551 32715 1446 39613 430

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=無効)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
13939 969 46757 901 7130

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(Win7ジャンボフレーム=無効, WinXPジャンボフレーム=5kB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
33864 62439 19284 46829 6904

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

ここで気づいた、再現性すらない。てことはドライバだな。

[現状Driver Ver]
Win7: 7.37.1229.2010
WinXP: 5.782.114.2011

調べてみたらWin7用の新しいドライバがあるようなので差し替え。
Win7 Driver Ver:7.37.1229.2010 -> 7.43.321.2011

■Win7(64bit) RTL8111E->WinXP(32bit) RTL8111E
(両者ジャンボフレーム=8kB MTU)
***** FDBENCH Ver 1.02 (C)2003-2007 ep82kazu *****
Drive X:Drive Size 10MB

Disk Read Write RRead RWrite (KByte/s)
34890 47925 46757 38568 6309

Copy 2k 32k 256k 1MB (Operations/min)
0 0 0 0 0

Copy 2k 32k 256k 1MB (Kbyte/Sec)
0 0 0 0 0

何度か計り直したが、ある程度安定したようだ。蟹め。

2011/02/12(土)DN-UVC252C@Win7(64bit)

2011/02/12 21:57 PC(全般)
OSを替えてしまったので、ドライバがすぐに見つからないものがちらほら。ゲーム画面をPCモニタに出すために購入したキャプチャユニット DN-UVC252CがWindows7 64bitで動くかどうか調査。

ここら辺が詳しい。
iTブログ DN-UVC252C USBコンポーネントキャプチャ 購入レビュー
USBキャプチャーユニット「上海問屋DN-UVC252C」で【MHP3体験版初心者向け解説】狩りに生きる。ロアルドロスvs片手剣編アップしてみました: Log_南信便り(SeesaaBlog)

ここのドライバでいけるようだ。
VideoHome Technology Corp.

今のところ、PeCaTV2で快適に動いている。

2011/02/06(日)リモートデスクトップ後、B-CASカードを認識しなくなる

2011/02/06 23:04 PC(全般)
サブPC(PT2+tvrock)の録画がよく失敗する問題。B-CASカード認識の問題のようなのでカードリーダ替えてみたりしたのだが、どうもうまくいかない。

調べてみたら以下のようなことらしい。

「あったまいいねTVROCK」 - PT1 pt2仕様+FAQ

要するに、リモートデスクトップでつなぐと(仮に同じユーザでのログオンし直しであろうが)カードリーダを切断してしまうらしい。ホスト側ユーザの権限などには依存しない。また、クライアント側にも同じカードが刺さっていればこの問題は起こらない。自宅環境では今まで親機と子機両方にカードが刺さっていたので気づかなかった。

ノートPCにB-CASカード刺すのも厳しいので、とりあえずしばらくはUltraVNCで代用する。リモートデスクトップでつないでしまった場合は再起動で対応。

ローカルLANだとリモートデスクトップの方が圧倒的に快適だが、遠隔制御だとそこまで差はつかない。

他の方法だと、リモートデスクトップにパッチを当てるという裏技もあるようだ(複数ユーザが同時にログオンできるようになる)。ただし、ライセンス的にどうなのって話とtvrock自体が予約リストなどをユーザレベルで管理しているので、別ユーザログインもちょっともめんどくさい。

同一ユーザでログオンするのはさすがに難しいらしく、serverを使わないのであればかなりのハックが必要になるらしい(logon.exeをいじる?)。それこそライセンス的にどうなのって話になるのでこれは基本除外。

あとはうちの場合だとBonCasLinkでB-CAS配信サーバをLinux上に立てるあたり。これもライセンス的にどうなんだろう…… まあ検討はしておこう。時間かかりそうなので、実験的にやるにしてもかなり先の話とする。
OK キャンセル 確認 その他