none
在NAS(linux smb)的共享文件夹下的VHD无法附加到系统 RRS feed

  • 问题

  • 我这里有一台NAS(linux smb),共享了一个文件夹,所有权限都开放了。

    通过windows 2008 r2磁盘管理,创建VHD在共享目录下,能成功创建。大致步骤:创建动态扩展类型的硬盘-100MB, 硬盘在创建时会自动附加到系统中,然后初始化,MBR,创建简单卷,NTFS, 快格,在资源管理器上创建一个docx文档,脱机,分离。

    完成上面动作之后,再想通过硬盘管理,附加VHD,提示“拒绝访问”,无法次附加到系统。

    之后我从NAS上,把VHD复制到系统的本地硬盘,再次附加成功,而且之前创建的docx文档也还在。

    根据我之前的提问最有可能是共享权限的问题。有可能是VHD还是使用“计算机”为“对象类型”的共享 。

    之前的提问:http://social.technet.microsoft.com/Forums/zh-CN/2222/thread/442c579f-da2c-48d3-ade4-d34b540aaf96

    期待有方法解决该问题。


    2013年6月13日 3:33

答案

  • 撇开VHD特例,假如你往NAS上写一个文本文件,保存关闭,再打开,再改,再存,第二次能存成功吗?

    如果成功,再回到Attach VHD这一特例,请看这篇文章:Storing Windows Server 2008 Hyper-V files on a CIFS/SMB file share

    http://blogs.technet.com/b/josebda/archive/2008/06/24/storing-windows-server-2008-hyper-v-files-on-an-cifs-smb-file-share.aspx


    Technical problem is never a problem.


    2013年6月13日 7:11
  • 不必失落。可以再抓下包,分别抓attach NAS上的VHD失败,以及attach Windows共享里VHD成功。然后对比两者间SMB数据通信的差异,找到关键差异后,下一步该怎么进行,就比较明确了。

    这件事理应NAS设备厂商来协助你去做,而非寻求微软帮助(微软一定不会披露Attach VHD的SMB通信细节),且在纯微软环境下,Attach VHD from SMB share总是OK的,对不对?

    另外,对于你之前share出来的那两个ProcMon Log,我还是想问你一下,你那个Logfile about NAS test.vhd-path-filter.PML抓取时,当时Attach VHD的报错究竟是什么?我感觉那次不是拒绝访问吧?因为ProcMon里真没看到Access Deny,只有MSE去CreateFileMapping时返回FILE LOCKED WITH WRITERS

    那么,你退出MSE后,问题到底还存在不存在?

    另外,不知你的NAS对SMB oplock的支持是否完善?能否Disable它?如果没有选项,那么你只能试一下关闭Windows客户端的oplock,看看问题是否会消失。

    Configuring opportunistic locking in Windows
    http://support.microsoft.com/kb/296264


    Technical problem is never a problem.







    2013年6月20日 2:37

