Running Fedora CoreOS nightly ISO and qcow2 images in libvirt

Fedora CoreOS logo

Fedora CoreOS (FCOS) is the upcoming OS which contains best of both Fedora Atomic Host and Container Linux. There is no official release yet but we do have nightly images available to try. There are various image artifacts being produced but in this blog we will focus installing and running ISO and qcow2.

Download latest nightly image

FCOS nightly images are built using Jenkins pipleine in CentOS CI . Download latest ISO or qcow2 nightly image which you like.

While writing this blog latest nightly ISO image name is fedora-coreos-30.113-installer.iso and qcow2 image name is fedora-coreos-30.113-installer.iso . I will be using these names in this blog but when you try replace it with the media name which you downloaded.

Ignition Config

Similar to Container Linux, FCOS also requires ignition config to perform initial configuration during first boot. We will create fcos.ign ignition config file which defines to create a user test with password test, authorized ssh key and adding user test to wheel group to provide sudo access.

$ cat fcos.ign
{
  "ignition": {
     "version": "3.0.0"
  },

  "passwd": {
    "users": [
      {
        "name": "test",
        "passwordHash": "$y$j9T$dahelkQ2GUy2EfzW4Qu/m/$eApizQ.vHFyGJRel.1wNbKd8PLZ5soT0vBiIp4ieBM1",
        "sshAuthorizedKeys": [
          "ssh-rsa your_public_ssh_key"
        ],
        "groups": [ "wheel" ]
      }
    ]
  }
}

 

passwordHash was created using mkpasswd . Add you public ssh key(s) which you want to add in sshAuthorizedKeys.

Running qcow2 image

qcow2 image which we download is in compressed form, let’s first extract it

gunzip fedora-coreos-30.113-qemu.qcow2.gz

This will give us qcow2 image fedora-coreos-30.113-qemu.qcow2.

qemu-system-x86_64 -accel kvm -name fcos-qcow -m 2048 -cpu host -smp 2 -nographic -netdev user,id=eth0,hostname=coreos -device virtio-net-pci,netdev=eth0 -drive file=/path/to/fedora-coreos-30.113-qemu.qcow2 -fw_cfg name=opt/com.coreos/config,file=/path/to/fcos.ign

On login prompt, enter test as user name and  test as  password as we added in the ignition config and you should be inside a FCOS system!

Installing and Running ISO image

ISO image fedora-coreos-30.113-installer.iso contains initramfs.img and vmlinuz to boot the kernel. We will also need fedora-coreos-30.113-metal-bios.raw.gz or fedora-coreos-30.113-metal-bios.raw.gz from latest nightly repo depending upon what kind of installation you want. For our example, we will download fedora-coreos-30.113-metal-bios.raw.gz image. Installer will need metal-bios image and ignition config during the install process which we will pass as kernel command args. Let’s host fedora-coreos-30.113-metal-bios.raw.gz and fcos.ign files locally.

We can use either virt-install or qemu directly:

With virt-install

virt-install --name fcos-iso --ram 4500 --vcpus 2 --disk pool=vm,size=10 --accelerate --cdrom /path/to/fedora-coreos-30.107-installer.iso --network default

With qemu:

First, create a disk image for installation  –

qemu-img create -f qcow2 fcos.qcow2 10G

Now, run –

qemu-system-x86_64 -accel kvm -name fcos-iso -m 2048 -cpu host -smp 2 -netdev user,id=eth0,hostname=coreos -device virtio-net-pci,netdev=eth0 -drive file=/path/to/fcos.qcow2,format=qcow2 -cdrom /path/to/fedora-coreos-30.113-installer.iso

 

When ISO boots, in grub menu use <TAB> to add additional args in kernel command  line . They are coreos.inst.install_dev (installation device),  coreos.inst.image_url (installer image url) and coreos.inst.ignition_url (ignition config url). It looks something like below:

fcos

Once, additional parameter is added press <ENTER> to continue the installation. Once installation completes successfully and vm reboots, it will prompt for user login which will be same as we mentioned in running qcow section.

Additional update information along with instruction for PXE boot is available in coreos-installer README

Conclusion

To remain one step ahead, you can also run latest FCOS directly from coreos-assembler whose instruction is available in its README .

FCOS is in devlopment state and new features are getting added everyday to make it better. Give a try and get a feel of how early FCOS looks like!

 

10th year of FOSSASIA

This FOSSASIA was special as it marked its 10th year! It was quite impressive to witness a FOSS conference to continue growing this long with growing community. The four day conference schedule was packed with various interesting talks, workshops, hackathon and other engaging activities.

WhatsApp Image 2019-03-23 at 8.46.20 PM

First day of the conference was single track with some insightful talks. This included speakers who have been long term contributors to FOSSASIA such as Harish Pillay and Hong Phuc. Hong talked about various FOSSASIA initiatives such as Open Tech Summit, Science Hack Day India and events conducted along with HackerSpace SG.

Another interesting talk was from Mitch Altman about the TV-B-Gone project. He started it because he was annoyed by TVs playing loud in public spaces. Little did he know that he wasn’t alone and lot of people wanted the device. Mitch went on to create hardware learning kits and  teaches introductory electronics workshops. He motivated a lot of people to go and enjoy making new things.

Another interesting talk was from Huzaifa Sidhpurwala on attacking email encryption and security in general. It was quite interesting to know that the usage of enigmail spiked a lot roughly during 2014 (around the Snowden revelations). The talk also compared S/MIME and OpenPGP approaches to email encryption.

Hardware had a lot of presence at FOSSASIA. There were interesting talks ranging from ARM Development boards to preparing embedded products to be Production ready. From the benchmarks I saw, ARM based devices are getting quite close to their x86 counterparts. Along with ARM64 based servers, the future is bright even for consumer laptops (such as the Pinebook). Also, speaking of the future, we will soon be able to talk to our Coffee Machines! Meanwhile, we do have farmers doing innovative things with Raspberry Pi in Japan 🙂

On last day of conference, I and Sayan talked about Fedora CoreOS and Silverblue respectively. In general I felt that the attendees were quite excited about Fedora CoreOS and the benefits it brings. During Q&A we discussed how the release streams in Fedora CoreOS will be in comparison to Container Linux. Another frequently discussed topic was Podman and benefits of using it over Docker. There was also interest about how CI will operate for Fedora CoreOS. Slides from my talk is available here .

 

Other than talks, the conference had a lot of activity in the exhibition area as well. We had a CentOS booth (thanks to Rich Bowen!) as well which was very engaging and a place for attendees to ask questions about various Open Source projects from CentOS, Fedora, etc.  There was an awesome demo of Open Firmware projects (like Coreboot, U-Boot etc) and how easy it is to flash FOSS firmware in modern laptops using flashrom. To add to that, I even learnt soldering like a pro! Thanks, Mitch.

WhatsApp Image 2019-03-25 at 10.37.46 AM WhatsApp Image 2019-03-23 at 8.50.30 PM

WhatsApp Image 2019-03-23 at 8.51.13 PM      WhatsApp Image 2019-03-23 at 8.55.48 PM

I must say that  conference was filled with wide range of topic and has something interesting to learn for most of the people. Organizers and volunteers has put really hard work in keeping this year conference awesome and engaging, kudos to all!