我目前正在 VirtualBox VM 上尝试新的服务器设置。在我的场景中,我连接了两个(虚拟)硬盘;我将其中一个用作主系统磁盘,另一个用作本地备份驱动器。使用 borg/borgmatic 将备份执行到备份驱动器。我计划稍后在真实服务器(使用真实磁盘)上使用相同的设置。
为了测试丢失系统磁盘并尝试获取备份系统上的数据的情况,我创建了一个具有新系统磁盘的新虚拟机,并将现有磁盘附加到该虚拟机。fdisk -l
将显示现有驱动器为/dev/sdb1
。
当我用 安装此驱动器时mount /dev/sdb1 /backup
,我看不到驱动器上先前的内容,并且到目前为止我还没有找到访问它们的方法。
安装后,结果file -s /dev/sdb1
是:
Linux rev 1.0 ext4 文件系统数据,UUID=[...],卷名“disk2”(需要日志恢复)(范围)(64 位)(大文件)(巨型文件)
所以我这么做了:
$ umount /backup
$ e2fsck -p /dev/sdb1
disk2: clean 11/1310720 files, 126322/5242624 blocks
(我需要先卸载才能运行e2fsck
)
之后我得到了
Linux rev 1.0 ext4 文件系统数据,UUID=[...],卷名“disk2”(范围)(64 位)(大文件)(巨型文件)
但是,当我再次安装驱动器时,我仍然得到(需要日志恢复)备注file -s
。
如果我想从备份驱动器恢复数据,我自然需要访问其内容。有办法吗?
答案1
正如评论所建议的,您不能通过多个虚拟机同时访问一个虚拟硬盘。
Oracle VirtualBox 扩展了一项功能,可让您这样做https://www.oracledistilled.com/virtualbox/creating-shared-drives-in-oracle-vm-virtualbox/
但这适用于特定用例,例如测试 Oracle RAC 或一些其他允许使用共享块设备的集群解决方案。
长话短说 - 正确卸载磁盘并关闭虚拟机。将虚拟磁盘从虚拟机中分离出来,然后将其连接到另一个正确关闭的虚拟机。任何虚拟机都不能处于暂停状态,也不能为相关虚拟驱动器设置任何快照。如果满足这些条件,您应该在启动后在另一台虚拟机上看到您的数据。
顺便说一句,正确的备份解决方案不处理本地驱动器,而是将备份存储在 NAS 上,然后用于恢复此类数据 - 无论是应用程序数据还是操作系统本身。为了防止勒索软件加密,使用更复杂的数据存储和/或访问控制。