Manjaro, Manjaro

I am back with a technical post again. This time, I want to talk about Manjaro, which is a Linux distro based on Arch.

I have been a user of Ubuntu Linux for a few years now. To be precise, it has been at least 3 years and 3 months since I stopped usi…


This content originally appeared on DEV Community and was authored by Ash Ketchum

I am back with a technical post again. This time, I want to talk about Manjaro, which is a Linux distro based on Arch.

I have been a user of Ubuntu Linux for a few years now. To be precise, it has been at least 3 years and 3 months since I stopped using garbage Windows. Ubuntu is infinitely better than that, but it is meant for beginners. After graduating from that level, it was high time to start using a more advanced Linux distribution.

So here I want to document how I dual-booted Manjaro Linux, and in the process show off some useful Linux commands at the level of the operating system hardware. We will also go over filesystems and partitions, as well as some basics about the bootloader and the boot process. Hopefully, by following the way I have done it, slowly and with documentation, you will see that dual-booting doesn’t have to be as scary as it is made out to be.

First, some history

This was not my first attempt at dual-booting. That was back in my first year of college, when I first heard about Linux as a cool alternative to Windows. Digging around a little, I found that a beginner’s distro called Ubuntu was the perfect way to introduce people to Linux. Having little experience and a lot of enthusiasm, I straight-up dual-booted Ubuntu alongside Windows 10 with little regard to partitions and disk space.

This was all fine as long as I was just learning the various Linux commands, but when I wanted to do more with Ubuntu, like watch videos, install software, or attend my online classes (this was peak COVID time), I found out that the 30 GB of space that I had allocated to Ubuntu was not sufficient. Not at all.

I removed and dual-booted Ubuntu again. And again. And again. In total, I dual-booted at least 6 times. Each time, something or the other went wrong. Sometimes, there was insufficient memory, or the wifi driver would not work, or the computer was overheating, or I nuked the OS with some commands in the terminal (not as foolish as sudo rm -rf /, but something equivalent). Finally, when everything was working, my computer decided to call it quits, and the motherboard went kaput.

Linux Terminal demands patience

So yeah, a lot of things happened. A lot of it was because my laptop, an HP laptop, was optimised for Windows and not Linux, so a lot of the hardware was not utilised properly, leading to issues. But a lot of it was also because I was trying to do things in such a rush that I didn’t stop to sort out issues and document them, instead taking them head-on all at once.

A lot of other development happened after that, but tldr; I bought a new Dell Laptop which came shipped with Ubuntu, and got some experience using the terminal. Along the way, I also became a Vim enthusiast and a user of i3wm. And one day, I woke up and chose violence- I mean dual-boot again: this time, with Ubuntu and Manjaro.

The Helper

An important difference now is that we have a lot of LLMs around to help us. Every LLM is good at different things, and as things go, Claude is quite good when it comes to technical topics. So, I decided to take its help in dual-booting properly this time. No rush, only results.

First, I wanted to make sure that my system had enough space to handle another OS, so I started off with Claude with my first question:

Claude helper

I continued to use Claude during my entire work, and honestly, it has been quite a fun sidekick to me on this journey. If used correctly, AI can be a really great helper.

ISO on USB

I have been using i3wm with Ubuntu for some time, so it was a natural choice to transition to Manjaro i3. It can be downloaded from the official website easily. After this, I bought an 8GB pendrive and made it bootable with the ISO. This can be done using a graphical tool like Startup Disk Creator or Balena Etcher. Or, if you want to go hardcore, there is the dd Linux command that does the same thing, but from the terminal.

Firstly, check using the lsblk command to find where our pendrive is mounted:

> lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0     4K  1 loop /snap/bare/5
loop1         7:1    0 184.8M  1 loop /snap/chromium/3218
loop2         7:2    0 184.8M  1 loop /snap/chromium/3235
loop3         7:3    0 104.2M  1 loop /snap/core/17212
loop4         7:4    0 104.2M  1 loop /snap/core/17247
loop5         7:5    0  55.5M  1 loop /snap/core18/2934
loop6         7:6    0  55.5M  1 loop /snap/core18/2940
loop7         7:7    0  63.8M  1 loop /snap/core20/2582
loop8         7:8    0  63.8M  1 loop /snap/core20/2599
loop9         7:9    0  73.9M  1 loop /snap/core22/2082
loop10        7:10   0  73.9M  1 loop /snap/core22/2111
loop11        7:11   0  66.8M  1 loop /snap/core24/1055
loop12        7:12   0  66.8M  1 loop /snap/core24/1151
loop13        7:13   0  68.4M  1 loop /snap/cups/1085
loop14        7:14   0  67.2M  1 loop /snap/cups/1100
loop15        7:15   0   604M  1 loop /snap/gnome-46-2404/121
loop16        7:16   0 618.3M  1 loop /snap/gnome-46-2404/125
loop17        7:17   0  62.1M  1 loop /snap/gtk-common-themes/1506
loop18        7:18   0  91.7M  1 loop /snap/gtk-common-themes/1535
loop19        7:19   0 290.8M  1 loop /snap/mesa-2404/887
loop20        7:20   0 290.8M  1 loop /snap/mesa-2404/912
loop21        7:21   0  12.9M  1 loop /snap/snap-store/1113
loop22        7:22   0  12.2M  1 loop /snap/snap-store/1216
loop23        7:23   0  49.3M  1 loop /snap/snapd/24792
loop24        7:24   0  50.8M  1 loop /snap/snapd/25202
loop25        7:25   0   568K  1 loop /snap/snapd-desktop-integration/253
loop26        7:26   0   576K  1 loop /snap/snapd-desktop-integration/315
loop27        7:27   0 321.1M  1 loop /snap/vlc/3721
loop28        7:28   0 321.1M  1 loop /snap/vlc/3777
sda           8:0    1   7.5G  0 disk 
└─sda1        8:1    1   7.5G  0 part 
nvme0n1     259:0    0 238.5G  0 disk 
├─nvme0n1p1 259:1    0   925M  0 part /boot/efi
├─nvme0n1p2 259:2    0     8G  0 part 
└─nvme0n1p3 259:3    0 229.6G  0 part /

