2014-11-06 108 views
3

我已經使用xdissent/ievms在我的Mac上的VirtualBox中設置了多個Windows客戶操作系統。如何將主機文件複製到VirtualBox中的Windows guest操作系統?

我想將條目添加到每個Windows VM的hosts文件。我可以從Windows客戶機操作系統hosts文件成功複製到我的Mac這樣的:

VBoxManage guestcontrol "IE9 - Win7" copyfrom "C:\\Windows\\system32\\drivers\\etc\\hosts" ~/Desktop/hosts --username IEUser --password Passw0rd\! 

我的Mac上我也能成功添加條目使用echo -e "blah blah\r\n" >> hosts複製的文件。

但是我無法將修改後的文件複製回Windows客戶機操作系統上的正確位置。我可以把它複製到Windows桌面,但如果我嘗試將它複製到正確的文件夾中,我得到:

VBoxManage guestcontrol "IE9 - Win7" copyto ~/Desktop/hosts "C:\\Windows\\system32\\drivers\\etc\\hosts" --username IEUser --password Passw0rd\! --verbose 
Opening guest session as user 'IEUser' ... 
Waiting for guest session to start ... 
Guest session (ID 1) has been started 
Copying from host to guest ... 
Directory "." already exists 
Source: /Users/andy/Desktop/hosts 
Copying "/Users/andy/Desktop/hosts" to "./C:\Windows\system32\drivers\etc\hosts" ... 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%... 
Progress state: VBOX_E_IPRT_ERROR 
VBoxManage: error: Copying file "/Users/andy/Desktop/hosts" failed with status 500, exit code 1. 
VBoxManage: error: Error processing "/Users/andy/Desktop/hosts", rc=VERR_GENERAL_FAILURE 
Closing guest session ... 

接下來我試着動我成功複製到Windows桌面到正確的文件夾中的文件:

VBoxManage guestcontrol "IE9 - Win7" mv "/Documents and Settings/IEUser/Desktop/hosts" "/Windows/System32/drivers/etc/hosts2" --username IEUser --password Passw0rd\! --verbose 
Opening guest session as user 'IEUser' ... 
Waiting for guest session to start ... 
Guest session (ID 1) has been started 
Renaming 1 entry ... 
Renaming file "/Documents and Settings/IEUser/Desktop/hosts" to "/Windows/System32/drivers/etc/hosts2" ... 
VBoxManage: error: Renaming guest file failed: VERR_ACCESS_DENIED 
VBoxManage: error: Details: code VBOX_E_IPRT_ERROR (0x80bb0005), component GuestSession, interface IGuestSession, callee nsISupports 
VBoxManage: error: Context: "FileRename(Bstr(strCurSource).raw(), Bstr(strCurDest).raw(), ComSafeArrayAsInParam(aRenameFlags))" at line 3015 of file VBoxManageGuestCtrl.cpp 
Warning: Not all sources were renamed 
Closing guest session ... 

線索似乎是VERR_ACCESS_DENIED,即權限問題。

IEUser用戶設置爲管理員,所以我不明白爲什麼它不能寫入etc目錄。有任何想法嗎?

回答

1

VBoxManage guestcontrol並不總是易於使用。如果您使用ievms框,則可以使用由gem ievms-ruby提供的cli實用程序ievmsrb。將文件複製到來賓機ievmsrb輸入:

$ ievmsrb copy_to_as_adm "IE9 - Win7" ~/Desktop/hosts 'C:\Windows\System32\Drivers\Etc\hosts' 

因爲C:\Windows\System32\Drivers\Etc\hosts只可寫的管理員必須使用copy_to_as_adm命令。

檢查它是否與

ievmsrb cat "IE9 - Win7" 'C:\Windows\System32\Drivers\Etc\hosts' 
+1

成功複製我只是想你的寶石(18個月後......) - 這是夢幻般的。它直接解決了我的問題。謝謝 :) – 2017-03-27 15:30:42

0

要將複製到虛擬機,您應該使用copyto而不是copyfrom。

0

請不要指定完整的目標路徑,它將放置在c:\ windows \ system32文件夾中(假設您以管理員身份進行連接)。

然後,您可以使用「ren」子命令將文件移動到'drivers \ etc \ hosts'中(假設您先刪除原始文件)。

例子:

VBoxManage guestcontrol 「$ inputVMID」 CP 「$ tFile」 'hosts.new' --username管理員--password *** --verbose

依次爲:

刪除原始文件,

VBoxManage guestcontrol 「$ inputVMID」 RM「drivers \ etc下\主機的管理員--username ** - 密碼--verbose

和f inally

重命名新的hosts文件

VBoxManage guestcontrol 「$ inputVMID」 仁「hosts.new'drivers \ etc下\主機的管理員--username --password * --verbose

HTH

相關問題