職場でUbuntuシステムにリモートCIFSディレクトリをマウントしようとしています。私のWindows 8.1セッションでリモートフォルダが正しく実行されているようです(動作するものもあります)。
インストールが機能しません。
$ sudo mount -v -t cifs //1.2.3.4/network ~/z -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8
Password for malat@//1.2.3.4/network: *********
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\network,iocharset=utf8,uid=1002,gid=1002,user=mmalaterre,domain=MY,pass=********
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
しかし、結局偶然会ったこの参照:
$ sudo mount -v -t cifs //1.2.3.4/network ~/z -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8,nodfs
Password for malat@//1.2.3.4/network: *********
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\network,iocharset=utf8,nodfs,uid=1002,gid=1002,user=malat,domain=MY,pass=********
少なくとも今は動作するものがあります。
$ mount | grep network
//1.2.3.4/network on /home/malat/z type cifs (rw,relatime,vers=2.1,cache=strict,username=malat,domain=MY,uid=1002,forceuid,gid=1002,forcegid,addr=1.2.3.4,file_mode=0755,dir_mode=0755,soft,nounix,nodfs,mapposix,rsize=1048576,wsize=1048576,bsize=1048576,echo_interval=60,actimeo=1)
しかし、何かうまくいかないようです(私の考えはDFSオプションに関連しているようです)。症状は次のとおりです。
$ cd ~/z
$ ls
folder1 folder2
$ ls folder1
subfolder1
$ ls folder2
ls: cannot access 'folder2': Invalid argument
Windows 8.1セッション内でフォルダにうまくアクセスできるため、アクセス許可のfolder2
問題ではありません。folder2
私のLinuxセッションからどのようにアクセスしますか?
これは尾ですdmesg
:
[1927958.534353] CIFS: Attempting to mount //1.2.3.4/network
[1927958.534403] No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
[1927960.069018] CIFS VFS: DFS capability contradicts DFS flag
[1927960.375111] CIFS VFS: Autodisabling the use of server inode numbers on new server.
[1927960.375115] CIFS VFS: The server doesn't seem to support them properly or the files might be on different servers (DFS).
[1927960.375117] CIFS VFS: Hardlinks will not be recognized on this mount. Consider mounting with the "noserverino" option to silence this message.
更新:mountコマンドに追加すると、vers=1.0
症状が若干異なります。
$ cd ~/z
$ cd folder2
$ ls
subfolder2
$ cd subfolder2/
bash: cd: subfolder2/: Object is remote
参考までに:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
カーネルバージョン:
$ uname -rvo
5.0.0-38-generic #41-Ubuntu SMP Tue Dec 3 00:27:35 UTC 2019 GNU/Linux
そして
$ cat /etc/request-key.d/cifs.spnego.conf
create cifs.spnego * * /usr/sbin/cifs.upcall %k
修正する:
答え1
ついに私の側で問題をデバッグできました。エラーメッセージはユーザーレベルで非表示になっているため、動的デバッグを有効にするには、Debianバスターシステム(Linuxカーネル5.4.x)をインストールする必要があります。
失敗したCIFSマウントをデバッグする手順は次のとおりです。
以下は、より詳細なエラーログを提供します。
[...]
[ 687.037593] fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip:
unable to resolve: MYSERV13
[ 687.037606] fs/cifs/cifs_dfs_ref.c: cifs_compose_mount_options:
Failed to resolve server part of //MYSERV13/network to IP: -2
[...]
それが手がかりです。今私のアップデートを更新しましたresolve.conf
。
search acme.corp
到着する:
search acme.corp mydoma01.acme.corp
最初から問題になったオプションmount -t cifs
なしでいよいよ電話をかけられるようになりました。nodfs
これらの症状はもはやエラーではなく、情報提供のみです。
$ cd subfolder2
CIFS VFS: BAD_NETWORK_NAME: \\MYSERV13\network
[...]
subfolder2
ついに問題なくコンテンツにアクセスできるようになりました。
私のUbuntuシステム(Linuxカーネル5.0.x)で上記のタスクが機能するには、CIFSの明示的なバージョンを指定する必要がありました(vers=1.0
)。
引用:
答え2
これまでに見つけた唯一の回避策はを使用することですDFS Referral list
。したがって、ウィンドウボックスから問題の項目subfolder2
(記号リンクアイコン)に移動し、右クリックしてプロパティをインポートします。
その後、Linuxセッションに戻り、次のようにマウントしました。
$ sudo mount -t cifs //xyzclus01-cifs.mydoma.acme.corp/Disk12 ~/disk12 -v -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8,nodfs,vers=1.0
Password for malat@//xyzclus01-cifs.mydoma.acme.corp/Disk12: *********
mount.cifs kernel mount options: ip=5.6.7.8,unc=\\xyzclus01-cifs.mydoma.acme.corp\Disk12,iocharset=utf8,nodfs,vers=1.0,uid=1002,gid=1002,user=malat,domain=MY,pass=********
私が(ついに!)アクセスできるコンテンツですsubfolder2
。これは非常に面倒で直感的ではありません。したがって、これはせいぜい解決策であり、実際の解決策ではありません。