将 Windows 路径映射到 VirtualBox 的 Linux 路径

将 Windows 路径映射到 VirtualBox 的 Linux 路径

我正在尝试在 Linux + Windows 之间同步我的 VirtualBox 机器。但是,下面的配置文件以 Windows 目录格式显示。我的Linux位置是/media/large/VirtualBox,我的Windows位置是D:\VirtualBox。有什么办法可以映射D:\到吗/media/large

编辑:我还需要自动更改\/.

<?xml version="1.0" encoding="UTF-8"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-windows">
  <Global>
    <ExtraData>
      <ExtraDataItem name="GUI/DetailsPageBoxes" value="general,system,preview,display,storage,audio,network,usb,sharedFolders,description"/>
      <ExtraDataItem name="GUI/GroupDefinitions/" value="go=Linux,go=Mac OSX,go=Virus Tests,go=Windows"/>
      <ExtraDataItem name="GUI/GroupDefinitions/Linux" value="m=961169b7-5d37-4b29-b4bf-c16c39ddda6a,m=321fafcc-9a84-4303-a8f6-777a54bbb420,m=41d67265-baf7-4b07-a98f-163012e4c1ef,m=48f12f20-604b-4977-b415-ca6ca4680c0f,m=e6b39bc1-0de8-49df-8cd1-92250840617e,m=0b09bc8a-8aa9-41e0-b79a-faef029003b0,m=9c6fc622-b0c1-47c8-b2b6-3a0a723257bd"/>
      <ExtraDataItem name="GUI/GroupDefinitions/Mac OSX" value="m=9136bf28-622b-4d5c-9dac-5c46529aff7b"/>
      <ExtraDataItem name="GUI/GroupDefinitions/Virus Tests" value="m=be4f52c0-4d86-445d-bf49-65d86bd1c8de"/>
      <ExtraDataItem name="GUI/GroupDefinitions/Windows" value="m=7ec90f6d-3bf2-4d96-912c-67283315a62b,m=d89443fc-2e4b-4870-a0d4-bf99b2d2a1f5,m=20a56fc1-4acf-436a-a3b1-6c79d1786911,m=4eecddd5-53d6-403f-9e11-3f91be2ea0f7"/>
      <ExtraDataItem name="GUI/HideDescriptionForWizards" value="NewVM"/>
      <ExtraDataItem name="GUI/HostScreenSaverDisabled" value="false"/>
      <ExtraDataItem name="GUI/Input/AutoCapture" value="true"/>
      <ExtraDataItem name="GUI/Input/HostKeyCombination" value="163"/>
      <ExtraDataItem name="GUI/LastItemSelected" value="m=Mac OSX 10.12 Sierra"/>
      <ExtraDataItem name="GUI/LastWindowPosition" value="0,23,1920,1027,max"/>
      <ExtraDataItem name="GUI/RecentFolderCD" value="D:/OS"/>
      <ExtraDataItem name="GUI/RecentFolderHD" value="D:/Virtual Box"/>
      <ExtraDataItem name="GUI/RecentListCD" value="D:\OS\Fedora-Workstation-Live-x86_64-25-1.3.iso,D:\OS\Windows 10 x64 Insider Preview.iso"/>
      <ExtraDataItem name="GUI/RecentListHD" value="D:\Virtual Box\UbuntuPartition.vmdk,D:\Virtual Box\UbuntuPartition-pt.vmdk,D:\Virtual Box\USB.vmdk,D:\Virtual Box\Windows\Windows 7\Windows 7.vdi,D:\Virtual Box\Windows 7.vdi"/>
      <ExtraDataItem name="GUI/SplitterSizes" value="638,1277"/>
      <ExtraDataItem name="GUI/SuppressMessages" value="remindAboutAutoCapture,remindAboutMouseIntegration"/>
      <ExtraDataItem name="GUI/UpdateCheckCount" value="8"/>
      <ExtraDataItem name="GUI/UpdateDate" value="never"/>
    </ExtraData>
    <MachineRegistry>
      <MachineEntry uuid="{961169b7-5d37-4b29-b4bf-c16c39ddda6a}" src="D:/Virtual Box/Linux/Debian/Debian.vbox"/>
      <MachineEntry uuid="{321fafcc-9a84-4303-a8f6-777a54bbb420}" src="D:/Virtual Box/Linux/Kali Linux/Kali Linux.vbox"/>
      <MachineEntry uuid="{41d67265-baf7-4b07-a98f-163012e4c1ef}" src="D:/Virtual Box/Linux/Linux Mint Mate/Linux Mint Mate.vbox"/>
      <MachineEntry uuid="{48f12f20-604b-4977-b415-ca6ca4680c0f}" src="D:/Virtual Box/Linux/Ubuntu 16.04/Ubuntu 16.04.vbox"/>
      <MachineEntry uuid="{9136bf28-622b-4d5c-9dac-5c46529aff7b}" src="D:/Virtual Box/Mac OSX/Mac OSX 10.12 Sierra/Mac OSX 10.12 Sierra.vbox"/>
      <MachineEntry uuid="{be4f52c0-4d86-445d-bf49-65d86bd1c8de}" src="D:/Virtual Box/Virus Tests/Windows XP - Infected/Windows XP - Infected.vbox"/>
      <MachineEntry uuid="{20a56fc1-4acf-436a-a3b1-6c79d1786911}" src="D:/Virtual Box/Windows/Windows 8/Windows 8.vbox"/>
      <MachineEntry uuid="{4eecddd5-53d6-403f-9e11-3f91be2ea0f7}" src="D:/Virtual Box/Windows/Windows 10 Insider Preview/Windows 10 Insider Preview.vbox"/>
      <MachineEntry uuid="{7ec90f6d-3bf2-4d96-912c-67283315a62b}" src="D:/Virtual Box/Windows/Windows XP/Windows XP.vbox"/>
      <MachineEntry uuid="{d89443fc-2e4b-4870-a0d4-bf99b2d2a1f5}" src="D:\Virtual Box\Windows\Windows 7\Windows 7.vbox"/>
      <MachineEntry uuid="{e6b39bc1-0de8-49df-8cd1-92250840617e}" src="D:\Virtual Box/Linux\Fedora\Fedora.vbox"/>
      <MachineEntry uuid="{0b09bc8a-8aa9-41e0-b79a-faef029003b0}" src="D:\Virtual Box/Linux\Gparted\Gparted.vbox"/>
      <MachineEntry uuid="{9c6fc622-b0c1-47c8-b2b6-3a0a723257bd}" src="D:\Virtual Box/Linux\Ubuntu Partition\Ubuntu Partition.vbox"/>
    </MachineRegistry>
    <NetserviceRegistry>
      <DHCPServers>
        <DHCPServer networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter" IPAddress="192.168.56.100" networkMask="255.255.255.0" lowerIP="192.168.56.101" upperIP="192.168.56.254" enabled="1"/>
      </DHCPServers>
    </NetserviceRegistry>
    <SystemProperties defaultMachineFolder="D:\Virtual Box" defaultHardDiskFormat="VDI" VRDEAuthLibrary="VBoxAuth" webServiceAuthLibrary="VBoxAuth" LogHistoryCount="3" exclusiveHwVirt="false"/>
    <USBDeviceFilters/>
  </Global>
