2016-08-31 61 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

相关问题