You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu16.04宿主机VirtualBox中Win10虚拟机误删文件恢复及磁盘识别求助

解决VirtualBox虚拟机Live CD无法识别Windows磁盘的问题

嘿,我懂你现在的着急——误删了Win10虚拟机里的文件,想用Ubuntu Live CD启动虚拟机来恢复,结果fdisk只显示/dev/loop,根本找不到目标磁盘。别慌,咱们一步步来排查解决:

1. 先确认VirtualBox的虚拟机存储设置

先回到宿主机的VirtualBox管理界面,找到你的Win10虚拟机,进入「设置」→「存储」:

  • 检查原来的Windows虚拟磁盘(通常是.vdi/.vmdk格式)是否还挂载在虚拟机的SATA/SCSI控制器上,并且状态是「已启用」
  • 确保控制器类型(比如SATA)没有被误改成「不使用」,如果是IDE控制器,也确认设备是正常挂载的

有时候虚拟机重启或者设置变动后,磁盘可能被意外禁用,这时候Live CD启动自然看不到。

2. Live CD启动后用更全面的命令排查磁盘

fdisk -l有时候对GPT分区或者某些磁盘类型支持有限,试试用以下命令来查看系统能识别的磁盘:

lsblk

这个命令会列出所有块设备,包括硬盘、U盘、虚拟磁盘等。如果你的Windows虚拟磁盘被识别了,应该会看到类似/dev/sda的设备,后面跟着它的分区(比如/dev/sda1是EFI分区,/dev/sda2是Windows系统分区)。

或者用blkid命令查看已识别的磁盘UUID和文件系统:

blkid

3. 手动加载磁盘驱动模块

如果lsblk也看不到磁盘,可能是Live CD的内核没有加载对应磁盘控制器的驱动。比如虚拟机用了SATA AHCI控制器,试试加载ahci模块:

sudo modprobe ahci

加载完成后再运行lsblk看看是否能识别到磁盘。

4. 换个思路:直接在宿主机上挂载虚拟磁盘恢复

如果上面的方法都不行,其实你可以不用启动虚拟机,直接在Ubuntu宿主机上挂载Win10的虚拟磁盘,这样操作更方便:

  1. 确保虚拟机已经完全关闭(不能是休眠或暂停状态)
  2. 安装qemu-nbd工具:
sudo apt-get install qemu-utils
  1. 加载nbd模块:
sudo modprobe nbd max_part=8
  1. 挂载虚拟磁盘(假设你的虚拟磁盘路径是~/VirtualBox VMs/Win10/Win10.vdi):
sudo qemu-nbd -c /dev/nbd0 "~/VirtualBox VMs/Win10/Win10.vdi"
  1. 现在你可以用lsblk /dev/nbd0看到磁盘的分区,然后挂载Windows的NTFS分区(比如/dev/nbd0p2):
sudo mkdir /mnt/win10
sudo mount -t ntfs-3g /dev/nbd0p2 /mnt/win10
  1. 挂载完成后,你就可以用数据恢复工具(比如testdisk或者photorec)在/mnt/win10目录下恢复误删的文件了。
  2. 恢复完成后,记得卸载磁盘并断开nbd设备:
sudo umount /mnt/win10
sudo qemu-nbd -d /dev/nbd0

重要提醒

不管用哪种方法,绝对不要在目标磁盘上写入任何数据,避免覆盖误删的文件,降低恢复成功率。如果你的Windows分区启用了BitLocker加密,需要先在挂载前解锁分区,不然无法访问内容。

内容的提问来源于stack exchange,提问作者enigmo

火山引擎 最新活动