问题:使用 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,并得到了相同的行为。
不知道该看哪里以及该检查什么,因此任何想法都将不胜感激。
回答我自己:
通过在 /etc/fstab 中的 cifs 挂载条目中添加“cache=none”选项解决问题。
这样就可以将 Debian 12.7 映像通过 Linux wget 以 30 MB/s 的速度从本地 IIS 传输到 Windows 共享。没有损坏数据。
按照@GregAskew 的建议,我禁用了虚拟交换机的所有“硬件”功能,速度提高了几倍,几乎与磁盘写入速度相匹配。