全部回复

  • 撇开VHD特例,假如你往NAS上写一个文本文件,保存关闭,再打开,再改,再存,第二次能存成功吗?

    如果成功,再回到Attach VHD这一特例,请看这篇文章:Storing Windows Server 2008 Hyper-V files on a CIFS/SMB file share

    http://blogs.technet.com/b/josebda/archive/2008/06/24/storing-windows-server-2008-hyper-v-files-on-an-cifs-smb-file-share.aspx


    Technical problem is never a problem.


    2013年6月13日 7:11
  • 谢谢 Finy!

    我非常的确认,如果写的是一个文本文件,保存关闭,再改再存是没有任何问题的。

    你给的链接,我看过了,里面有一句很重要的话:“First of all, remember to grant access to the computer account of the computer running Hyper-V.
    This is the DOMAIN\COMPUTERNAME$ account, which you can use in the same way you would use a regular user account when granting permissions.”

    VHD保存linux下的共享文件夹,就是有问题,但是不清楚有没有解决方案。我在NAS配置权限,不能使用computer account 权限。

    2013年6月13日 7:48
  • 谢谢 Finy!

    我非常的确认,如果写的是一个文本文件,保存关闭,再改再存是没有任何问题的。

    你给的链接,我看过了,里面有一句很重要的话:“First of all, remember to grant access to the computer account of the computer running Hyper-V.
    This is the DOMAIN\COMPUTERNAME$ account, which you can use in the same way you would use a regular user account when granting permissions.”

    VHD保存linux下的共享文件夹,就是有问题,但是不清楚有没有解决方案。我在NAS配置权限,不能使用computer account 权限。

    文章那句话指的应该是Hyper-V使用VHD。

    而你的情况应该是没Hyper-V,只是你在磁盘管理里去Attach一块位于SMB共享上的VHD,那么这个凭据应该是你当前登录用户过去的。

    其实你可以用ProcessMonitor抓一下Access Denied的细节


    Technical problem is never a problem.

    2013年6月14日 7:27
  • 文章那句话指的应该是Hyper-V使用VHD。

    而你的情况应该是没Hyper-V,只是你在磁盘管理里去Attach一块位于SMB共享上的VHD,那么这个凭据应该是你当前登录用户过去的。

    其实你可以用ProcessMonitor抓一下Access Denied的细节


    Technical problem is never a problem.

    谢谢 Tiny!

    请说明,ProcessMonitor应该怎么样写过滤,才能抓到VHD的附加过程。我试过过程过程名diskpart,但是无任何结果。

    还有另一种情况错误提示的情况:

    DISKPART> select vdisk file="P:\文件备份\test.vhd"

    DiskPart 遇到错误: 该版本不支持此版本的文件格式。
    有关详细信息,请参阅系统事件日志。

    未选择任何虚拟磁盘文件。

    只要把vhd复制到本地硬盘,附加硬盘,没有问题。



    2013年6月14日 11:09
  • ProcessMonitor可以设置Path等于xxxxx(是你的UNC路径格式:\\x.x.x.x\xxxxx.vhd)

    Technical problem is never a problem.

    2013年6月14日 12:25
  • 谢谢 Tiny!

    我已经把我附加VHD过程的ProssMonitor日志放到skydriver里了。有两个文件,其中一个日志是挂载本地vhd,另一个是网络vhd。

    https://skydrive.live.com/redir?resid=FCEADDA32BF64F1F!537&authkey=!AFjKhiawHeDNMH0

    非常期待你的回复。


    2013年6月14日 13:13
  • 谢谢 Tiny!

    我已经把我附加VHD过程的ProssMonitor日志放到skydriver里了。有两个文件,其中一个日志是挂载本地vhd,另一个是网络vhd。

    https://skydrive.live.com/redir?resid=FCEADDA32BF64F1F!537&authkey=!AFjKhiawHeDNMH0

    非常期待你的回复。


    我看了一下你抓的两个Log,并没有Access Denied!

    所以,有几个问题确认一下:

    你ProcessMonitor抓的时候,过滤条件用了哪些?(除了Default的,和我告知你的Path=xxx外,是否还有别的?)

    你本地的1.vhd是只有100多MB吧?

    你NAS上的test.vhd有6GB之大吧?

    你的两个vhd,类型分别是什么?(fixed size还是dynamic grow的?)

    -----------------------------

    然后,希望你做几个测试:

    如果你把百来兆的1.vhd放在NAS上,能attach吗?

    试试在NAS的路径中,不要存放vhd到带中文字符 “文件备份” 的路径下,看看能attach吗?

    关闭杀毒软件MsMpEng后,能attach NAS上的vhd吗?

    ------------------------------

    最后,告诉你一个状况:我在工作组环境下,Win7磁盘管理Attach一台Windows 2008的文件共享(权限为everyone RW)里的vhd,毫无问题,故表明Attach VHD by SMB在无域的环境应该是可行的


    Technical problem is never a problem.


    • 已编辑 Finy 2013年6月18日 4:31
    2013年6月18日 4:25
  • 谢谢 Tiny!,非常非常感谢!!我只能晚上做测试,请见谅。期待你的继续关注!

    今天晚上我认真做了实验。按照你的提示,我创建了新的VHD文件,没有使用之前的。路径上没有使用中文字符,关闭了MsMpEng。新的日志文件我上传到了https://skydrive.live.com/redir?resid=FCEADDA32BF64F1F!537&authkey=!AFjKhiawHeDNMH0 文件名是:2013-06-18-log.rar 解压后日志的编号与测试的编号一致。

    准备工作:

    在本地硬盘D:\localdisk,创建了动态扩展虚拟硬盘vhd-dynamic.vhd和固定大小虚拟硬盘vhd-fixsize.vhd。创建好两块硬盘之后,初始化为MBR分区,再格式化为NTFS,我都测试了附加本地硬盘里的VHD无问题。之后我分离两块VHD,用以开始下边实验。

    001,使用Process Monitor抓取从附加本地硬盘上的vhd-dynamic.vhd,之后使用资源管理器打开对应的分区,之后使用VHD脱机,再分离,无异常

    002,使用Process Monitor抓取附加本地硬盘上的vhd-fixsize.vhd,之后使用资源管理器打开对应的分区,之后使用VHD脱机,再分离,无异常

    将两个VHD文件复制到\\192.168.8.9\File\sharefolder下备用

    003,使用Process Monitor抓取附加NAS上的vhd-dynamic.vhd,之后使用资源管理器打开对应的分区,之后使用VHD脱机,再分离,无异常

    004,使用Process Monitor抓取附加NAS上的vhd-fixsize.vhd,之后使用资源管理器打开对应的分区,之后使用VHD脱机,再分离,无异常

    我很奇怪今天的测试为什么没有出错。莫非先创建VHD,再复制到NAS(Linux Samba)上就不会出错,总之今天试了多次都没有出错。

    于是我把步骤改为之前出问题的方法,先在NAS上创建一个动态的\\192.168.8.9\File\sharefolder\123.vhd,附加,写文件,之后脱机,分离。在分离的时候报错了。有以下提示:

    试了多次,提示都是一样的。无奈,我只好断开网络,与NAS的网络连接中断之后,磁盘管理的虚拟硬盘就断开了。于是我把文件复制到本地硬盘D:\localdisk\123.vhd

    005,使用Process Monitor抓取从附加本地硬盘上的123.vhd,之后使用资源管理器打开对应的分区,之后使用VHD脱机,再分离,无异常

    006,使用Process Monitor抓取附加NAS上的123.vhd,之后提示该版本不支持此版本的文件格式。试了多次都一样,异常

    007,使用资源管理器,打开\\192.168.8.9\File\sharefolder文件夹,重命名,提示操作无法完成,因为文件已在另一个程序中打开。重试,还是不行,有以下提示。

    在写完文档之后,我发现少了步骤004与005之间那个步骤。之后补抓了Process Monitor的日志,编号008。008编号的日志为NAS上3210.vhd创建,初始化,格式化,脱机,分离,及分离报错,再到我断网的操作。

    2013-06-19日上午,我再次测试003,004两个步骤,结果让我很诧异:按003和004的方法,我第一次附加VHD,成功。然后分离VHD,第二次附加VHD,就提示我“设备不识别此命令”。

    什么情况!!!!很怪异!

    今天我在bing.com上搜索,找到以下资料。我这里有两台不同型号的NAS,分别遇到下面两种问题。

    故障情况1:不支持此版本的文件格式

    http://lists.samba.org/archive/samba/2009-December/152804.html

    故障情况2:(拒绝访问)

    http://social.technet.microsoft.com/Forums/en-US/w8itprovirt/thread/22ad70e0-b351-4b51-866f-be59ee5077cc

    该问题已经出现了很长时间,而且网上一直没有传出解决方案。希望windows与linux的专家来会诊一下。





    • 已编辑 Anson_Chen_ 2013年6月18日 23:32 19日上午完善
    2013年6月18日 23:30
  • 这个问题看起来挺复杂的,可能需要很多的测试和讨论才能有方向,甚至还会走一些弯路,感觉不太适合在论坛这种慢速交流平台下进行。

    如果真的非常care这个问题,建议你先找NAS厂商寻求帮助,必要时concall Microsoft技术支持(花你觉得值得的钱)


    Technical problem is never a problem.

    2013年6月19日 9:35
  • 这个问题看起来挺复杂的,可能需要很多的测试和讨论才能有方向,甚至还会走一些弯路,感觉不太适合在论坛这种慢速交流平台下进行。

    如果真的非常care这个问题,建议你先找NAS厂商寻求帮助,必要时concall Microsoft技术支持(花你觉得值得的钱)


    Technical problem is never a problem.

    这个问题确实复杂,从2011年到现在,我都没有找到办法解决。网上也有很多用户在各方求证。

    6月19号微软论坛刚改版,该问题就没有结论了。有点小失落。

    2013年6月20日 1:08
  • 不必失落。可以再抓下包,分别抓attach NAS上的VHD失败,以及attach Windows共享里VHD成功。然后对比两者间SMB数据通信的差异,找到关键差异后,下一步该怎么进行,就比较明确了。

    这件事理应NAS设备厂商来协助你去做,而非寻求微软帮助(微软一定不会披露Attach VHD的SMB通信细节),且在纯微软环境下,Attach VHD from SMB share总是OK的,对不对?

    另外,对于你之前share出来的那两个ProcMon Log,我还是想问你一下,你那个Logfile about NAS test.vhd-path-filter.PML抓取时,当时Attach VHD的报错究竟是什么?我感觉那次不是拒绝访问吧?因为ProcMon里真没看到Access Deny,只有MSE去CreateFileMapping时返回FILE LOCKED WITH WRITERS

    那么,你退出MSE后,问题到底还存在不存在?

    另外,不知你的NAS对SMB oplock的支持是否完善?能否Disable它?如果没有选项,那么你只能试一下关闭Windows客户端的oplock,看看问题是否会消失。

    Configuring opportunistic locking in Windows
    http://support.microsoft.com/kb/296264


    Technical problem is never a problem.







    2013年6月20日 2:37
  • 你的这台机器居然还装着360安全卫士?很可能是它这HookPort搞的鬼。。。

    能不能别这样。。。找个干净系统做测试吧。。。360 Driver可以不讲道理地改变操作系统Kernel Mode的行为!


    Technical problem is never a problem.

    2013年6月20日 4:06
  • 谢谢 Tiny!,非常非常感谢!!再次帮我解决问题。

    6月18日晚上,我再次做了很详细的测试,日志也上传了。新的日志文件我上传到了https://skydrive.live.com/redir?resid=FCEADDA32BF64F1F!537&authkey=!AFjKhiawHeDNMH0 文件名是:2013-06-18-log.rar 解压后日志的编号与测试的编号一致。 

    新的日志里,我关闭了360和MSE相关的软件,测试的结果很复杂,不知道要怎么分析。

    另外

    1,无论我怎么折腾,同样的测试机,在windows 2008里共享的文件夹里,创建,附加VHD都是没有问题的。

    2,2013-06-18-log.rar 的日志里,我确实已经把360和MSE相关的安全软件给关闭了。但是不知道这些服务怎么会在测试log里出现,不过有第一点可以看出应该和这些软件没有关系,因为在windows2008里共享文件夹里存放vhd是没有任何问题的。

    3,我的NAS的SMB oplock 一直没有关注过。现在提到了,我今天晚上会回去测试一下。

     

    2013年6月20日 5:21
  • 我这边有两相log,都是在NAS的共享文件夹上的VHD

    有成功的,也有失败的。如下图:

    左边的是NAS上VHD附加成功的截图,右边是NAS上VHD附加失败的图。

    失败的要比成功的多3个事件。

    这几个事件,我并没有发现异常。而且在多出的事情的前边的事件,也没有查看到异常。

    多出的事件,截图如下:

    不知以上描述,对分析有帮助吗?

    2013年6月20日 8:37
  • 我遇到的也是这样,vhd文件放在nas中,有一段时间是可以挂载的,但是不知道什么时候开始就不能挂载了,环境是win7

    有一次我安装了一个WinMount(32bit),发现用功这个软件可以加载nas中的vhd文件,可是今天在win7 64位环境中安装了WinMount 64的,发现又加载不了了

    求解决方案

    2013年6月22日 14:58
  • 这个问题,又等了半年,依然没有能解决。有解决方案,我会和你分享!

    2014年4月1日 13:54
  • 你好,不知道您这个问题解决了没有?我也碰到了这个问题。

    不过我的系统是Win8.1

    可以在磁盘管理中创建一个vhd到smb共享文件夹中

    但是一旦分离后无法再次附加

    提示为“该版本不支持此版本的文件格式

    2014年6月25日 11:03
  • 这个问题一直没有能够解决。但是后来我和另一家存储公司的技术联系过。

    他们的NAS也是基于linux内核,提供的SMB服务,不会出现VHD的问题。联创信安http://www.udsafe.com.cn/,而且还给了我截图说明。

    2014年7月9日 3:29