# How to install Chromium OS on VMWare

## Download

1.  [Download VMware player](http://www.vmware.com/products/player/)
2.  [Create a gtgt.com account and download Chrome image](http://gdgt.com/google/chrome-os/download/)

## Mounting

1.  Create a New Virtual Machine
1.  Do not selecting any OP-sys (other-other-etc)
1.  Delete your newly created hardisc (lets say you named it as Chrome)
1.  Move downloaded harddisc to the same folder as other VMware files for this
    Virtual Machine
1.  Rename your downloaded hardisc to newly created Virtual Machine original
    name (in my example it was Chrome)
1.  Boot the Chrome Virtual Machine (recommended to use NAT network
    configuration)

## Google results

*   http://discuss.gdgt.com/google/chrome-os/general/download-chrome-os-vmware-image/
*   http://www.engadget.com/2009/11/20/google-chrome-os-available-as-free-vmware-download/
*   http://blogs.zdnet.com/gadgetreviews/?p=9583'>http://blogs.zdnet.com/gadgetreviews/?p=9583
