我的情况
我正在使用Virtual Box创建安装了 Arch Linux的虚拟机。我将虚拟机用于我自己的项目:我在这个虚拟机中拥有我所有的项目数据,因此我可以轻松地从操作系统或物理计算机进行更改,并立即获得所有可用数据。在这个虚拟机中,我安装了 GitLab、备份系统、SMTP 和Samba等。
虚拟机有两个 SATA 虚拟硬盘:
- 8 GB 动态 vmdk 硬盘驱动器拆分为 2 GB 文件,其中安装了操作系统。
- 2 TB 动态 vmdk 硬盘驱动器拆分为 2 GB 文件,其中保存了我所有的项目数据。
无论我是使用我的 Ubuntu 来处理虚拟机,还是从 samba 访问我的文件,一切都运行良好。当我使用 Windows 时出现问题,在正确关闭我的机器后(请参阅下面的 bash 命令),我得到一个 vmdk 标头损坏的可能性。三分之二的我尝试关闭此问题出现在 Windows 中,我在 Ubuntu 中还没有遇到此问题。
这是我用来关闭 Arch 的命令safe_shutdown.sh
:
systemctl stop smbd
umount /mnt/projects
systemctl poweroff
被迫过于频繁地使用修复工具
我试图从VirtualBox关闭机器,只使用systemctl poweroff
,使用ACPI关闭,从任务管理器关闭所有进程,在关机前断开samba映射的网络驱动器,......一切。结果都是一样的,我的 vmdk 标头损坏并且不得不使用修复工具:
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 Drive 文件夹:https ://drive.google.com/drive/folders/0BzoIZrf3afiGRHo0Y2U5c19OdEE?usp=sharing
桑巴配置
[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