題:
如何從命令行升級VirtualBox
Allan
2020-01-20 04:52:11 UTC
view on stackexchange narkive permalink

我需要遠程登錄Mac以升級VirtualBox。問題是屏幕共享速度實在太慢了,我不想使用第三方屏幕共享實用程序。我更喜歡在Terminal(SSH)中執行此操作,因為它對我而言效率更高。

是否可以從命令行升級VirtualBox?

一 回答:
Allan
2020-01-20 04:52:11 UTC
view on stackexchange narkive permalink

如何通過macOS中的命令行升級VirtualBox-5個步驟!

這是有關如何從命令行升級(安裝)VirtualBox的快速指南。它將涉及安裝.dmg,安裝.pkg,最後升級(安裝)擴展包。

先決條件

本指南假定您已經下載了在 https://www.virtualbox.org/wiki/Downloads上找到的必需文件,並具有 sudo 特權。

您還需要運行中的VM的名稱或UUIDS。您可以使用 VBoxManage list runningvms 命令獲得該信息。請記住,如果您使用VM名稱並且它帶有空格,則必須將其封裝在引號中。示例: VBoxManage showvminfo“我的虛擬機”


1。 關閉所有正在運行的VM和VirtualBox應用程序

關閉VM就像登錄並關閉VM一樣簡單。但是,由於這是“僅終端”解決方案,因此我們需要查看 VBoxManage 中的 savestate 函數。

  VBoxManage controlvm <vmname | UUID> savestate
 

為每個VM按名稱或UUID發出該命令,它將自動保存正在運行的VM的“位置”,然後將其關閉。這等效於在VirtualBox GUI的Machine Menu中選擇Close項目。

注意:這與“拔插頭”不同,這將保存機器狀態,以便在重新打開電源時將在停下的位置重新拾起。

接下來,我們需要確保VirtualBox GUI(管理控制台)沒有運行。要終止VirtualBox GUI,只需發出命令:

  killall VirtualBox
 


2。 安裝VirtualBox安裝.dmg 1 sup>

  hdiutil附加〜/ Downloads / VirtualBox-Version.dmg
 

您將看到幾條“校驗和”消息,完成後,您將看到圖像附加到的 disks 和安裝點,如下所示(這些設備標識符和名稱與您的設備標識符和名稱有所不同) :

  / dev / disk5 GUID_partition_scheme
/ dev / disk5s1 Apple_HFS /卷/ VirtualBox
 

重要的部分是 / Volumes / VirtualBox 。這是安裝程序所在的位置。


3。 安裝.pkg 2 sup>

接下來,我們將運行安裝程序以安裝.pkg文件。位於我們剛剛掛載的捲上。

  sudo安裝程序-pkg /Volumes/VirtualBox/VirtualBox.pkg -target /
 

如果收到以下消息,請返回步驟1

 安裝程序:錯誤-安裝程序檢測到正在運行的虛擬機。請關閉所有正在運行的VirtualBox計算機,然後重新開始安裝
 

如果一切順利,您應該看到以下消息:

 安裝程序:軟件包名稱為Oracle VM VirtualBox
安裝程序:在基本路徑上升級/
安裝程序:升級成功。
 

您可以通過發出以下命令來驗證是否安裝了新版本:

  VBoxManage --version
 


4。 安裝擴展包

要升級擴展包,您需要刪除舊的擴展包並安裝新的擴展包。您可以使用 VirtualBoxManage extpack卸載[--force] {名稱} VBoxManage extpack install {tarball} 命令,但是幸運的是,Oracle為我們提供了- -replace 選項可一步完成:

  sudo VBoxManage extpack install --replace〜/ Downloads / Oracle_VM_VirtualBox_Extension_Pack-version.vbox-extpack
 

會有一些許可條款,只需輸入“ Y”即可接受。如果成功,您將看到以下消息:

 成功安裝了“ Oracle VM VirtualBox Extension Pack”。
 


5。 重新啟動虛擬機並彈出卷

成功!大功告成根據需要重新啟動虛擬機

  VBoxManage startvm <vmname | UUID> [--type headless | GUI | seperate]
 

我的大多數VM是無頭盒,因此我使用-type headless 選項發出命令

  VBoxManage startvm“ FreeBSD” --type headless
 

不要忘記彈出安裝介質卷。您不會希望毫無戒心的用戶進入並找到附加的捲!

  hdiutil彈出/卷/ VirtualBox
 

參考文獻和進一步閱讀

1 sup> 是否有安裝dmg的命令

2 sup> 通過終端安裝.pkg嗎?

VBManage參考手冊

哇!關於步驟1:是否可以通過“ VBoxManage”查詢所有正在運行的VirtualBox VM?否則可能很難知道要關閉哪些VM(並在步驟5中重新啟動)。
@nohillside-命令是`VBoxManage list runningvms`。我會以某種方式將其用於答案。
您是否已安裝[Homebrew](https://brew.sh/)?您可以簡單地發布“酒桶升級virtualbox”。(也許您必須手動停止虛擬機的首次運行,但我尚未對其進行測試。)
@Melebius-我不使用自製軟件。
單調乏味的步驟1.1:`VBoxManage list runningvms |sed -E's /.* \ {(。*)\} / \ 1 /'|xargs -L1 -I {} VBoxManage controlvm {} savestate`(在10.11中進行了測試-worrrrks)。
@klanomath-太棒了!我認為這需要另一個帶有一些有用的VBox函數的Q / A帖子,這個問題可以鏈接到該函數。我有一些我自己的..例如提取UUID的文件,VBoxManage的別名等。您剛發布的那個是金色的。
@Allan Golden將是:將在更新VBox之前已運行的所有“保存狀態” VM UUID保存到某個臨時文件,並在此臨時文件的幫助下更新VBox之後自動從1by1重新啟動它們。
這真太了不起了!


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...