我想知道虚拟机如何在硬件上保存文件

san*_*eob 3 virtualbox virtual-machine ubuntu

我最近使用虚拟机(Oracle vm virtualbox)在我的 Windows 笔记本电脑上使用 Ubuntu。我编写了 helloworld.c 来测试我的新操作系统,并将其保存。我想知道“我可以在我的 Windows 笔记本电脑上看到该文件的目录 (helloworld.c) 吗?”

所以我检查了我的 virtualbox 目录(C:\Program Files\Oracle\VirtualBox),因为我认为 helloworld.c 保存在那里。但事实并非如此。我在哪里可以找到它?

我的笔记本电脑有 256GB 硬盘。当我设置虚拟机时,我分配了 30GB。如果保存 helloworld.c,它会保存在分配的 30GB HDD 的某个点上。然后我应该能够在 Windows 上找到该文件的目录。我真的很困惑。

我是不是想得太简单了?或者虚拟机其实有复杂的硬盘分配方法?

use*_*686 6

\n

如果保存 helloworld.c,它会保存在分配的 30GB HDD 的某个点上。然后我应该能够在 Windows 上找到该文件的目录。

\n
\n

您可以在 Windows 笔记本电脑上查看数据,但不能以单个文件 \xe2\x80\x93 的形式查看数据,只能以整个磁盘的形式查看数据。

\n

虚拟机像真实机器一样工作,因为虚拟机内运行的操作系统仍然认为它连接了实际的硬盘驱动器。Ubuntu 不会告诉 VirtualBox 存储单个文件;它仅以扇区的形式与虚拟 HDD 进行对话(虚拟磁盘有自己的 MBR、自己的分区等)\xe2\x80\x93,并且与真实 HDD 非常相似,VirtualBox 不知道每个扇区的含义,它只是将它们全部存储在一个巨大的文件中。

\n

具体来说,使用 VirtualBox,虚拟机的数据存储在~\\VirtualBox\\您的 Windows 帐户1内的目录中(例如C:\\Users\\sangyeob\\VirtualBox\\)。要找到它,您可以右键单击虚拟机并选择“在资源管理器中显示”。

\n

打开该位置后,您应该找到一个文件Ubuntu.vdi或类似的 \xe2\x80\x93,它包含 VM 的整个“磁盘映像”(包含 MBR、分区表、文件系统和所有内容)。你的整个 30\xc2\xa0GB 磁盘空间分配就是这个 .vdi 文件,VirtualBox 假装是一个 30\xc2\xa0GB HDD。

\n

换句话说,.vdi 文件很像 .iso 映像,仅包含 HDD 而不是 CD。

\n

(虽然一个区别是 .vdi 文件会跟踪虚拟 HDD 的哪些部分尚未写入,这就是为什么它们一开始比实际的“30 GB”分配要小得多。)

\n
\n

然而,所有这些也有例外。如果您使用 VirtualBox 的“共享文件夹”功能,您可以允许VM直接访问Windows上的文件。

\n

“共享文件夹”不模拟磁盘;相反,他们实际上模拟了网络共享,这确实以文件而不是扇区的形式工作

\n

为了使此功能发挥作用,虚拟机可能需要安装 VirtualBox“Guest Additions”驱动程序,尽管最近的 Linux 版本可能已经内置了对 VirtualBox 共享文件夹的支持。

\n
\n

1作为一般准则,程序避免将用户数据存储在“程序文件”中。个人数据存储在您的用户帐户中的某个位置,而共享数据将隐藏在其中C:\\ProgramData\\目录中(例如,Hyper-V 虚拟机默认存储在那里)。

\n