问题:使用 curl 或 wget 从在同一台计算机上运行 Hyper-V 的 Alpine Linux 下载到 Windows 共享时,几 GB 大小的文件(即 Debian DVD ISO)被损坏设置:

  • Dell T20,Xeon 和 32GB RAM
  • Windows Server 2016(带最新补丁等)
  • 在 Hyper-V 中运行的 Alpine 3.20
  • 10GB 虚拟交换机,MTU 1500,同时暴露给 WS2016 和 Alpine
  • 在 /etc/fstab 中将 Windows 共享挂载到 Alpine 中

我已经进行过的测试:

  • Alpine 中的 curl/wget,保存以共享 – Alpine 上运行的 sha256与预期不同。多次运行得到不同的 sha256。
  • 在 Windows 中 curl,保存到本地磁盘 – 在 Alpine 上运行的 sha256符合预期值

创建了一个具有空磁盘的新虚拟机,安装了带有最新补丁的 Alpine 3.20,得到了相同的行为。

不知道该看哪里以及该检查什么,因此任何想法都将不胜感激。

2

  • 1
    Hyper-V 一直以来都存在网络适配器设置问题。您可能想尝试更改其中一些设置作为测试,特别是禁用 tso 卸载、大型接收/发送卸载,或许还有其他设置。serverfault.com/a/849696/


    – 

  • 谢谢@GregAskew,看起来很有希望。


    – 


最佳答案
1

回答我自己:

通过在 /etc/fstab 中的 cifs 挂载条目中添加“cache=none”选项来解决问题。

这样就可以将 Debian 12.7 映像通过 Linux wget 以 30 MB/s 的速度从本地 IIS 传输到 Windows 共享。没有损坏数据。

按照@GregAskew 的建议,我禁用了虚拟交换机的所有“硬件”功能,速度提高了几倍,几乎与磁盘写入速度相匹配。