web-dev-qa-db-ja.com

LinuxがデフォルトのマウントCIFSバージョンを3.0に強制

VMWare ESXi 6.5ハイパーバイザーに、cifs-utilsがVMとしてインストールされたUbuntu Server 16.04.3 LTS 64ビットを実行しています。

Windows Server 2016で定期的にネットワーク共有をセットアップしています。

目的は、Veeam Linuxエージェントを使用して、このLinuxをバックアップすることですVM CIFS経由でWindows共有に。

問題:

CIFSを使用するようにVeeamを構成しているとき(ログを表示)、veeamは次のコマンドを実行してネットワーク共有に接続します。

mount -t cifs -o username=MyUsername,password=*,rw,soft //MyServerIP/MyShare /tmp/veeam/MyServerIPMyShare

それは私にエラーを与えます:mount error(112):Host is down。

コマンドを手動で実行すると、同じことが行われます。

しかし、私がこのようなコマンドを実行すると:

mount -t cifs -o vers=3.0,username=MyUsername,password=*,rw,soft //MyServerIP/MyShare /tmp/veeam/MyServerIPMyShare

2.0を使用しても問題なくマウントされます。

問題は、Veeamにバージョン3.0を強制する方法がないことです。それで、私はLinuxでこれを何らかの方法で強制できるようにする必要があります。

他にもこの問題が発生しているのを見てきましたが、解決策は提示されていません。

私が見つけたものに基づいて、次のことを試みました:

/etc/samba/smb.confに次の行を追加しました

server min protocol = SMB2
server max protocol = SMB3
client min protocol = SMB2
client max protocol = SMB3
min protocol = SMB2
max protocol = SMB3
client ipc min protocol = SMB2

バリエーションを混ぜてリブートと一致させましたが、役に立ちませんでした。

3
Steven4x4

特定のmount.cifsバージョンについて、vers=3.0をコマンドライン(または/etc/fstab)に追加する以外の方法を知りません。 mount.cifsドライバはsmb.confを無視します。歴史的には、mount.cifsは自動ネゴシエーションできなかったようで、1つのプロトコルバージョンを試しただけです- 2017年7月までは1.0、その後は3. 。 (2017年7月は、cifs 4.13へのコード変更の日付であり、以前のバージョンは実行時にその日付を参照していませんでした!) 2017年9月はオートネゴシエーションできるように見えます 、デフォルトは2.1以降(最高のものはサーバーが提供できるものです)。

したがって、cifsのバージョンをアップグレードできる場合は、明示的にバージョンを指定しなくても、異なるプロトコルバージョンを取得できるはずです。

以下は、mount.cifs、smb.conf、およびWindowsプロトコルバージョンのマッピングです。
vers = 3.0はSMB3、つまりWindows 8、Windows Server 2012
vers = 2.1はSMB2_10です。つまり、Windows 7、Windows Server 2008 R2です。
vers = 2.0はSMB2_02、つまりVista SP1、Windows Server 2008
vers = 1.0はNT1、つまりWindows 95、NT 4.0です

2
stevek_mcc