Skip to content

Instantly share code, notes, and snippets.

Last active February 10, 2023 22:00
What would you like to do?
Installing CoreOS on VirtualBox
  • Download and install VirtualBox.

  • Download the CoreOS ISO

  • Create a new VM in VirtualBox

    • For the OS, Other Linux, 64-bit should be fine
    • Give the VM 1gb of memory, like your physical hardware has.
    • Create a disk of whatever size you want. I made a VMDK file that could expand dynamically up to 8gb.
  • Mount the ISO in the VM

    • Right click on the VM and click settings
    • Go to the storage tab
    • Click on the empty disk on the left
    • Click the disk icon next to IDE Secondary on the right
    • Choose the ISO
    • Check the Live CD/DVD box
    • Go to the network tab
    • Make sure NAT is selected
    • Edit the port forwarding settings and add a rule for:
      • Host IP:
      • Host Port: 22022
      • Guest IP:
      • Guest Port: 22
  • Start the VM. It should boot into CoreOS to a core@localhost prompt.

  • Run sudo fdisk -l. You should have a /dev/sda device. That's the VM's disk.

  • Upload your SSH public key to an HTTP server somewhere that the VM can access.

  • Use curl to download your SSH public key to the box.

  • Rename the file to cloud-config.yaml.

  • Edit the file with vim and make it look something like:

      - ssh_rsa AAAAB3NzaC1...snip
  • Use coreos-install to install to the VM's disk with your keys:

    sudo coreos-install -d /dev/sda -C stable -c ~/cloud-config.yaml
  • Use VirtualBox to gracefully power off the machine.

  • Edit the VM settings again and remove the ISO from the machine.

  • Power it up again. You should end up at a login prompt.

  • SSH into the VM:

    $ ssh -p 22022 core@
    Last login: Thu Apr 23 15:50:31 2015 from
    CoreOS stable (633.1.0)
    core@localhost ~ $
Copy link

Thanks a lot

Copy link

luanzhu commented Jun 3, 2016

Thank you, thank you!

Copy link

edify42 commented Dec 14, 2016

1GB memory is a must else it won't boot

Copy link

Thanks. I have installed it like this as described. Just curious, why is the CoreOS official site describe the installation procedure differently at is there a reason for such difference?

Copy link


Copy link

ghost commented Sep 7, 2017

thanks a lot!

Copy link

CoreOS ISO link hits a 404 (

Copy link

truthadjustr commented Nov 29, 2017

Helped me a lot. I will add some tips:

  • python -m SimpleHTTPServer or python3 -m http.server as my webserver
  • Inside the initial coreos shell, do wget to copy the public key into coreos. Varies with your ipaddr.
  • Use 2 spaces instead of TAB to indent content in cloud-config.yaml.
  • Not sure if it was a glitz, but when i sudo coreos-install -d /dev/sda -C stable -c ~/cloud-config.yaml i encountered an error. But when i downloaded a new iso, it went fine.

Copy link

YDD9 commented Dec 26, 2017

I always have some problem after reboot.
I see coreos-install finished with success

Installing cloud-config...
Success! CoreOS Container Linux stable 1576.4.0 is intalled on /dev/sda

my cloud-config.yml has add one user as well.

  - name: test
    passwd: $1$POcl1vGO$z
      - sudo
      - docker
  - "ssh-rsa AAAAB3Nz..."    

After remove the ISO, reboot the machine, the login prompt ask for a user and password, it's no longer user core auto login. So I type in my added user test and password, it doesn't work... Then I tried

λ ssh -i 'C:\Users\ydd9\.ssh\id_rsa' -p 22022 core@
The authenticity of host '[]:22022 ([]:22022)' can't be established.
ECDSA key fingerprint is SHA256:cNXuzz1IINElX/fhbDA2A6Xbq5qMZlAwOWshB0MT+ds.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[]:2222' (ECDSA) to the list of known hosts.
core@'s password:

Any helps ? I didn't set password for core, I want to use SSH only as in my cloud-config.yml

Copy link

@YDD9 - it looks like things have changed a bit:

Create an ignition.json file instead of the config.yaml

  "ignition": {
    "config": {},
    "timeouts": {},
    "version": "2.1.0"
  "networkd": {},
  "passwd": {
    "users": [
        "name": "core",
        "sshAuthorizedKeys": [
          "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGdByTgSVHq......."
  "storage": {},
  "systemd": {}

And install via coreos-install -d /dev/sda -C stable -i ignition.json


Copy link

As link to iso is not working, got one from coreos official. Downloaded beta 1688.3.0. It does not boot with 1GB. The official documentation also mentions, that minimum is 2GB. Changed to 2GB and it booted :)

Copy link

For those who want to install in 2020 - please refer to

Copy link

jdato commented Sep 8, 2020

Thank you!!

Copy link

Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment