<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Amit Bondwal]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://www.amitbondwal.com/</link><image><url>https://www.amitbondwal.com/favicon.png</url><title>Amit Bondwal</title><link>https://www.amitbondwal.com/</link></image><generator>Ghost 3.13</generator><lastBuildDate>Mon, 30 Jun 2025 02:11:45 GMT</lastBuildDate><atom:link href="https://www.amitbondwal.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Partitions creation in Fedora CoreOS]]></title><description><![CDATA[<p>Fedora CoreOS works quite different than normal Linux in case of partitions of disk. It don't work in same way like normal Linux. We can create new partitions or mount new partitions under /var only or it's sub directory. We can't modify rest of the partitions except /var. We can't</p>]]></description><link>https://www.amitbondwal.com/partition-creation-in-fedora-coreos/</link><guid isPermaLink="false">5f85d0d1f87fac34c9ecd4d5</guid><category><![CDATA[Cloud]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Amit Bondwal]]></dc:creator><pubDate>Tue, 27 Oct 2020 11:23:44 GMT</pubDate><media:content url="https://www.amitbondwal.com/content/images/2020/10/fedora-coreos-.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.amitbondwal.com/content/images/2020/10/fedora-coreos-.png" alt="Partitions creation in Fedora CoreOS"><p>Fedora CoreOS works quite different than normal Linux in case of partitions of disk. It don't work in same way like normal Linux. We can create new partitions or mount new partitions under /var only or it's sub directory. We can't modify rest of the partitions except /var. We can't setup Fedora CoreOS in software Raid1 with two disk on server, like normal Linux works, /boot and /boot/efi not supported currently. </p><p>In this article we will create separate /var partition on the same disk on which OS will install. We have created below yml file. </p><!--kg-card-begin: markdown--><pre><code>variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      password_hash: &quot;$1$core$5aXXhoTQK2Rg89MGKrHAl1&quot;
      ssh_authorized_keys:
        - &quot;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSNZn3WDvVg1ZdtTOhn1lHkUGfAsaoiTufMULduM804oc62dwgnnryfB1z9YZ5NUtMQdJANu5dc0+UaxLxrvKkVct6N903IjnsEh6l8JIUcFxpExVZBUEOAQ4Gl2dN44OVH1rdjXBJxgWc/+o3kCvOkUmQzjHpp7C0S0HJfZcvEzaIyho4+RrqNjaQw/xiiaKbo6hbnq02JWeZuy8SaUAzZG1uo2I/5KOKi9vlhOuhXS1lrbFWQ5IJN0g9iaz5I01zCxO/AC2ETHA4GN7CqFAG/H/sfW1eht8py6R/s4b4wVLMOPzn5G4sF3y2p+puoBfO0PuPVwWdx4le7iefOc8d amit@bondwal&quot;

storage:
  disks:
  -
    # The name of the primary block device. In virtio-based setups, this is
    # likely `/dev/vda`. Elsewhere, it's likely `/dev/sda`.
    device: /dev/sda
    # We do not want to wipe the partition table since this is the primary
    # device.
    wipe_table: false
    partitions:
    - size_mib: 0
      start_mib: 8000
      # We assign a descriptive label to the partition. This is important
      # for referring to it in a device-agnostic way in other parts of the
      # configuration.
      label: var
  filesystems:
    - path: /var
      device: /dev/disk/by-partlabel/var
      format: xfs
systemd:
  units:
    -
      # We need to create a systemd mount unit so that /var actually gets
      # mounted on /var.
      name: var.mount
      enabled: true
      contents: |
        [Unit]
        Before=local-fs.target
        [Mount]
        Where=/var
        What=/dev/disk/by-partlabel/var
        [Install]
        WantedBy=local-fs.target
