我正在尝试在虚拟机中模拟一个英特尔NUC网关。我正在亚马逊EC2实例中运行此虚拟框。由于连接不良,我无法查看桌面的GUI。因此开始使用命令行来创建虚拟机.Below是我的步骤
1)在resin.io中创建了一个应用程序并选择了intel nuc board作为应用程序并下载了图像
2)将.img转换为.vmdk图像并将此图像保存在我的ec2实例中
3)现在我使用命令行参数在EC2中创建了我的虚拟机,当我尝试导入此图像时...我很震惊..我没有得到相关的命令
请帮帮我
答案 0 :(得分:2)
(请参阅下面的编辑!)
对于AWS EC2,目前看来这是不可能的。他们有良好的basic info和详细step-by-step guide来导入虚拟机图像,但resin.io图像不适合他们的operating systems prerequisits:基本上在EC2之上运行的操作系统映像需要有是列出的操作系统类型之一(Ubuntu,Red Hat,SUSE等),但resin.io映像是一个自定义Linux系统,并且它不被EC2平台接受。我试图运行他们的导入程序,并且拒绝了所有不同类型的尝试。
建议尝试不同的运行虚拟机的方法。如果您只是尝试虚拟设备(我猜是基于this blogpost),并且您不需要NUC映像,只需要任何虚拟设备,那么还有基于QEMU的虚拟设备现在,resin.io上提供的图片也应该可以在你的本地机器上运行(由于同样的原因,那些也不会在EC2上工作)。
修改强>
重新阅读你的问题,它对EC2本身的关注要少得多,而且它更多的是关于VirtualBox,我的道歉。 VBoxManage有大量文档。在这种情况下,这是一个脚本,可以在命令行上的VirtualBox上设置和启动resin.io NUC映像。
需要什么:从resin.io仪表板下载NUC图像,并转换为VMDK图像。在主机上安装VirtualBox,将VMDK复制到那里,然后修改下面文件中的设置(根据需要调整可用内存,磁盘存储和文件名)。
脚本将:
然后你的机器就可以运行了。
#!/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和resin命令。)
在此之后,您可以将intel-nuc.img
转换为VMDK格式,并按上述方式设置虚拟机。