如何使用命令行

时间:2016-08-31 14:18:02

标签: ubuntu virtualbox

我正在尝试在虚拟机中模拟一个英特尔NUC网关。我正在亚马逊EC2实例中运行此虚拟框。由于连接不良,我无法查看桌面的GUI。因此开始使用命令行来创建虚拟机.Below是我的步骤

1)在resin.io中创建了一个应用程序并选择了intel nuc board作为应用程序并下载了图像

2)将.img转换为.vmdk图像并将此图像保存在我的ec2实例中

3)现在我使用命令行参数在EC2中创建了我的虚拟机,当我尝试导入此图像时...我很震惊..我没有得到相关的命令

请帮帮我

1 个答案:

答案 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复制到那里,然后修改下面文件中的设置(根据需要调整可用内存,磁盘存储和文件名)。

脚本将:

  1. 创建虚拟机并使用VirtualBox注册
  2. 为resin.io NUC图像设置正确的硬件设置
  3. 创建SATA存储驱动程序
  4. 创建主硬盘并将其附加到虚拟机
  5. 将resin.io安装介质连接到机器上
  6. 以无头模式运行虚拟机,进行树脂的首次配置。
  7. 完成后,此过程将关闭虚拟机
  8. 之后不需要安装介质
  9. 然后你的机器就可以运行了。

    #!/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格式,并按上述方式设置虚拟机。