Alright, so I wanted to mess around with Arch Linux and really get my hands dirty. I’d heard about how you have to basically build it up from scratch, and I thought, “Why not?” Plus, I wanted a super minimal system – no extra junk. This is how it all went down, step by step. I’m calling it “arch manning nil” ’cause it’s all about starting from nothing.

Getting Started
First, I grabbed the latest Arch ISO. Booted up my old test machine with it. You know, the usual – making sure the BIOS was set to boot from the USB drive.
Partitioning the Drive
This is where things got a little more “real.” I used cfdisk to create the partitions. Pretty straightforward: one for the root (), one for swap, I used to choose efi when I had a uefi boot .
Then, I actually made those partitions usable. I used following command to formatted them:
*4 /dev/sdaX
(X should change to my root partition)mkswap /dev/sdaY
(Y should change to my swap partition).* -F32 /dev/sdaZ
(Z should change to my efi partition).
Switched on the swap space with swapon /dev/sdaY
. Simple enough.
Mounting Everything
Next, I mounted the root partition to /mnt. Used the mount
command for *,I also mounted the efi partition to /mnt/* the mount
command too.

The Base Install
This part felt cool. I used pacstrap to install the base system. Just typed in pacstrap /mnt base linux linux-firmware
. This pulled down all the essential stuff – the kernel, basic utilities, firmware. It took a bit, so I grabbed a coffee.
Generating the fstab
I needed to tell the system about my partitions permanently. That’s where the fstab file comes in. I used genfstab -U /mnt >> /mnt/etc/fstab
. That automatically created the file with the right UUIDs and everything.
Chrooting In
Now for the fun part – “chrooting” into the new system. This is like temporarily making /mnt the root directory. I did this with arch-chroot /mnt
. Suddenly, I was “inside” my new Arch install, even though it wasn’t fully running yet.
Setting Up the Basics (Inside the Chroot)
Once inside, I had a bunch of little things to do:
- Timezone: Set the timezone using
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
. I also set the hardware clock to UTC withhwclock --systohc
. - Locale: Edited /etc/* and uncommented my locale (en_*-8). Then, ran
locale-gen
. Also, set the LANG variable in /etc/*. - Hostname: Gave my machine a name by editing /etc/hostname.
- Network: Enabled the network manager services,so it could start at boot with
systemctl enable NetworkManager
. - Root Password: Set a strong root password with
passwd
. - Bootloader:I installed grub and os-prober to boot other os using
pacman -S grub
,and efi file manager usingpacman -S efibootmgr
.Then ran following commandgrub-install --target=i386-pc /dev/sda
(when I had bios boot)grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
(when I had uefi boot)grub-mkconfig -o /boot/grub/*
Exiting and Rebooting
Finally, I typed exit
to leave the chroot environment. Unmounted everything with umount -R /mnt
. Then, the moment of truth: I typed reboot
.

The Result
It worked! I got a bare-bones, command-line-only Arch system. From here, it’s all about building it up exactly how I want it – adding a desktop environment, configuring everything. It’s a blank canvas, and that’s the whole point!