METIS Linux is so much minimal that you can even install it using the standard
chroot method, similar to distributions such as
I personally use this method because it allows you to customize your overall installation process, choose a different kernel and stuffs like that.
It is not recommended for individuals who are new to Linux to install METIS Linux using the chroot method. Instead, they are advised to utilize the user-friendly Calamares installer.
In this guide i'll be installing METIS on UEFI system, the process goes the same to BIOS
Assuming you are aleady booted into metislinux ISO and the internet is working fine.
Open terminal with (super + enter) and follow along the below guide.
Once you booted into the iso, do
lsblk and see on which disk to install metislinux on. I'll be installing on my
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 931.5G 0 # Hard drive sdb 8:16 1 29.3G 0 # pendrive of metislinux nvme0n1 259:0 0 119.2G 0 disk # installation drive
fdiskto create two partition out of the disk, and format the boot partition with
mkfs.vfat -F32and another with
/mnt(You can also use
/mnt/boot. (if you have made a
/boot/efidirectory mount it there but it doesn't really matter).
Now, it's time to install the
base packages from the
$ basestrap /mnt base base-devel runit elogind-runit linux-hardened intel-ucode linux-hardened-headers neovim linux-firmware metis-fonts nerd-fonts-jetbrains-mono eww-x11 xclip tmux paru xorg-xinit metis-dwm zathura zathura-pdf-poppler git fzf doas zsh xwallpaper python3 python-pip python-pywal fontconfig xorg-mkfontscale zsh-autosuggestions zsh-syntax-highlighting zsh-completions xdg-utils xdg-user-dirs zoxide libnotify grub mpv ffmpeg pipewire pipewire-pulse wireplumber rustup metis-grub-theme neworkmanager networkmanager-runit efibootmgr
Note, I've installed the very basic packages , you can even filter out on this and choose which to install !!
Now, it's time to generate
fstab of our system.
$ fstabgen -U /mnt /mnt/etc/fstab
If you want to create a swap partition, then run
$ dd if=/dev/zero of=/swapfile bs=1G count=2 status=progress
It will create a swapfile of
2GIB, you can adjust by increasing // decreasing the bs,count value.
After creating the swapfile, we need to add into our fstab file so that every time we boot into our system, it automatically detects the partition to mount.
to do so, just exit out the shell and run
$ fastabgen -U /mnt /mnt/etc/fstab && metis-chroot /mnt
chroot into the new system
$ metis-chroot /mnt /bin/bash # this will open a bash(chroot) instance of newly installed system. you can switch to another shell also.
symlink your localtime and
hardwareclock as follows
$ ln -sf /usr/share/zoneinfo/Asia/kathmandu/ /etc/localtime
writer is my machine name and
Asia/kathmandu is my localtime.
After doing this, we can install the
grub bootloader as below.
After installing grub, we can add a normal user and give a password to it . to add a normal user run
$ useradd -mG wheel,video,audio,power,dbus,storage <username> #the groups listed here are most necessary ones
$ passwd root $ passwd <normal_user>
to set password of users and now we can give sudo privilege to wheel group users by running the following and uncommenting the line
%wheel ALL=(ALL) ALL
$ EDITOR=nvim visudo
and Now, we can simply reboot the system by unmounting the drives as follows. If everything went well, you'll see a grub menu to select metislinux to boot.
$ exit $ umount -Rl /mnt
Runit system is a lil' bit different than other, it uses symlinking feature to enable services in the system. after exiting out of the system, go and login into your newly
installed system. if it was an another init system, we could be just enabling the services right after the base install but in
we actually symlink the services from
NetworkManager we can do the following
$ sudo ln -s /etc/runit/service/NetworkManager /run/runit/service/NetworkManager
It goes similar to any other services