你好,我创建了一些 Hyper-V 机器(2 台 Ubuntu 和 1 台 Windows),导出了它们,并将它们添加到远程 git 存储库。
当我在另一台机器上克隆 repo 时,我可以正常导入和运行 Linux VM,但 Windows 机器无法运行,并出现错误:
Microsoft 模拟 IDE 控制器(实例 ID ....)无法开机,错误为“文件或目录已损坏且无法读取”
有人知道为什么会发生这种情况吗?或者有什么建议吗?我已将差异磁盘合并到父磁盘,并删除了所有快照。
答案1
Git 确实不适合虚拟机磁盘映像 - GitHub 甚至编写了一个存储服务,可以充当大型文件的代理,只是为了将它们排除在您的 git repo 之外,因为 git 不适合处理大型二进制文件。事实上,git 的增量机制专注于纯文本内容,而 git repos 包含完整的历史记录(每个版本的二进制文件,通常没有任何增量压缩),这使得它们在存储大型二进制文件时很快失控。
相反,您应该使用支持快照磁盘映像的文件系统(其中只有更改的块才会消耗存储空间),例如 ZFS 或 LVM,并在其他文件系统下使用快照 - 或者,如上面的评论中提到的,使用内置于虚拟化解决方案中的快照机制。