The output looks daunting, but in fact, it is just very helpful. Let’s take a slight detour to understand what is going on here.

What the loop?

If you noticed, the output contains a lot of devices of type loop. You might be asking what that is. To understand that, we first need to know more about storage devices and how they are read by operating systems.

There are two separate things going on here. Firstly, there is the physical hard disk or SSD or whatever, made out of atoms and storing data in the form of magnetic platters or electric charges. Then, there is the software in the operating system to read the storage device to actually gain access to the memory inside it. Without the operating system, the hard disk is just a glorified paperweight. As Douglas Hofstadter would put it, the hard disk is the first level of information, the operating system is the key, and the actual bytes inside it are the hidden level of information.

Think of it like a chest full of gold. Just having the chest (hard disk) is not enough. You also need a key (operating system) to open (mount) the chest (hard drive) and gain access to the gold (memory) inside. This explains the actual devices: sda, which is my USB with 7.5 GB usable space in a single partition, and nvme0n1 representing my SSD with 238.5 GB usable space, which is divided into three partitions.

Notice that my pen drive is attached but NOT mounted. This can be seen from the output, as there is nothing under its MOUNTPOINTS column. This is like having the chest but not opening it, so we can’t actually access any memory inside it. Similarly, my SSD has two of its partitions mounted at the root and boot level, respectively, and an 8 GB unmounted partition.

Apart from these actual physical devices, Linux simplifies accessing several virtual devices, such as snap. Linux allows users to create special block devices by which they can map regular files to a virtual block device. Basically, they can allow you to treat a regular application as a new file system without creating a new partition. This is very helpful for sandboxing and segregating data, and the reason why Canonical, Ubuntu’s parent company, makes snap packages accessible as virtual devices using loops.

For our purposes, we don’t need to worry about loops at all. The only thing that matters is the name of the system representing the pen drive, /dev/sda.

Using dd

The dd command needs our pendrive to be attached but unmounted. If not already so, we can do it using:

sudo umount /dev/sda1

Then, we just need to specify our ISO file and the filesystem which we want to overwrite, in this case, our pen drive (Make sure you don’t overwrite your SSD instead!).

sudo dd if=~/Downloads/manjaro-*.iso of=/dev/sda bs=4M status=progress oflag=sync

With this step, we are done with the creation of a bootable pendrive! Now, I had to get around UEFI secure boot to actually boot from it.

UEFI Secure Boot

Lick 'em secure!

The modern boot process in Linux systems is controlled by a piece of software called the firmware. The firmware is a piece of software embedded into hardware to control its basic functions, acting as a bridge between the hardware and other software. In other words, the firmware is the link that makes the machine ‘trick’ itself into consciousness, to use GEB verbiage.

A key part of making the firmware work is the bootloader, which is another piece of software that coordinates the handing over of the computer to the operating system once the firmware is done with its boot process (BIOS). The bootloader initialises the hardware and loads the operating system(s) into memory. It then gives the user a choice to select which operating system to run, or if there is just one of them, it goes on and gives control to it.

That brings us to the UEFI Secure Boot. Basically, the bootloader knows only one thing: to execute whatever instructions it gets. No security checks. Someone can load up a malicious OS, and your entire session will be compromised without a hint of it. To counteract this, manufacturers have to adhere to a standard called Unified Extensible Firmware Interface (UEFI), which, among other things, provides secure boot.

It means that only trusted or standard operators are allowed to boot up. To check this, the OS software must be digitally signed by the manufacturer, or else it won’t boot. Since our bootable pendrive is not signed, the computer doesn’t boot it up. I think it has something to do with the fact that this laptop was shipped in with Windows…[1]

To overcome this, we have to set Secure Boot to false. This does mean that anything can now boot up without any checks, but come on, when was the last time you booted something without knowing what it was? This setting can be accessed as part of the BIOS settings, which can be brought up by pressing during the boot process. Once I disabled Secure Boot and booted with my USB, I was welcomed with:

Manjaro welcome screen

Live Testing

