Please realise I have never been in a similar situation so my suggestions is a trial-and-error approach - I am sometimes guessing.
What we do know
- the dysfunctional system has file system errors
- file system errors causes applications and files in general to be incomplete or missing
- you have fixed the file system - repaired the errors
- the package lists on the ISO and in the the original file system root contains packages no longer in the repo.
Ensure your system is booted in EFI mode
Ensure you have both root and EFI mounted
Something like this when you run lsblk
sda
├─sda1 /mnt/boot/efi
├─sda2
│ └─mydrive /mnt
Now we need to get the file system back into shape - where files are complete and in the right place.
For that to happen we need a valid list of packages we can feed to pacman and unpack onto the damaged file system which is mounted on /mnt
This can be done be retrieving the latest ISO - booting and starting the process all over OR we can instead download the package list which - usually - exist side-by-side with the ISO.
Besides downloading using CDN77 the images are initially stored on sourceforge before they are transferred to ‘where-ever’ they are stored.
Since you are - apparently - using xfce - the current preview is at Manjaro Linux - Browse /xfce/25.1-pre2 at SourceForge.net with a package list next to it.
Assuming you are using the full ISO - and you have the system booted using the live iso - use this command - in a virtual terminal - to retrieve the file
wget -O xfce-pkglist.txt https://sourceforge.net/projects/manjarolinux/files/xfce/25.1-pre2/manjaro-xfce-25.1-pre2-251215-linux618.iso.pkgs/download
When the list has been downloaded you are ready for next step.
We will need to rethink the approach of getting the dysfunctional file system restored.
It was a mistake of me suggesting the --needed argument - as this will skip the package if the metadata suggests it is up-to-date.
What we need to do is to force the file system to be rebuilt.
Open a terminal and switch to root context
su
First move the /usr tree in the mount point to a backup
mv /mnt/usr /mnt/usr.bak
Then run pacman with instruction to operate on the /mnt mountpoint feeding the filtered package list (version numbers removed)
pacman -Syy --noconfirm --root /mnt $(cat xfce-pkglist.txt | awk '{print $1;}')
After the package sync - then enter a chrooted environment using /mnt
manjaro-chroot /mnt /bin/bash
Rebuild init and grub
mkinitcpio -P
install-grub
I cannot think of anything that could be done now other than exiting chroot and rebooting.
exit
reboot
When / If you have successfully restored your system to a functional state - remove the backup copy we made
sudo rm -rf /usr.bak