共享文件夹和 vboxsf:具有权限控制的最稳定的方法。
快速集成:拖放, 剪贴板 y USB 带有客人附加功能。
网络和云替代方案:SMB/Samba、SFTP/SSH、NFS 和云服务。
VMware/ESXi 中的高级方法:PowerCLI、数据存储、WinSCP 和 ISO。
在主机和虚拟机之间共享文件 VirtualBox的 这是那些一旦掌握就能为你节省大量时间和避免麻烦的任务之一。 诀窍在于针对每种情况选择正确的方法。:共享文件夹、拖放、USB、本地网络甚至 云计算 如果您想要忘记配置。
VirtualBox 由 Oracle 开发,免费且开源,支持 Windows、macOS、GNU/Linux、Genode 和 Solaris。 当前 6.x 版本在 64 位上运行 (如果您需要 32 位,则必须使用官方网站上的旧版本。)在以下部分中,您将逐步了解如何安全无误地移动文件,以及使用 VMware的 工作站/ESXi。
在 VirtualBox 和客户系统之间共享文件夹
最方便的方法通常是 创建共享文件夹 来自 VM 配置。 这样,主人和客人之间就会有一座稳定的“桥梁”。,具有只读和自动挂载选项。
打开 VirtualBox,选择 VM 并转到“设置”。
转到“共享文件夹”并点击带有“+”的文件夹图标。
在“文件夹路径”下,选择“其他...”并选择要共享的主机文件夹。
在“文件夹名称”下,定义它在客户端中的外观。
如果您希望虚拟机在启动时自动挂载,请选中“自动挂载”。
可选:选中“只读”以防止客人进行更改。
单击“接受”进行确认。 对所需数量的文件夹重复此操作。.
配置完成后,启动虚拟机。在 Windows 客户机中,您将看到该文件夹作为网络 (LAN) 共享。 它通常表现为类似于网络上的共享文件夹的可访问资源。。 在 Linux 来宾,VirtualBox 通常将其安装在“/media/sf_名称
“。 了解如何在本地网络上设置共享
如果您以访客身份使用 Linux,请将您的用户添加到“vboxsf”组以进行无权限访问。 根. 如果您看到权限被拒绝,这一步是关键。:
sudo usermod -aG vboxsf tu_usuario
# Cierra sesión y vuelve a entrar (o reinicia la VM)
您想加强安全吗? 激活“只读” 在共享文件夹中以防止来宾修改。 这对于缺乏经验的用户来说是理想的选择,他们可以在不破坏任何东西的情况下进行咨询。.
拖放和共享剪贴板
您将文件从主机拖放到虚拟机上,就这样。 更容易,不可能。为了使其工作,请在客户系统内安装 Guest Additions。
关闭虚拟机后,转到设置>常规>高级。
在“拖放”下,选择“双向”(或“主机到访客”,如果您希望限制)。
在“共享剪贴板”下,选择“双向”以在两个系统之间复制/粘贴文本。
进入虚拟机后,尝试拖动文件或复制/粘贴文本。 如果出现故障,请重新安装 Guest Additions 并重新启动。.
在 Excel 宏中配置安全性:分步指南在 VirtualBox 中使用 USB 闪存驱动器
如果您已经在使用闪存驱动器或外部硬盘驱动器,则可以将其连接到 VM 来移动文件。 诀窍是正确启用 USB 控制器并为您的设备创建过滤器。.
在 VM 设置中,转到“USB”并选中“启用 USB 控制器”。
选择标准(根据您的需要,选择 USB 2.0 或 3.0)。
将 USB 连接到主机,按“+”并从列表中选择您的设备。
启动虚拟机:USB 将与主机断开连接并安装在客户机内部。
重要提示:在某些配置中, 使用 USB 3.0 可能会导致崩溃或 VM 无法启动。 引导如果遇到异常情况,请尝试 USB 2.0,或者为了获得最佳兼容性,建议使用 USB 1.1(速度较慢但更稳定)。为了安全起见,请在不需要时禁用 USB 控制器。
Linux 客户机:挂载点、vboxsf 组和手动挂载/卸载
如果您想在 GNU/Linux 中完全控制,您可以定义一个特定的挂载点并自动或手动挂载该文件夹。 这种方法可以让你复制清晰的结构,例如多媒体.
实际示例:假设您在主机上共享“C:\电影» 并且您想将其安装在 «/主页/琼/电影» 在 Linux 客户机内部。
在 Linux VM 上,创建挂载点:
mkdir -p /home/joan/movies
关闭虚拟机并在 VirtualBox 中定义共享文件夹:
路径:“C:\\movies”
名称:“电影”
自动挂载:已启用
挂载点:“/home/joan/movies”
如果还没有,请启动并将您的用户添加到“vboxsf”组:
sudo usermod -aG vboxsf "$(whoami)"
# Reinicia la VM para aplicar los cambios
如果您希望手动挂载(在文件夹设置中取消选中“自动挂载”): 使用共享文件夹名称作为源.
sudo mount -t vboxsf movies /home/joan/movies
稍后拆卸: 按名称或挂载点卸载.
sudo umount -t vboxsf movies
# o
sudo umount /home/joan/movies
这些变化适用于所有新的虚拟机吗?
每个虚拟机本身就是一个世界。 每个 VM 定义文件夹、USB、剪贴板或拖放选项。如果创建新虚拟机,则必须重复配置。这看似麻烦,但在同时使用多个虚拟机时,它确实增加了一层安全性。
网络传输:SMB/Samba、FTP/SFTP 和适配器设置
如果主机和虚拟机共享网络,您也可以通过经典协议传输文件。 当您避免安装插件或使用没有图形环境的虚拟机时,它很有用。.
VirtualBox 中的网络:将其设置为“桥接适配器”,以便 VM 可以连接到您的 LAN;带有端口规则的 NAT 也可以工作。
Samba/SMB:在主机上共享一个文件夹并从客户机访问它(在 Windows 和 Linux 之间特别有用)。
FTP/SFTP:在主机上设置 FTP/SFTP 服务器,并使用客户端(FileZilla、lftp)从 VM 连接到该服务器。
优点是您不依赖 VirtualBox 集成。 缺点是您必须打开端口并处理许可证。.
使用云:Drive、OneDrive、Dropbox 和公司
如果您在多台计算机上工作或者不想摆弄 VM 设置,云同步非常方便。 在主机和客户机上安装客户端,选择文件夹并运行. 云同步 它通常是维护一致文件的最实用的选择。
iPhone 不振动(静音模式和响铃)注意空间:平台通常提供两种模式。 完整下载(所有内容在本地)或“按需文件”(打开文件之前为云链接)对于虚拟机来说,第二个通常更好,以避免重复千兆字节。
WeTransfer 类型的网络应用程序
对于一次性传输,WeTransfer 等工具允许您上传一个或多个文件并共享链接或电子邮件。 它速度快,无需配置,并且允许存储大文件问题是它不是自动的:如果您忘记上传文件,则必须重复该过程。
如果您正在使用 VMware:共享文件夹、D&D、USB 以及与 ESXi 的区别
在 VMware Workstation/Fusion 中也有“共享文件夹”。 您需要在客户机内安装 VMware Tools,然后在“虚拟机”>“设置”>“选项”>“共享文件夹”>“始终启用”中启用它们。添加文件夹,为其命名,然后选择“启用此共享”。
在客户机 Windows 中,您将看到“\vmware-host\Shared Folders\\名称\\»。 在 Linux 中,您可以挂载所有共享 (根据内核):
# Kernel < 4.0
mount -t vmhgfs .host:/ /home/user1/shares
# Kernel ≥ 4.0
/usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other
通过选中“启用拖放”和“启用复制和粘贴”,可以在“选项”>“客户隔离”中启用拖放和复制/粘贴。 在 ESXi 上,为了安全起见,仅允许复制/粘贴文本(如果启用它)要启用它,请将这些参数添加到 VM 配置(关闭电源):
isolation.tools.copy.disable = "FALSE"
isolation.tools.paste.disable = "FALSE"
isolation.tools.setGUIOptions.enable = "TRUE"
工作站上的 USB 很简单:插入闪存驱动器并选择“连接到 VM”。 如果启动了多个虚拟机,请选择接管。在 Linux 上,您可能需要手动安装驱动器。
ESXi 则不同:它没有共享文件夹,但 USB 直通有要求。 您可以将 USB 连接到主机或从客户端(工作站/VMRC)连接到远程虚拟机如果您需要在 ESXi 上直接安装 USB 以复制到数据存储,请在 VFAT(FAT)中准备该棒并使用 CLI。
为 ESXi 准备一个 USB 并从命令行复制
在 Windows 上,使用 diskpart 快速创建 VFAT 分区。 VFAT 限制每个文件最多 4GB,但有利于配置和 驱动程序:
diskpart
list disk
select disk 1
list partition
select partition 1
delete partition
select disk 1
create partition primary size=4000 id=6
format fs=fat quick
exit
在 ESXi 上,要在 shell 中使用 USB,请停止 USB 仲裁器,找到设备并复制。 这使得 USB 不再自动直通虚拟机:
/etc/init.d/usbarbitrator stop
lsusb
ls -ltrh /vmfs/devices/disks/
ls /dev/disks/mpx.vmhba32:C0:T0:L0:*
ls -al /vmfs/volumes/
# Supongamos volumen "NO NAME"
cp /vmfs/volumes/NO\ NAME/archivo.zip /vmfs/volumes/datastore10a/install/
# Copia inversa
cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO\ NAME/
完成后,您可以重新启动 USB 仲裁器: 这是恢复虚拟机直通的方法.
/etc/init.d/usbarbitrator start
PowerCLI、vmrun 以及复制到/从数据存储区复制
PowerCLI 允许您通过 VMware Tools 在 ESXi 上将文件复制到虚拟机或从虚拟机复制文件,无需网络。 当您不想打开端口或挂载资源时很有用.
# Conexión
Connect-VIServer 192.168.101.201
# Local > VM invitada
Copy-VMGuestFile -Source "c:\\temp\\test.txt" -LocalToGuest -VM Windows-VM -Destination "c:\\temp-VM" -GuestUser user1 -GuestPassword Password
# VM invitada > Local
Copy-VMGuestFile -Source "c:\\temp-VM\\test2.txt" -GuestToLocal -Destination "c:\\temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password
处理数据存储: 创建一个单位 PowerShell的 并使用 Copy-DatastoreItem.
$datastore = Get-Datastore "datastore10a"
New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"
Set-Location ds:\
Copy-DatastoreItem -Item ds:\\Windows-VM\\Windows-VM.vmx -Destination c:\\temp
Copy-DatastoreItem -Item c:\\temp\\darwin.iso -Destination ds:\\install\\
使用 VMware Workstation/Fusion 您就有了 vmrun 实用程序。 通过指定虚拟机 (.vmx) 在主机和客户机之间进行复制:
cd "C:\\Program Files (x86)\\VMware\\VMware Workstation\\"
vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:\\virtual\\WinServer2019\\WinServer2019.vmx "c:\\temp\\test.txt" "c:\\temp\\copied\\"
vmrun copyFileFromHostToGuest d:\\virtual\\WinServer2019\\WinServer2019.vmx "c:\\temp\\test3.txt" "c:\\temp\\test3-copy.txt"
SSH/SCP、WinSCP 和 NFS:当网络成为你最好的盟友时
SSH的 和 SCP 是 Linux 和 ESXi 中的瑞士军刀。 使用 SCP,您可以通过一个命令安全地移动文件:
# Local > ESXi
scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/
# ESXi > Linux
scp -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/
# Linux > ESXi (puerto no estándar)
scp -P 8022 -r /local/dir user1@192.168.101.201:/vmfs/volumes/datastore10a/install/
在 Windows 上,WinSCP 为您提供了一个双窗格界面,用于在本地和远程之间进行复制。 如果您需要在本地面板中点击 Windows SMB 共享,请映射驱动器(例如 S:).
忘记了您的 Apple ID?如何逐步恢复对于 ESXi 的大流量,安装 NFS 资源作为数据存储非常方便。 在 Linux 上,安装 nfs-kernel-server,导出路由,并允许其进入防火墙。:
sudo apt-get update
sudo apt-get install nfs-kernel-server -y
sudo mkdir -p /srv/nfs/share1/
sudo chown -R nobody:nogroup /srv/nfs/share1/
sudo chmod 0777 /srv/nfs/share1/
echo "/srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports
sudo exportfs -a
sudo ufw allow from 192.168.101.201 to any port nfs
sudo systemctl restart nfs-kernel-server
在 ESXi 上,添加 NFS 数据存储区(主机 > 存储 > 新数据存储 > NFS)。 您可以从数据存储浏览器从 NFS 复制到本地数据存储,反之亦然。。您还可以使用 CLI:
cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt
通过 Web 界面和 ISO 映像上传/下载
VMware Host Client/vSphere Client 允许您从浏览器上传/下载数据存储中的文件。 可在任何可访问主机网络的计算机上工作如果您的虚拟机上没有网络,只需要向客户机发送数据,则另一个选择是创建包含文件的 ISO 并将其作为虚拟 CD/DVD(只读)安装。
通过所有这些范围(共享文件夹、D&D、USB、网络、云、NFS、SCP、VMware 工具),您可以为每种场景提供替代方案: 从快速文件共享到具有安全性和兼容性策略的多个虚拟机之间的重复流程如果某些功能无法正常工作,请降低 USB 配置文件,重新安装附加组件(Guest Additions/VMware Tools),并检查 Linux 中的组权限;很少有问题是这些调整无法解决的。
相关文章:如何在 Windows 11 中的本地网络上共享文件和文件夹
艾萨克对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。