vmdk(正常,无法访问):不得不经常修复无效 header

vmdk (Normal, Inaccessible): having to repair invalid header too often

我的情况

我正在使用 Virtual Box 创建虚拟机 安装了 Arch Linux。我将虚拟机用于我自己的项目:我在这个虚拟机中拥有我所有的项目数据,因此我可以轻松地从 OS 或物理计算机进行更改,并立即获得所有数据。在这个虚拟机中,我安装了 GitLab、备份系统、SMTP 和 Samba 等。

虚拟机有两个SATA虚拟硬盘:

无论我是否使用我的 Ubuntu 与虚拟机一起工作,从 samba 访问我的文件,一切都表现完美。当我使用 Windows、正确关闭我的机器后 (请参阅下面的 bash 命令)时出现问题 我得到的几率是vmdk header 损坏。我尝试关闭此问题的三次中有两次出现在 Windows 中,但我尚未在 Ubuntu 中遇到该问题。

这是我用来关闭 Arch 的命令,safe_shutdown.sh:

systemctl stop smbd
umount /mnt/projects
systemctl poweroff

被迫经常使用修复工具

我试过从 VirtualBox 关闭机器,只使用 systemctl poweroff,使用 ACPI 关闭,从任务管理器关闭所有进程,在关闭前断开 samba 映射的网络驱动器,.. 。 一切。 结果都是一样的,我的 vmdk header 损坏了,不得不使用修复工具:

vmware-vdiskmanager.exe -R projects.vmdk

这个工具总是说我发现磁盘有问题,都已经修复了。在此之后机器再次运行没有大问题,有时我在散列一致性时发现损坏的文件,我必须使用我的备份来恢复这些文件。

绝望

我真的不知道现在该怎么办。我应该尝试将我的数据移动到另一种虚拟硬盘驱动器格式吗?调整我的虚拟硬盘大小?我应该寻找哪些日志?

我的详细资料

在 Windows 我使用 5.1.2 r108956 VirtualBox 版本。

虚拟盒子错误

Could not open them medium '[projects.vmdk]` VMDK: inconsistency between grain
table and backup grain table in '[projects.vmdk]' (VERR_VD_VMDK_INVALID_HEADER).

虚拟盒子日志

由于我总是在收到错误后立即修复我的机器,因为我需要不断使用我的数据,所以我不能只提供最后一个日志,而是提供所有日志。我已将它们上传到 Google 驱动器文件夹:https://drive.google.com/drive/folders/0BzoIZrf3afiGRHo0Y2U5c19OdEE?usp=sharing

Samba 配置

[projects]
   comment = projects folder
   path = /mnt/projects
   available = yes
   guest ok = no
   read only = no
   writable = yes
   valid users = archuser
   write list = archuser
   browseable = yes
   create mask = 0600
   directory mask = 0700
   public = yes

尝试使用virtualbox 4.x.x版本。使用 fsckbadsectors 扫描硬盘中的坏扇区。您可能有兼容性问题或损坏的文件系统。