2016-08-31 94 views
3

我試圖在virtualbox中模擬一個英特爾NUC網關。我在亞馬遜EC2實例中運行這個虛擬框。由於連接不暢,我無法查看桌面的GUI。因此開始使用命令行。下面是我在resin.io創建的應用程序的步驟如何使用命令行在ubuntu中創建虛擬機

1)來創建虛擬機,拿起英特爾NUC板作爲應用程序與下載的圖像

2)轉換的.IMG到.vmdk圖像並保存在我的ec2實例中的這個圖像

3)現在我創建了我的虛擬機在EC2中使用命令行參數,當我嘗試導入此圖像..我感到了..我沒有得到相關命令

請幫我出去

回答

2

(見下面的編輯!)

看起來這是目前不可能與AWS EC2。他們有很好的basic info和詳細的step-by-step guide來導入虛擬機映像,但resin.io映像不符合它們的operating systems prerequisits:基本上,在EC2上運行的OS映像必須是列出的操作系統類型之一(Ubuntu,Red Hat ,SUSE等),但resin.io映像是一個自定義的Linux系統,它不被EC2平臺所接受。我試圖運行他們的導入程序,並且所有不同類型的嘗試都被拒絕了。

建議嘗試不同的方式來運行虛擬機。如果你只是嘗試一個虛擬設備(我猜根據this blogpost),並且你不需要NUC映像,只需要任何虛擬設備就可以完成,那麼在resin.io上也可以找到基於QEMU的映像。也可以在本地機器上運行(由於相同的原因,這些功能也無法在EC2上運行)。

編輯:

重讀你的問題,它是關於EC2本身少了很多,而且更多的是VirtualBox的,我道歉。 VBoxManage有豐富的文檔。在這種情況下,這是一個腳本,可以在命令行上在VirtualBox上設置和啓動resin.io NUC映像。

需要什麼:從resin.io儀表板下載NUC圖像,並轉換成VMDK圖像。在主機上安裝VirtualBox,將VMDK複製到那裏,然後修改下面文件中的設置(根據需要調整可用內存,磁盤存儲和文件名)。

腳本將:

  1. 創建虛擬機,並在VirtualBox中註冊它
  2. 設置正確的硬件設置爲resin.io NUC圖像
  3. 創建一個SATA存儲驅動器
  4. 創建主硬盤驅動器並將其附加到虛擬機上
  5. 將resin.io安裝介質附加到機器上
  6. 在無頭模式下運行虛擬機來完成樹脂的首次配置。完成
  7. 取下安裝媒體,因爲它不是事後需要

然後你的機器準備好運行時,此過程將關閉虛擬機。

#!/bin/bash 

## Fill in these Variables 
# the virtualmachine's name 
MACHINE=MyMachine2 
# memory in MB 
MEMORY=2048 
# storage in MB 
STORAGE=8096 
# resin installation media path & filename 
RESIN_DISK="resin-MyApplication-1.8.0-1.13.0-eb7236d1bd7e.vmdk" 
# Storage disk, by defalt created in the current working directory! 
DISKFILE="./${MACHINE}.vdi" 
### 


## Convert the original image to a Virtualbox image as: 
# VBoxManage convertdd resin.img resin.vmdk --format vmdk 
# and then use RESIN_DISK="resin.vmdk" above 

echo "Createing Machine" && \ 
VBoxManage createvm --name "$MACHINE" \ 
    --ostype Linux_64 \ 
    --register && \ 
\ 
echo "Setting up Machine" && \ 
VBoxManage modifyvm "$MACHINE" \ 
    --memory $MEMORY \ 
    --ioapic off \ 
    --firmware efi64 \ 
    --rtcuseutc on && \ 
\ 
echo "Createing Storage Controller" && \ 
VBoxManage storagectl "$MACHINE" \ 
    --name SATA \ 
    --add sata && \ 
\ 
echo "Creating Main Disk" && \ 
VBoxManage createmedium disk \ 
    --filename "$DISKFILE" \ 
    --size $STORAGE && \ 
\ 
echo "Attaching Main Disk" && \ 
VBoxManage storageattach "$MACHINE" \ 
    --storagectl SATA \ 
    --port 0 --device 0 --type hdd --medium "$DISKFILE" && \ 
\ 
echo "Attaching Resin Install Media" && \ 
VBoxManage storageattach "$MACHINE" \ 
    --storagectl SATA \ 
    --port 1 --device 0 --type hdd --medium "$RESIN_DISK" && \ 
\ 
echo "Starting machine for first time setup" && \ 
VBoxHeadless --startvm "$MACHINE" && \ 
\ 
echo "Removing install media" && \ 
VBoxManage storageattach "$MACHINE" \ 
    --storagectl SATA \ 
    --port 1 --device 0 --type hdd --medium none && \ 
\ 
echo -e "You now can start machine for future use as: \nVBoxHeadless --startvm \"$MACHINE\"" 

附加:

作爲一個側面說明,如果你是在命令行上工作,還可以獲得通過命令行所需要的resin.io形象呢!

安裝resin-cli到您的主機,並使用resin login登錄(例如,使用從resin.io儀表板/首選項部分的API密鑰),

下載裸操作系統映像的NUC,爲例如:

resin os download intel-nuc -o intel-nuc.img 

爲應用程序創建一個配置,讓我們說你的應用程序的名稱是MyApp的:

resin config generate --app MyApp -o config-MyApp.json 

釷恩這個配置添加到您的形象:

sudo resin config inject config-MyApp.json --type intel-nuc --drive intel-nuc.img 

(對於這一點,你可能必須運行sudo resin login所以你能夠正確使用sudo與樹脂的命令。)

在這之後,你可以做轉換的intel-nuc.img爲VMDK格式,並設置您的虛擬機,如上所述。

+0

嗨Gergely,感謝您的幫助!但我面臨問題,而開始我的虛擬機有樹脂VMDK圖像。這次我不使用EC2實例。我正在組織網絡中工作,我無法在VM啓動時查看啓動過程。請你能爲我提出任何解決方法 – Arul

+0

你如何運行Virtualbox?遠程?如果您通過'VBoxHeadless'運行映像,則不會看到任何引導過程。幾分鐘後,您的設備是否會顯示在resin.io儀表板中?通過查看啓動過程,您試圖解決的問題是什麼? – Gergely

+0

我的設備doest顯示在resin.io中。我需要我的vmware intel nuc鏡像在resin.io儀表板中顯示。 – Arul

相關問題