My Journey With Linux (September 2015 to present)
Tags: linux, guide, experience
Published: 2019-04-25 15:17:23

---
title: My Journey With Linux (September 2015 to present)
published: true
description: A documentation of how I met the Penguin and grew on it gradually.
tags: Linux, guide, experience
---

<section class="section section--body section--first" style="display: block; position: relative; clear: both; padding-top: 0px; margin-top: 20px; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<p id="3f31" class="graf graf--p graf-after--figure" style="margin: 30px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">(This is a repost from my blog which I thought would be a good place to post here)<br><br>Linux — the first thing that comes to mind when you hear this word is the image of a nerdy, bearded person, running commands after commands like a blaze.</p>
<p id="0bcf" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I also had this image, and honestly, I used to be scared of Linux. People around me had (and still have) vague ideas about Linux. Nobody knew what it is, and told me not to try it.</p>
<p id="6a94" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">So, I tried it. And fell in love with it.</p>
<p id="2356" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">This story captures my journey with Linux, starting from 2015, When I got my first computer, to the present time, and to the future. You will see a noob heading towards achieving perfection in this story —</p>
<p id="3713" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><em class="markup--em markup--p-em">P.S: After trying Linux, I am really a nerdy, bearded guy, typing commands after commands (not like a blaze).</em></p>
<h2 id="e109" class="graf graf--h3 graf-after--p" style="font-family: medium-content-sans-serif-font,;"><strong>Reasons for trying it ou</strong>t</h2>
<p id="61e3" class="graf graf--p graf-after--h3 graf--trailing" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I wanted to make a custom ROM for my phone in 2015. On XDA, all the guides used Linux. I was a Windows lover back then (yes, I was) and had zero experience with Linux. Then I found out about Cygwin Linux emulator. But the XDA threads said it’s buggy, unstable and it installs about 1gb of software. I didn’t have unlimited internet back then, and Ubuntu was almost of the same size. So I thought if both of them are the same size, why not download the stable one? After all, I’m all about learning.</p>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="8d3e" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>First try — Puppy Linux</strong></h2>
<p id="28e7" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I decided to go for Ubuntu (Sep 2015), but noticed that I didn’t have enough data. So, searching for something light, I came across Puppy Linux (250mb) and decided to try it.</p>
<p id="1b3a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">The installation of Puppy had instructions about “full” and “frugal” installation, which were beyond my understandings at that moment. Nevertheless, booted up the live CD, and in order to create a partition, opened GParted. I knew nothing about filesystems and formatted the whole drive as ext4. The result? My windows won’t boot up. Tried to reinstall Windows, but the installation disk would not list any partition. Somehow I managed to format the drives as NTFS and installed Windows 7.</p>
<p id="921d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<p id="9a45" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Never try to mess with your partitions without having a vast idea.</p>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="4618" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>2nd try- Ubuntu</strong></h2>
<p id="ce55" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Oct 2015, decided to go again. This time, Ubuntu Vivid Vervet 15.04</p>
<p id="802c" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">This time, everything went fine and set up a working installation. It was a bit uncomfortable first, especially the buttons being on the left side of the toolbar. But I grew accustomed with time. Still, I preferred Windows. Some things (like installing apps via CLI) were new to me, and not having enough knowledge resulted in a lot of things not working. But I didn’t lose patience and kept learning.</p>
<p id="3d9d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<p id="ff5a" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Basics of Linux, simple terminal commands.</p>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="c021" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>3rd try- Kali Linux</strong></h2>
<p id="bdce" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Feb 2016, replaced Ubuntu with Kali Linux 2016.1 rolling. This is the distro which made me fall in love with Linux. Meanwhile, windows started showing some bugs. So I started spending more and more time with Linux. Using Kali Linux, I even built my Linux from scratch. Also, the troubleshooting in kali gave me a deep knowledge about Linux.</p>
<p id="6c22" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<p id="ca17" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">More commands and concepts of Linux.</p>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="e56b" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>4th try — Linux from Scratch</strong></h2>
<p id="f297" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Using Kali, I made a Linux from Scratch and named it Papiya Linux after my mom. Although it never went public, it gave me a HUGE knowledge.</p>
<p id="993d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<ul class="postList" style="margin: 21px0px0px; padding: 0px; list-style: nonenone; counter-reset: post0;">
	<li id="4ff2" class="graf graf--li graf-after--p" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Concepts of Linux — how packages work, how two softwares communicate with each other and the kernel, different states of processes.</li>
	<li id="18e7" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">More commands.</li>
	<li id="6738" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Use of sed and grep and find.</li>
	<li id="cae2" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Writing complex bash scripts using if, while, for, head, tee, cut etc.</li>
	<li id="3520" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Compiling softwares from source.</li>
	<li id="7b89" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Analyze the output of make and troubleshoot.</li>
	<li id="a6aa" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Use of aclocal, configue, autoreconf and make.</li>
	<li id="7ac2" class="graf graf--li graf-after--li graf--trailing" style="margin-left: 30px; margin-bottom: 0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Vim.</li>
