Tuesday, 20 December 2016

Add a full installation of Solus to E2B

Max wanted to have a full persistent installation of Solus on his E2B drive.

You can do a full installation of many linux OS's to an empty .imgPTN file following this method.
The same method is also described here for Manjaro linux.

For Solus, after I switched in the new partition images (solus.imgPTN and a 10GB solus file with no extension), I just choose to install to /  on /dev/sda3 and format it as ext4 (no swap partition). I used a 10GB solus file which left 6GB free after installing Solus.

However, when using the Solus 1.2.1 ISO to install with, the Solus installer does not offer the choice of the /dev/sda3 partition to install the grub2 boot loader. It is either \dev\sda  (the E2B USB MBR!) or nothing.

Here is how to get around this...

IMPORTANT: When you first switch in the solus.imgPTN file - do NOT use SWITCH_E2B.exe - always use the E2B menu. Once you have installed Solus, you can use SWITCH_E2B.exe. Add the new menu entry below to \menu.lst and run the new menu entry once (it will fail to boot but set a partition type).

In this case, you should go ahead with the installation as outlined for Kali in the previous blog, but do NOT allow it to install the boot loader to \dev\sda (untick the option) or else it may destroy the MBR on your E2B USB drive!

DANGER! WILL ROBINSON!
Use the Manual install and untick this option.
We need to add a boot entry to our \menu.lst file so we can boot from the freshly installed /dev/sda3 ext4 partition.

If you do not see the partition listed by the installer GUI, then attempt to boot to the empty partition using the menu entry below (it will fail, but this will set a partition type for the new partition). Then boot from the ISO file in the VM and this time you should see the sda3 partition listed in the installer GUI.

For Solus 1.2.1 we need this additional menu entry:

title Solus\n Boot to full Solus install
parttype (hd0,2) 0x83
root (hd0,2)
# get UUID of drive
uuid () > nul
set UUID=%?%
# show boot files to user
echo
echo Files in /boot folder:
ls /boot/
echo
echo
if exist /boot/kernel-4.8.15 kernel /boot/kernel-4.8.15 root=UUID=%UUID% ro
if exist /boot/initramfs-4.8.15.img initrd /boot/initramfs-4.8.15.img && boot
if exist /boot/kernel-4.8.2 kernel /boot/kernel-4.8.2 root=UUID=%UUID% ro
if exist /boot/initramfs-4.8.2.img initrd /boot/initramfs-4.8.2.img
boot

WARNING: Do NOT update the OS using the GUI updater once it is booting and do not update if using a VM - this seems to cause problems! If you want to update the OS, use the terminal eopkg command instead of the Desktop GUI updater and always boot from a real system, as it seems to be much more reliable...

sudo eopkg up

sudo sync

Note: The name of the kernel and initramfs files will be changed with later versions or when you install a kernel update. You will need to determine the new filenames and edit the menu.lst entry. 

Before you update the OS, take a backup of the large Solus file first! The update often seems to corrupt the OS!


Add the Solus boot menu entry to \menu.lst

Solus boots pretty fast too!