Nautilus経由でSMB共有をマウントすると、転送速度が遅くなります。そこで、掘り下げて、CLI経由で共有をマウントし、具体的にはプロトコルバージョンを2.0に設定すると、はるかに高速になることがわかりました。
CLIで使用するコマンドは次のとおりです。
Sudo mount -t cifs -o vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000 //nas/video /media/lukas/nas
共有をマウントするときにNautilusにバージョン2.0を使用させるにはどうすればよいですか?
興味のある方は別の提案があります。 sambaクライアントがNASにアクセスする方法をいじる代わりに-必要に応じてSMB2/3を単独で使用するため、これは不要であるはずです-なぜCIFSを自動的に使用しないのですか?
/ etc/fstabの最後に次の行を追加します。
//nas/video /media/lukas/nas cifs vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000,noauto,user 0 0
注:サーバーは、サーバーがサポートしている場合、mDNS修飾ホスト名として表現することもできます:// nas.local/videoまたはIPアドレス:/ 192.168.0.100/video
これの仕組み:
noauto =は、ブート時にマウントされないようにします。必要なときにCIFSをオンデマンドで使用するように設定します-ラップトップを持っている場合に便利です。
ser =は、通常のユーザー(非Sudo)が共有をマウントできるようにします。
マウントポイント =/mediaの下にあるため、udisks応答が発生します。
(1)Nautilusのサイドパネルにアイコンが表示されます。
(2)「実行可能」になります。クリックすると、システムはfstabに移動してマウント方法を確認し、マウントします。もう一度クリックして共有をアンマウントします。
このアプローチには副次的な利点があります。 Nautilusに追加するアイコンは、gedit> Openなどのほとんどのアプリケーションにも表示されます。その後、アプリケーションから共有を直接マウントできます。
これを読んでいる人への注意:ここではマウントポイントが重要です。 udisksマジックが機能するには、マウントポイントが/ mediaまたはホームディレクトリの下にある必要があります。
簡単な答えは、Nautilusがすでにそれを行っているということです。発生する可能性があるのは、CIFS(Linuxカーネルで制御)とgvfs/smbclient(Nautilusが使用する)共有の違いです。 CIFS方式は、おそらくgvfsのオーバーヘッドのために、より高速に見えます。
Nautilusが使用しているsambaクライアントは、SMB1より前の「min」から「max」のSMB3_11までの間に使用するのに最適なSMB方言を見つけるためにサーバーとネゴシエートします。
4.13.5以降のLinuxカーネルも、SMB2.1とSMB3の間でCIFSを使用してサーバーとネゴシエートします。
/etc/samba/smb.confにmin値を追加することで、Nautilusでsambaクライアントが自然に行っていることをオーバーライドできると思いますが、違いはないはずです:この行を[global]セクションにワークグループ=ワークグループ行:
client min protocol = SMB2
SMB2には、SMB2_02、SMB2_10、SMB2_22、SMB2_24のさまざまなバリアントがあります。デフォルトでは、「SMB2」は「SMB2_10」を選択します。最大値には何も追加しないでください。
編集:「クライアント最小プロトコル」行をサーバーまたはクライアントのどこに配置するかについて、多少の混乱があるようです。サーバー内にあることが提案されています。
18.04サーバーを設定し、サーバーで「client min protocol = SMB2」を指定し、Ubuntu 16.04クライアントを使用してアクセスした場合、設計上、せいぜいSMB1(別名NT1)のみがサーバーにアクセスできます。サーバーでのそのアクセスの結果:
xxx@srvub1804:~$ Sudo smbstatus
Samba version 4.7.6-Ubuntu
PID Username Group Machine **Protocol**
-------------------------------------------------------------------------------------
4681 nobody nogroup vub1604 (ipv4:192.168.1.140:45648) **NT1**
クライアントはSMB1(NT1)を使用してサーバーにアクセスするため、変更はありません。
ただし、クライアントのクライアント最小/男性設定を「クライアント最小プロトコル= SMB2」および「クライアント最大プロトコル= SMB3」に変更し、サーバーから「クライアント最小プロトコル」を削除すると、予期した場所になります:
xxx@srvub1804:~$ Sudo smbstatus
Samba version 4.7.6-Ubuntu
PID Username Group Machine **Protocol**
-------------------------------------------------------------------------------------
4915 nobody nogroup vub1604 (ipv4:192.168.1.140:45664) **SMB3_11**
混乱は、「min protocol」(別名「server min protocol」)と呼ばれる別のパラメータに起因していると思います。実際には、smbの最小の方言がアクセスに許可されるかどうかを決定します。これはサーバー上で行われます。 「クライアント最小/最大プロトコル」はクライアントで実行されます。
クライアントにsmb.confがある場合、それは素晴らしいことです。そうでない場合は、次の方法でインストールできます。
Sudo apt install smbclient