When I dual-booted Ubuntu for the first time on my old laptop, I first did all the partitioning, gave it real estate on my hard drive, and then discovered that something important, mostly hardware like wi-fi or the cooling fan, was not working. Determined not to repeat this mistake, I live-tested my distro with USB booting for about a week before plunging in.

When testing from the USB, any changes you make will be stored in the RAM and will go away as soon as you shut down the laptop or unplug the USB. In a way, this is advantageous, as we can do all sorts of experiments and absolutely wreck the distro and then again come back to it clean and pristine after one reboot. And that’s exactly what I did :)

I tested booting both with open-source and proprietary drivers, and found that open-source works better for me. To know which peripheral hardware your computer is using, we can use the lspci command.

A quick check with Claude cleared it for me that my peripheral hardware was best suited with open-source drivers, and that’s what I found from experience as well.

Apart from this, I did wreck the distro by calling sudo pacman -Syu in the terminal. This is equivalent to typing sudo apt update && sudo apt upgrade for Ubuntu, and basically updates every software installed (but without restarting the computer, make Windows do that!). In USB mode, this quickly overwhelmed my RAM, as the installation size can often go into GBs, and hung my computer till I forced it to shut down. But this won’t happen in an actually installed system.

To remember the important steps that I must do in a fresh install (or reboot), I went the usual programmer’s way and documented it all in a GitHub repository. And I also mounted my Ubuntu partition for read-only access so that I could copy over the important stuff from there into my repo. This can be done by mounting the appropriate partition onto a mount point (a folder basically). So,

> sudo mount /dev/nvme0n1p3 /mnt

will mount Ubuntu (which is on the nvme0n1p3 partition as lsblk said earlier) on /mnt, which means that doing

> ls /mnt/home/<user-name>/

will show the files in my home directory in Ubuntu! It’s all read-only, so no chance of corrupting anything. Also, typing all that is long, so we can create a symlink for ease of access:

> ln -s /mnt/home/<user-name>/ ~/ubuntu
> ls ~/ubuntu

Will give me the same output as the other ls command now. Neat, isn’t it?

Installing for real

After doing live testing for about a week, it was time to install Manjaro for real. Manjaro comes with a program called Calamares shipped in the ISO itself, so unless you are doing some manual resizing of partitions, you literally have to do nothing but follow the installation wizard.

Calamares screen

Just make sure to read everything before you click start. For Manjaro, I created a new partition from nvme0n1p3 which was automatically labelled as nvme0n1p4 and got formatted with the BTRFS filesystem. And that was it! The GRUB menu got automatically updated, so I could choose between Manjaro and Ubuntu at boot time. Out of all the steps so far, this was the easiest one, I would say.

Bonus: Saying goodbye to Ubuntu

Once I had become more comfortable with Manjaro, I decided to remove Ubuntu completely. For this, my modus operandi was simple:

  1. Deallocate the partition on which Ubuntu resided
  2. Allocate the partition to Manjaro

There is a tool called GParted to do exactly that. It displays all the partitions on the computer and gives us the option to delete, resize or move them, among other things.

Using GParted

The only catch is that the currently active partition cannot be modified easily by GParted, so I had to do it by booting Manjaro from USB and installing GParted there. Since my actual Manjaro partition was not active then, I was able to resize it.

So my new lsblk is:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 238.5G  0 disk
├─nvme0n1p1 259:1    0   925M  0 part /boot/efi
└─nvme0n1p4 259:2    0 237.6G  0 part /var/log
                                      /var/cache
                                      /home
                                      /

And there you have it! Everything except the boot sector with Manjaro.

[1] It turned out this partition indeed had the Windows boot manager. Since I no longer needed it, I gave it to Manjaro later

Thanks for reading The Stoic Programmer! Subscribe for free on my substack to receive new posts and support my work.

If you like what I am doing, this is a great way to show appreciation!

Buy me a coffee!


This content originally appeared on DEV Community and was authored by Ash Ketchum


Print Share Comment Cite Upload Translate Updates
APA

Ash Ketchum | Sciencx (2025-10-24T07:36:57+00:00) Manjaro, Manjaro. Retrieved from https://www.scien.cx/2025/10/24/manjaro-manjaro/

MLA
" » Manjaro, Manjaro." Ash Ketchum | Sciencx - Friday October 24, 2025, https://www.scien.cx/2025/10/24/manjaro-manjaro/
HARVARD
Ash Ketchum | Sciencx Friday October 24, 2025 » Manjaro, Manjaro., viewed ,<https://www.scien.cx/2025/10/24/manjaro-manjaro/>
VANCOUVER
Ash Ketchum | Sciencx - » Manjaro, Manjaro. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/10/24/manjaro-manjaro/
CHICAGO
" » Manjaro, Manjaro." Ash Ketchum | Sciencx - Accessed . https://www.scien.cx/2025/10/24/manjaro-manjaro/
IEEE
" » Manjaro, Manjaro." Ash Ketchum | Sciencx [Online]. Available: https://www.scien.cx/2025/10/24/manjaro-manjaro/. [Accessed: ]
rf:citation
» Manjaro, Manjaro | Ash Ketchum | Sciencx | https://www.scien.cx/2025/10/24/manjaro-manjaro/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.