
在主機和虛擬機器之間共用文件 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 並重新啟動。.
在 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 設置,雲端同步非常方便。 在主機和用戶端安裝用戶端,選擇資料夾並執行. 雲端同步 它通常是維護一致文件的最實用的選擇。
注意空間:平台通常提供兩種模式。 完整下載(所有內容在本地)或“按需文件”(打開文件之前為雲端連結)對於虛擬機器來說,第二個通常更好,以避免重複千兆位元組。
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 [email protected]:/vmfs/volumes/datastore10a/install/
# ESXi > Linux
scp -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/user1/
# Linux > ESXi (puerto no estándar)
scp -P 8022 -r /local/dir [email protected]:/vmfs/volumes/datastore10a/install/
在 Windows 上,WinSCP 為您提供了一個雙窗格介面,用於在本機和遠端之間進行複製。 如果您需要在本機面板中點擊 Windows SMB 共享,請對應磁碟機(例如 S:).
對於 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 中的群組權限;很少有問題是這些調整無法解決的。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