</ul>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="1581" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>Arch Linux</strong></h2>
<p id="febe" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Since August last year, I have been using Arch as my main OS. Windows is still there. And an empty partition where I try out new OS’s.</p>
<p id="c5e8" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I really love Arch, because of its super fast pacman, a huge repository, and an awesome Wiki.</p>
<p id="accd" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">However, October last year, I ran into a problem.
I converted my ext4 installation into btrfs. For those who don’t know, btrfs offers a tool to convert from ext4 to btrfs without losing data, and it also creates a backup image in case you want to revert.

<p id="cb4a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After trying btrfs for a week, I felt no need of reverting, so deleted the backup image. Wrong choice!!</p>
<p id="1a8a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">For some reason I opened Windows, and being Windows, it couldn’t recognize my btrfs partition, and corrupted it. And Arch won’t boot.</p>
<p id="bc28" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I saved it by using the tools btrfs offers (btrfs — check-extent-tree and btrfs — init-csum), however a few days later, Windows corrupted it again, this time drastically.</p>
<p id="46fd" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">All my executables were corrupted, and it was beyond repair, and my only choice was to reinstall. But I would lose all the data.</p>
<p id="30df" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">My home partition was on the same drive as the root, and if I reinstalled, I would lose everything. But since “reinstall and start from scratch” is so Windows style, I figured out a way.</p>
<p id="2a66" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I had to save my home directory.</p>
<p id="3ac5" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">So, I booted a live cd, mounted another partition, and rsynced my home directory in this drive. Now I could reinstall the OS. But what about my apps those were installed?</p>
<p id="cd92" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Well, it’s Linux.</p>
<p id="abf0" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I found out pacman stores the data about packages in /var/lib/pacman/local. Each package gets its own directory in this format -
<strong class="markup--strong markup--p-strong" style="font-weight: bold;">package _ name — version — revision</strong>
So, I could do this -

<pre id="5c4e" class="graf graf--pre graf-after--p" style="overflow: auto; font-family: Menlo,Monaco,;">for i in /mnt/var/lib/pacman/local
do
echo $i &gt;&gt; list
done</pre>
This would create a file called “list” which would contain the list of packages to install, but it would contain the version numbers too, which I don’t want. So, I used Bash’s string splitting to split the string from the second last hyphen. This would get only the package name -
<pre id="c6d7" class="graf graf--pre graf-after--p" style="overflow: auto; font-family: Menlo,Monaco,;">for i in /mnt/var/lib/pacman/local
do
i = ${i%- * }
i = ${i% — *}
echo $i &gt;&gt; list
done</pre>
<p id="c2bb" class="graf graf--p graf-after--pre" style="margin: 30px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><em class="markup--em markup--p-em">Could this be done in any other way? Tell me in the comments.</em></p>
<p id="6a0e" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">This created the desired list. The rest was easy, booted the Arch live CD, fed this file to pacman, and pointed pacman to the installation path. After everything was installed, created the user, and restored my home directory, BUT this time to a separate partition, so in case anything goes wrong with the root partition, I can save my home directory.</p>
<p id="52e8" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned — </strong>
1. Never delete backups.
2. Never trust Windows.
3. Always keep your home directory on a separate partition.
4. Use your goddamn brain.
5. Fix your own shit yourself.

