Cloudready (ChromeOS) VM


schale01

11 posts in this topic Last Reply

Recommended Posts

Just posting for anyone that had any trouble getting the CloudReady VM images to boot.  

https://neverware.zendesk.com/hc/en-us/articles/214564457--UPDATED-Un-Official-CloudReady-Virtual-Machine-Images-

 

Convert to raw img using:

tar xvf CloudReady_48.1_x64_Virtualbox.ova
$ qemu-img convert -O raw CloudReady_Free_x64-disk1.vmdk CloudReady_Free_x64-disk1.img

This gave me a a raw disk img with several partitions

$ fdisk -l CloudReady_Free_x64-disk1.img
Disk CloudReady_Free_x64-disk1.img: 16 GiB, 17179869184 bytes, 33554432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 95B869D9-9524-604B-B8E5-E739B78E9518

Device                             Start      End  Sectors  Size Type
CloudReady_Free_x64-disk1.img1        64       64        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img2        65       65        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img3        66       66        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img4        67       67        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img5        68       68        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img6        69       69        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img7        70       70        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img8        71       71        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img9        72       72        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img10       73       73        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img11       74       74        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img12       75       75        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img13       76       76        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img14       77       77        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img15       78       78        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img16 14831682 33554397 18722716  8.9G Microsoft basic data
CloudReady_Free_x64-disk1.img17    20546    53313    32768   16M ChromeOS kernel
CloudReady_Free_x64-disk1.img18  8589378 14831681  6242304    3G ChromeOS root fs
CloudReady_Free_x64-disk1.img19    53314    86081    32768   16M ChromeOS kernel
CloudReady_Free_x64-disk1.img20  2347074  8589377  6242304    3G ChromeOS root fs
CloudReady_Free_x64-disk1.img21    16514    16514        1  512B ChromeOS kernel
CloudReady_Free_x64-disk1.img22    16515    16515        1  512B ChromeOS root fs
CloudReady_Free_x64-disk1.img23    86082  2183233  2097152    1G Microsoft basic data
CloudReady_Free_x64-disk1.img24    16516    16516        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img25    16517    16517        1  512B ChromeOS reserved
CloudReady_Free_x64-disk1.img26      130    16513    16384    8M unknown
CloudReady_Free_x64-disk1.img27  2314306  2347073    32768   16M EFI System

Set XML up as follows:

<domain type='kvm' id='19'>
  <name>ChromeOS OVMF</name>
  <uuid>355e8d91-618e-e9bf-5469-4440741c75ac</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="ChromeOS" icon="chromeos.png" os="chromeos"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='3'/>
    <vcpupin vcpu='1' cpuset='7'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/355e8d91-618e-e9bf-5469-4440741c75ac_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='2'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/ChromeOS/CloudReady_Free_x64-disk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='ide'/>
      <boot order='1'/>
      <alias name='ide0-1-0'/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:bf:9d:c7'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-19-ChromeOS OVMF/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
  <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='usb'>
      <address type='usb' bus='0' port='2'/>
    </input>
    <input type='keyboard' bus='ps2'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

Image booted.  And completed Setup.  I was unable to use any mouse input thru VNC. If anyone finds a fix for that let me know. 

EDIT: 

Adding an additional input type fixed the issue. 

<input type='mouse' bus='usb'>

 

EDIT2: May have spoken too soon.  Looks like the mouse still has an issue with offset on VNC.  Investigating. 

 

Edited by schale01
Link to post
  • 1 month later...

Bummer... I cannot get the VM to start... I copied the exact XML and I get the following error:

operation failed: unable to find any master var store for loader: 
/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd

The ONLY thing I changed was the path to the CloudReady .img file.  My goal was to do this step first and then I would edit the XML to pass through my GPU and USB controller card.

 

Any ideas? @thatnovaguy ?

Link to post
8 hours ago, hernandito said:

Bummer... I cannot get the VM to start... I copied the exact XML and I get the following error:


operation failed: unable to find any master var store for loader: 
/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd

The ONLY thing I changed was the path to the CloudReady .img file.  My goal was to do this step first and then I would edit the XML to pass through my GPU and USB controller card.

 

Any ideas? @thatnovaguy ?

Actually I remembered the one thing I did change was the disk interface from ide to sata.

Link to post
  • 11 months later...
On 24/04/2017 at 4:28 PM, thatnovaguy said:

That's honestly beyond me. I actually just loaded it up like a normal vm. I didn't even edit my xml for anything and just used the gui to make changes.

Where did you get the ISO image?

Link to post
On 3/26/2018 at 8:56 PM, wayner said:

Where did you get the ISO image?

Top post.  Link with name "VMware OVA Download" would be my guess.  Then follow instructions to convert in first post.  Probably have to change file names some I think. They have changed from those used in first post.  I just used VirtualBox 5.1 to extract the vmdk but it aborted with wrong version so I may not be able to go any farther.  VMWare workstation 11 didn't seem to like it either.  Haven't tried the player in the linked article yet.  OK I was able to extract the vmdk from the ova by loading it in VMWare player 14 as linked in the article.  Then I transferred the vmdk to unRAID v6.3.5 and setup a VM from the template. 

 

I had to change the following to get it to boot properly. 

  1. Switch to manual for the 1st VDisk and type in the full path to the VMDK. For me: /mnt/cache/VMs/ChromeOS/cloudready-free-64bit-59.3.37-disk1.vmdk
  2. Switch from VirtIO to either IDE or Sata for controller for the VMDK
  3. Switch to cirrus for the VNC video driver
  4. May need to boot first with a single core I did but it works now with multiple cores - so maybe don't need this.

 

Just installed this on my N54L server that is running unRAID 6.5.0 same steps.

Edited by BobPhoenix
Link to post

I think I am going to need more idiot-proof instructions.  I have only ever built a VM using the unRAID GUI. 

 

Where do I even enter the command(s) shown in post 1?  In an ssh session in my unRAID server?  What directory do you put the IMG file in? 

Link to post

I didn't convert the file and used windows to get the vmdk.

 

  1. I downloaded the ova from the article link
  2. I downloaded the windows version of VMWare Player 14.0 article link
  3. I installed VMWare Player on my Laptop
  4. I opened the ova in VMWare Player menu: Player/File/Open then selected "cloudready-free-64bit-59.3.37.ova" file
  5. I made note of the "storage path for  the new virtual machine" path
  6. Once VMWare Player had completed the import I went to the path above and copied the vmdk file to unRAID
  7. Then I setup a new VM like I outlined above.
Edited by BobPhoenix
Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.