我的虚拟机坏了。它无法正常启动。我不想费心去修复它,但我确实想从中获取一些我需要的文件。
如果我按住 Shift 键,我就会得到一个提示,允许我启动到恢复模式,然后我可以从那里选择选项 netroot,然后我就可以进入。我可以访问我需要的那台机器上的文件,而且互联网也可以正常工作(我可以wget --spider http://example.com
成功运行)。所以看起来我应该拥有获取文件所需的一切。但是怎么做呢?我考虑过尝试设置 FTP 服务器,但我想知道是否有更简单的方法。
我在主机上运行 Ubuntu 12.04,在客户端(VM)上运行 10.04LT。
答案1
我经常这样做,你甚至不需要启动虚拟机本身。这个想法是将磁盘映像安装到主机上。
为此,您需要 virtualbox-fuse:
$ sudo apt-get install virtualbox-fuse
然后,您可以使用 挂载映像vdfuse
。例如,以 root 身份挂载 VDI 映像(也支持 VMDK 和 al):
$ mkdir /mnt/vdi
$ vdfuse -f /path/to/disk/image.vdi /mnt/vdi
在 中/mnt/vdi
,您将拥有每个分区的一个磁盘映像和整个磁盘的一个磁盘映像:
$ ls /mnt/vdi
EntireDisk Partition1 Partition2
挂载你想要的分区:
$ mkdir /mnt/guest
$ mount /mnt/vdi/Partition2 /mnt/guest
就是这样。现在您可以将文件复制到/mnt/guest
主机,而无需任何网络开销。
它也适用于吨除了备份损坏的虚拟机之外的其他事情。;-)
答案2
一个简单的方法是在您的主机上启用 SSH,然后通过 SSH 在您的 VM 上挂载一个文件夹。
在主机上:
sudo apt-get install openssh-server
mkdir ~/vm_backup
在虚拟机上:
apt-get install sshfs
mkdir /mnt/host
sshfs [username]@[host]:/home/[username]/vm_backup /mnt/host
笔记:
- 将 [用户名] 替换为主机上的用户名。
- 将 [host] 替换为主机的 IP 地址或主机名
然后你只需要将你需要的一切都复制到/mnt/host
完成后,如果您不再需要 SSH,只需将其卸载即可。
sudo apt-get remove openssh-server