Get the drinks ready! 
About 3 hours later, I’ve done it 
Could have been done much quicker, but I didn’t know the steps. Hit and Trial is slow process.
I’ll brief out the steps I followed to install the Endeavour OS Live environment without booting it. I think you know Arch installation steps, because this is not a detailed guide.
- Create a partition where you will install. Format it and mount it. I am supposing you are familiar with this. Its same as given on Arch installation guide. Lets assume you mount it at
/mnt
.
- Get the ISO.
- Mount the ISO to read it files
sudo mount -o loop,ro -t iso9660 filename.iso test_folder
- In the iso, go to
arch/x86_64
folder. Copy the file airootfs.sfs
to a location where you have write permission (like your home directory). cd
into whichever folder you copied this file. Run this command:
sudo unsquashfs -f -d /mnt airootfs.sfs
This will copy the live environment into the partition.
5. Use arch-chroot
arch-chroot /mnt
In case of non arch distros, you’ll need to mount locations first.
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
WARNING : I’m not 100% sure if you need to pass different flags to mount
. This worked for me, so I am mentioning. I was in VM so I did not risk messing my system, but if you do this on bare metal, then be careful. Consult someone more knowledgeable than me.
Now you can chroot
chroot /mnt /bash/bin
Further on, you just need to change the live system to something that you would actually install. In this case, I had EndeavourOS ISO, so things I mentioned are related to this distro only.
-
Remove stuff I don’t want. Because live ISO may have extra stuff. In my case, I did not need nvidia packages. So run pacman -Rns ...
-
Run systemd-firstboot
. See below links for more info
https://www.freedesktop.org/software/systemd/man/systemd-firstboot.html
https://wiki.archlinux.org/title/Systemd-firstboot
-
Set stuff like hostname (/etc/hostname
), hosts file (/etc/hosts
), locale file, time/timezone, keyboard layout and fstab. Also add users and configure sudo
if needed.
-
Edit /etc/mkinitcpio.conf
. Scroll down to the HOOKS option which has many parameters given. Change the line to this
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"
Of course feel free to add or remove modules if you know what you are doing.
This step is VERY important. mkinitcpio is arch specific tool. When installing different distro, you may have to deal with a different tool. So check with the distro devs or forum.
Specifically speaking, this step is important because with the default configs, your initramfs is set to look for a device with a certain label. (when you create live USB, it gets a label, which is used to identify and boot later on). So having this on your normal system makes it unbootable. Removing the extra live iso related modules from mkinitcpio and populating it with stuff thats there on a normal system will fix it. (you’ll have to rebuild initramfs; thats done in next step)
- Update pacman mirrors. Or mirrors for whichever distro you are installing. Update the system. If kernel is updated, new initramfs will be automatically generated. If not, then run this
mknitcpio -p linux
-
Finally install grub (or whichever boot loader you want)
-
Enjoy!

I’m past the dinner time. Good night
I probably made some errors in typing this, I’m sleepy. So if you’ve got questions, I’ll come back tomorrow. 