我有以下磁盘设置:
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 195944447 195942400 93,4G 83 Linux
/dev/sda2 195944448 937701375 741756928 353,7G c W95 FAT32 (LBA)
sda1
是 Linux Ubuntu 18.04 和运行 Windows 7 的 vbox。
sda2
只是 Linux 和 VM Windows7 之间共享的数据。
我怎样才能让我的 Windows 7 vbox 访问这个 FAT32 分区?
答案1
欢迎,
这种技术被称为:“原始分区支持“您可以在 Virtualbox 手册章节“9.9 高级存储配置”中找到出色的解释
首先我假设你已经知道(从你的 Linux 主机读写):如何
随意挂载和卸载 Linux 主机上的 FAT32 分区 (/dev/sda2),以及最终如何在 /etc/fstab 文件中添加一行来挂载 FAT32 分区,
您的虚拟机名为“Windows 7”,并且
您只有 1 个虚拟磁盘连接到“Windows 7”。
为了完成任务,您可以输入一些类似这样的命令(适应您的需要!!):
$ sudo VBoxManage internalcommands createrawvmdk -filename /path/to/file_of_the_fat32_partion.vmdk -rawdisk /dev/sda -partitions 2
$ sudo VBoxManage storageattach "Windows 7" --storagectl "SATA" --port 1 --device 0 --type hdd --medium /path/to/file_of_the_fat32_partion.vmdk -rawdisk /dev/sda -partitions 2
第一个命令创建
“...特殊的 VMDK 映像文件,定义数据的存储位置...”
第二条命令附加
“...新创建的图像...”
到您的“Windows 7”虚拟机。
(我引用了 Virtualbox 用户手册中的第 9.9.1 章)。
然后您可以启动“Windows 7”虚拟机,您将在字母 D: 上找到新的分区(dev/sda2)(注意:找到新分区后,Windows 可能会要求您重新启动操作系统)。
要找出虚拟机的名称,请启动以下命令:
$ sudo VBoxManage list vms
找出参数:--storagectl "SATA"
和--port 1
和--device 0
此命令很有用(对于虚拟机“Windows 7”,您应该根据您的需要进行调整):
$ sudo VBoxManage showvminfo "Windows 7" | grep SATA
你会看到类似这样的内容:
Storage Controller Name (0) SATA
SATA (0, 0): /path/to/your_actual_windows_7_virtual_machine_already_working.vdi (UIDD:....)
SATA (1, 0): Empty
请注意,“SATA (1, 0): Empty”是您要连接分区(端口 1,设备 0)的位置 = --storagectl“SATA” and
--port 1 and
--device 0
您应该首先尝试的另一种方法是:- 将 /dev/sda2 挂载到 Linux 主机上的某个位置(例如 /mnt/diskFAT32),然后使用 Virtualbox Manager GUI 上的共享文件夹部分添加一个 /mnt/diskFAT32 共享,并对其设置自动挂载和读/写权限。对我来说,这是在虚拟机“Windows 7”上开始使用 Linux 主机分区的最安全模式。
我希望这可以帮到你。