</code></pre>
<!--kg-card-end: markdown--><p>In the above yml file three things are important to understand. </p><ol><li>wipe_table : false, This is important we keep it false, otherwise it will clear the other partition (sysroot, boot etc.) which was created during this installation and installation will fail. </li><li>size_mib=0 and start_mib=8000, here we are allocation disk starting from 0MB to 8000MB for  other partitions like boot, sysroot etc. rest of the disk will be assigned to /var partition. So, we should given sufficient space for sysroot and other partition. Here it was just testing setup so 8000MB was sufficient.  </li><li>Disk should be clean, before running installation, disk should not have any partition, check disk with fdisk /dev/sdx before installation. If it any partition, delete these partition. Otherwise installation will fail.</li></ol><p>To generate ignition file from yml file and installation, follow my previous article <a href="https://www.amitbondwal.com/fedora-coreos-installation-on-bare-metal/">https://www.amitbondwal.com/fedora-coreos-installation-on-bare-metal/</a> </p>]]></content:encoded></item><item><title><![CDATA[Installation of Fedora CoreOS on Bare metal]]></title><description><![CDATA[This article cover the process of setting up fedora cores OS on bare metal / VM for a newbie, starting to work with Fedora CoreOS  ]]></description><link>https://www.amitbondwal.com/fedora-coreos-installation-on-bare-metal/</link><guid isPermaLink="false">5ede3d674c995d17d26c7010</guid><category><![CDATA[Cloud]]></category><dc:creator><![CDATA[Amit Bondwal]]></dc:creator><pubDate>Mon, 08 Jun 2020 15:01:00 GMT</pubDate><media:content url="https://www.amitbondwal.com/content/images/2020/06/fedora-coreos-.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.amitbondwal.com/content/images/2020/06/fedora-coreos-.png" alt="Installation of Fedora CoreOS on Bare metal"><p>This article is for newbie who is going to start working with Fedora CoreOS. Here we will cover the basic installation of Fedora CoreOS on bare metal servers. </p><h3 id="1-download-iso-of-fedora-coreos">1. Download ISO of Fedora CoreOS</h3><p>Download the latest stable iso from fedora download center </p><!--kg-card-begin: markdown--><p><a href="https://getfedora.org/en/coreos/download?tab=metal_virtualized&amp;stream=stable">Download Link</a></p>
<!--kg-card-end: markdown--><p>Current version of latest stable ISO link is given below. </p><!--kg-card-begin: markdown--><p><a href="https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/31.20200517.3.0/x86_64/fedora-coreos-31.20200517.3.0-live.x86_64.iso">Download link</a></p>
<!--kg-card-end: markdown--><h3 id="2-creation-of-ignition-file">2. Creation of Ignition file</h3><p>This is the most important part of this article. Here we will cover the basic ignition file for installation of fedora coreos on bare metal server. In this ignition file we will create a user named core with password and will add ssh public key to this core user, for remote access of server through ssh.</p><p><strong>A. Setting of fcct binary</strong> </p><p>Download the latest binary fcct binary from here on your any linux OS.</p><!--kg-card-begin: markdown--><p><a href="https://github.com/coreos/fcct/releases">Download Page</a></p>
<!--kg-card-end: markdown--><p>Use wget to download and move binary under /user/local/bin</p><!--kg-card-begin: markdown--><pre><code>$wget https://github.com/coreos/fcct/releases/download/v0.6.0/fcct-x86_64-unknown-linux-gnu
$sudo mv fcct-x86_64-unknown-linux-gnu /usr/local/bin/fcct
$sudo chmod +x /usr/local/bin/fcct
</code></pre>
<!--kg-card-end: markdown--><p><strong>B. Generate password hash for user</strong></p><p>We will use openssl command to generate password hash.</p><!--kg-card-begin: markdown--><p><code>$openssl passwd -1 -salt yoursalt</code></p>
<!--kg-card-end: markdown--><p>It will ask for password, You can give any password, here I gave '<strong>fed0r@</strong>' it generate below hash:</p><!--kg-card-begin: markdown--><pre><code>Password:
$1$yoursalt$zuE/ptA7ymZMM1b55n2NQ1</code></pre>
<!--kg-card-end: markdown--><p><strong>C. Creating yml file named config.yml</strong></p><p>Syntex of yml file should be proper, we are using below contents in this file.</p><!--kg-card-begin: markdown--><pre><code>variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      password_hash: &quot;$1$yoursalt$zuE/ptA7ymZMM1b55n2NQ1&quot;
      ssh_authorized_keys:
        - &quot;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSNZn3WDvVg1ZdtTOhn1lHkUGfAsaoiTufMULduM804oc62dwgnnryfB1z9YZ5NUtMQdJANu5dc0+UaxLxrvKkVct6N903IjnsEh6l8JIUcFxpExVZBUEOAQ4Gl2dN44OVH1rdjXBJxgWc/+o3kCvOkUmQzjHpp7C0S0HJfZcvEzaIyho4+RrqNjaQw/xiiaKbo6hbnq02JWeZuy8SaUAzZG1uo2I/5KOKi9vlhOuhXS1lrbFWQ5IJN0g9iaz5I01zCxO/AC2ETHA4GN7CqFAG/H/sfW1eht8py6R/s4b4wVLMOPzn5G4sF3y2p+puoBfO0PuPVwWdx4le7isdsdsdsdsdefOc8d amit@bondwal&quot;</code></pre>