<p id="4f8a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">In April this year, I screwed up once again. I decided to ditch Windows and Fedora completely and make Arch the only OS. Also, I wanted to clean up my HDD, which was one hell of a mess of partitions.</p>
<p id="d338" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">So, I rsynced my root and home partition to another NTFS partition and by the time I realised my mistake, it was too late. Yes, you can guess what happened. As I backed up to NTFS, I lost all the permissions. All the files were set to rwxrwxrwx.</p>
<p id="095e" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After banging my head on the desk for a few hours, I remembered pacman can check for file integrity. So, it must store the data somewhere. After looking at the database (/var/lib/pacman/local/) I found out pacman stores the metadata in a mtree file under package directories. These mtree files are nothing but a gzipped data file.</p>
<p id="2a3a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I tried to restore the permissions with BSD mtree but it gave some errors because the format was not recognised. So, I wrote my own parser in Bash (sorry lost the code). It parsed the permission data from the mtree files, and applied them. There were 5 or 6 edge cases where my coding magic did not work, but I could fix them manually.</p>
<p id="f95c" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<p id="63df" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Backups are important, and be sure where you are backing up.</p>
</div>
</div>
</section>
<section class="section section--body" style="display: block; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="74f2" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>January 2018</strong></h2>
<p id="8ead" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">It’s only been 1 month of 2018, but the Linuxer (is that even a word?) inside me is urging for something better. So I decided to “upgrade” my installation.</p>
<p id="4dbf" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">First thing I noticed, I was still using BIOS and MBR, which was, unknowing to me, chosen by the one who installed Windows on my laptop when I bought it.</p>
<p id="3275" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">My first target was to convert it to EFI and GPT.</p>
<p id="3e7d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">The first part was easy —</p>
<ol class="postList" style="margin: 21px0px0px; padding: 0px; list-style: nonenone; counter-reset: post0;">
	<li id="827b" class="graf graf--li graf-after--p" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Create an ESP partition.</li>
	<li id="3ee2" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Mount it to /boot/efi</li>
	<li id="a073" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Install grub-efi.</li>
	<li id="9f34" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Update grub files.</li>
</ol>
<p id="3661" class="graf graf--p graf-after--li" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">The last two parts I had done before, and there was no way I could fuck that up and I did.</p>
<p id="0c78" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After 1 hour of grub not being recognized, I realised I had to copy grub64.efi to ESP/EFI/Boot/BOOTx64.efi.</p>
<p id="1228" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After I did so, grub was recognized, but it didn’t boot.</p>
<p id="553d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After 2 hours of grub not finding the kernel and initrd files, I found out it was due to an issue with incorrect mount path.</p>
<p id="6f7e" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">After successfully configuring grub, I was satisfied and confident. So I nuked grub, and installed Refind, and got it running in the first try :)</p>
<p id="2563" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">The next part was easier, I just used gdisk to convert MBR to GPT and it worked flawlessly.</p>
<p id="ec19" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I also made zsh my default shell. After years of loving Bash, I finally moved on to new horizons.</p>
<p id="68ab" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><strong class="markup--strong markup--p-strong" style="font-weight: bold;">What I learned —</strong></p>
<p id="10a4" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Sometimes changes are refreshing.</p>
<h2 id="271a" class="graf graf--h3 graf-after--p" style="font-family: medium-content-sans-serif-font,;"><strong>Rest of 2018</strong></h2>
<p id="1719" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I did not do much of a change in 2018. I got an internship and later a work from home job, so inevitably I resisted to breaking changes. There were few hiccups along the way, but not too challenging.</p>
<p id="a8dd" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">But it doesn’t mean I learned nothing new. I worked as a System administrator and backend developer in my work and had to use Linux extensively. In particular, I learned -</p>
<ol class="postList" style="margin: 21px0px0px; padding: 0px; list-style: nonenone; counter-reset: post0;">
	<li id="9ad3" class="graf graf--li graf-after--p" style="margin-left: 30px; margin-bottom: 14px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Docker and Gitlab CI/CD</li>
	<li id="d4d6" class="graf graf--li graf-after--li" style="margin-left: 30px; margin-bottom: 0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">Server deployment and Apache and Nginx configuration.</li>
</ol>
<ul>
	<li></li>