</VirtualBox>

答案1

如果您想避免拥有两个 VirtualBox 配置文件但共享同一个配置文件,则需要考虑两组转换。

  1. 您的 Windows 路径的文件夹之间带有反斜杠\。例如,D:\OS\Fedora-Workstation-Live-x86_64-25-1.3.iso
  2. 您的 Windows 路径/在文件夹之间带有正斜杠。例如,D:/Virtual Box/Linux/Kali Linux/Kali Linux.vbox

在这两种情况下,路径都以D:

您可以使用策略性地放置在运行 VirtualBox 的目录中的符号链接来修复路径起点。此外,还可以通过可重复的转换来修复配置文件中的反斜杠:

ln -s /media/large 'D:'
cp -p vbox.xml vbox.xml.old && tr '\\' / <vbox.xml.old >vbox.xml

如果您想避免修复 VirtualBox 配置文件本身,就会变得有点困难,但这并非不可能。理想情况下,您将返回并检查 Windows 端,看看是否可以提供正斜杠路径。如果没有,仔细进一步应用符号链接可能会有所帮助。以下是您必须应用的示例:

ln -s 'D:'/OS/Fedora-Workstation-Live-x86_64-25-1.3.iso 'D:\OS\Fedora-Workstation-Live-x86_64-25-1.3.iso'

请注意,我引用了目标链接名称并逐字保留了反斜杠。这将创建一个表面上看起来像是包含文件夹的 Windows 文件名路径的名称,但实际上只是包含必要的反斜杠的 UNIX 文件名。

答案2

当然,只需使用任何文本处理工具即可。以sed为例:

sed 's|D:\|/media/large|g' file.win > file.nix

相关内容