<!--kg-card-end: markdown--><p>This file contain core user, and it's password hash. In ssh authorized key, I am adding my laptop public ssh key to access it remotely. You can use your's public key instead of above. Above public is example ssh key. </p><p><strong>D. Generation of Ignition file</strong></p><!--kg-card-begin: markdown--><pre><code>$fcct  config.yml --output config.ign</code></pre>
<!--kg-card-end: markdown--><p>This will create new file config.ign, when you will cat this file, it will looks like below output, in json format.</p><!--kg-card-begin: markdown--><pre><code>{&quot;ignition&quot;:{&quot;version&quot;:&quot;3.0.0&quot;},&quot;passwd&quot;:{&quot;users&quot;:[{&quot;name&quot;:&quot;core&quot;,&quot;passwordHash&quot;:&quot;$1$yoursalt$zuE/ptA7ymZMM1b55n2NQ1&quot;,&quot;sshAuthorizedKeys&quot;:[&quot;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSNZn3WDvVg1ZdtTOhn1lHkUGfAsaoiTufMULduM804oc62dwgnnryfB1z9YZ5NUtMQdJANu5dc0+UaxLxrvKkVct6N903IjnsEh6l8JIUcFxpExVZBUEOAQ4Gl2dN44OVH1rdjXBJxgWc/+o3kCvOkUmQzjHpp7C0S0HJfZcvEzaIyho4+RrqNjaQw/xiiaKbo6hbnq02JWeZuy8SaUAzZG1uo2I/5KOKi9vlhOuhXS1lrbFWQ5IJN0g9iaz5I01zCxO/AC2ETHA4GN7CqFAG/H/sfW1eht8py6R/s4b4wVLMOPzn5G4sF3y2p+puoBfO0PuPVwWdx4le7isdsdsdsdsdefOc8d amit@bondwal&quot;]}]}}</code></pre>
<!--kg-card-end: markdown--><p>Upload this file to any of the web server, where you can access it using curl command like curl http://example.com/config.ign from the server on which we are going to install fedora coreos.</p><h3 id="3-install-fedora-coreos-on-server">3. Install Fedora CoreOS on server</h3><p>In your environment DHCP should be running. So that, when Fedora CoreOS run in live mode, it can access web server, on which you have uploaded config.ign file.</p><p>A. Burn a usb with bootable with fedora ISO for bare metal server, or in case on virtual box, after creating a new VM, boot the VM with fedora-coreos iso. This will boot the VM in Live CD mode. you will get the VM running in Live CD mode in few minute, you will get shell like this.</p><!--kg-card-begin: markdown--><pre><code>[core@localhost ~]$</code></pre>
<!--kg-card-end: markdown--><p>B. Download config.ign file with curl from webserver</p><!--kg-card-begin: markdown--><pre><code>#curl http://example.com/config.ign -o config.ign</code></pre>
<!--kg-card-end: markdown--><p>Check file, it should be same as shown above.</p><p>C. Run the Fedora CoreOS installation.</p><!--kg-card-begin: markdown--><pre><code>$sudo coreos-installer install /dev/sda --ignition-file config.ign</code></pre>
<!--kg-card-end: markdown--><p>This will take few minute to complete, it will show installation complete message. You can replace disk name if it is not /dev/sda, you can check it with fdisk -l, before running above command. Once it completed then power off the server/VM and remove bootable USB/ISO (in case of virtual box). Start the VM again. </p><p>It will prompt login screen once booted, now you can login with user 'core' and password to this server. It is still using dhcp server, after logged in check the IP address of server and then you can access it from remote, through ssh too. </p>]]></content:encoded></item></channel></rss>