</ul>
<h2 id="379a" class="graf graf--h3 graf-after--li" style="font-family: medium-content-sans-serif-font,;"><strong>January 2019</strong></h2>
<p id="a08a" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">In December 2018, however, I built a new PC, which meant I had a place to start from scratch. Although I built it in December, there were some issues with the motherboard so I had to wait until January to get it working.</p>
<p id="d781" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">This time, unlike the previous ones, I knew what I wanted, and I knew how to do it. I set up an LVM with two LVs — one for root and one for home and installed Arch Linux.</p>
<p id="ea75" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">The installation was not so smooth because my WiFi adapter needs a driver that doesn’t ship with the kernel by default. Thankfully it’s available in AUR.</p>
<p id="7f6d" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I also switched to Fish shell. It’s not POSIX compliant so few of my favourite features don’t work (&amp;&amp; and || for example, although they added them to fish a few weeks after I started using it. What a time to be alive), but change is a good thing.</p>
<p id="035a" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I also have only Plasma on the desktop and not every single Window manager in existence like the laptop. I also have a strict no-experimentation rule with the work machine.</p>
<p id="e670" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">One good thing I did was customizing Vim. I took inspiration from <a href="https://github.com/amix/vimrc">here</a> and changed a few things — replaced Pathogen with Vundle, changed some old plugins to better ones, added a few more, changed some configurations, and replaced Vim with Neovim. As an end result, my Vim is nowhere short of an IDE. Epic Linux guy moment!</p>



<h2 id="a916" class="graf graf--h3 graf-after--figure" style="font-family: medium-content-sans-serif-font,;"><strong>April 2019</strong></h2>
<p id="23a0" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I recently came to know about <a href="http://nixos.org">NixOS</a>. It has a unique approach to package management. It’s kinda like Yast, but better. The idea is, you write all your packages and configuration in a central location and the OS will build itself according to it. Upgrades are atomic, you can rollback any time. And packages are sandboxed so you can install multiple versions of the same package without conflict, or install packages without worrying about dependencies.</p>
<p id="e1ce" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">So I said bye to the Arch on my laptop and installed NixOS. So far, it’s been a little unconventional to work with, but hopefully I’ll adapt to it soon.</p>
</div>
</div>
</section>
<section class="section section--body section--last" style="display: block; padding-bottom: 5px; position: relative; clear: both; color: rgba(0,0,0,0.84); font-family: medium-content-sans-serif-font,-apple-system,BlinkMacSystemFont,;">
<div class="section-divider">

<hr class="section-divider" style="box-sizing: content-box; height: 0px; display: block; border: 0px; text-align: center; overflow: visible; font-size: 24px; line-height: 1.4; margin-top: 44px; margin-bottom: 34px;"></div>
<div class="section-content">
<div class="section-inner sectionLayout--insetColumn" style="position: relative; max-width: 740px; width: 596.414px; margin: 0pxauto; box-sizing: border-box; padding-left: 20px; padding-right: 20px;">
<h2 id="9580" class="graf graf--h3 graf--leading" style="font-family: medium-content-sans-serif-font,;"><strong>Conclusion</strong></h2>
<p id="6e1f" class="graf graf--p graf-after--h3" style="margin: 8px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">People will say, “Linux is shitty.”, “it does not have many softwares,” “I used to have this on Windows and it’s not on Linux.” etc.
Believe me, I felt the same for the first two months, but I didn’t lose patience, cause I’m switching OS, so I <strong class="markup--strong markup--p-strong" style="font-weight: bold;">must</strong> expect things not to be the same. I’ve been to the dark sides of Linux, and I have seen what it can do.

<p id="4035" class="graf graf--p graf-after--p" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;">I have leaened a <strong class="markup--strong markup--p-strong" style="font-weight: bold;">lot</strong> of things. I have gained a lot of experience. It was hard to learn all by myself without any guide, but if I can do it, anyone can.</p>
<p id="d71f" class="graf graf--p graf-after--p graf--trailing" style="margin: 21px0px0px; --x-height-multiplier: 0.375; --baseline-multiplier: 0.17; font-family: medium-content-serif-font,Georgia,Cambria,;"><em class="markup--em markup--p-em">I will update this story with new milestones.</em></p>
</div>
</div>
</section>