[HowTo] Convert Manjaro to EndeavourOS

This is a brief guide for those happy fixing their own bugs to help convert a Manjaro installation to EndeavourOS. It can be applied to switch to plain Arch too, if you ignore the EOS-specific parts.

Note that this should work fine if you have open-source drivers - if you have NVIDIA you may have to do some other work too.

It’s pretty straightforward if you’re comfortable using the CLI for package management. If you’re not, then you probably shouldn’t try this!

However - do keep in mind that this will not result in a “clean Arch install”, so if you have any weird issues then you’re on your own.


1. Make a backup!

Should be obvious?

2. Catch up with unstable

Make the upgrade gap smaller.

sudo pacman-mirrors -aB unstable
sudo pacman -Syyu

3. Replace mirrors

Pick up a set of Arch mirrors from https://www.archlinux.org/mirrorlist/ , e.g.:

/etc/pacman.d/mirrorlist :

## United Kingdom
Server = https://mirror.netweaver.uk/archlinux/$repo/os/$arch

## Netherlands
Server = https://mirror.mijn.host/archlinux/$repo/os/$arch

Then, add an EndeavourOS repo, e.g.:

/etc/pacman.d/endeavouros-mirrorlist :

## Germany
Server = https://mirror.alpix.eu/endeavouros/repo/$repo/$arch

4. Add EndeavourOS to pacman.conf (below [multilib])

[endeavouros]
Include = /etc/pacman.d/endeavouros-mirrorlist

5. Import EndeavourOS key

sudo pacman-key --keyserver keyserver.ubuntu.com -r 003DB8B0CB23504F
sudo pacman-key --lsign 003DB8B0CB23504F

6. Remove Manjaro orchestration/customisation packages

sudo pacman -Rdd pacman-mirrors manjaro-release bashrc-manjaro
sudo pacman -Sy pacman pacman-contrib

Note that -Rdd won’t check for dependencies so you will have to go back later and look over your packages. Yes, -Sy is normally bad but we’ll fix that next.

7. Upgrade, install kernel, replace overlay packages

Check this list yourself to make sure you’re happy with it. You might want to tweak it:

sudo pacman -Syu linux linux-headers filesystem grub sudo systemd systemd-libs systemd-sysvcompat xorg-server xorg-server-common xorg-server-xwayland yay reflector-simple eos-rankmirrors

Watch out for changes resulting in a .pacsave

Resolve those now, e.g. move the files back into place.

8. Ensure GRUB menu built correctly

Check the output carefully. You might need to e.g.

sudo cp /etc/vconsole.conf.pacsave /etc/vconsole.conf

and re-run

sudo grub-mkconfig -o /boot/grub/grub.cfg

If you want, you could add a GRUB hook to /etc/pacman.d/hooks/grub.hook:

[Trigger]
Type = File
Operation = Install
Operation = Remove
Target = usr/lib/modules/*/vmlinuz
Target = boot/vmlinuz*

[Action]
Description = Updating Grub-Bootmenu
When = PostTransaction
Exec = /usr/bin/grub-mkconfig -o /boot/grub/grub.cfg

which will do this automatically on kernel changes.

9. Reinstall GRUB

Replace Manjaro’s GRUB boot loader with the Arch boot loader

sudo grub-install /dev/$YOUR-BOOT-DISK

Obviously, check that destination device as you normally would.

10. Check for other Manjaro-specific packages and replace/remove

Check for non-repo packages:

pacman -Qm

Note: this will show AUR packages too!

Check for things like kernel variants. Some packages in Manjaro’s [community] will have AUR equivalents.

Remove and replace as you want, e.g.:

sudo pacman -Rdd $(pacman -Qsq manjaro-) $(pacman -Qsq mhwd)

This is important to check. Don’t just hit Enter.

11. Remove old kernel initramfs files

Removing the Manjaro kernels can leave behind their boot files.

Look under /boot and remove any files generated by Manjaro’s kernel packages, then regenerate the GRUB config.

12. Check configuration files

For example:

  • Merge pacnew using pacdiff
  • Remove SyncFirst line from /etc/pacman.conf

13. Set hostname

e.g.

sudo nano /etc/hostname

14. Set locale

e.g.

localectl set-locale en_GB.UTF-8

15. Check vconsole settings

/etc/vconsole.conf, e.g:

KEYMAP=uk
FONT=
FONT_MAP=

16. Update mirrors

reflector-simple
eos-rankmirrors

17. Re-check for updates. Ensure GRUB is correct.

sudo pacman -Syu
sudo grub-mkconfig -o /boot/grub/grub.cfg

18. Make the system identify itself as EndeavourOS (optional)

Check the below discussion for the rationale for this.

sudo pacman -S eos-hooks

19. Reboot

That should be all you need to do. Once booted, tidy the remaining Manjaro kernel and check again for orphans etc.

There may be some other smaller issues cause by lingering configuration differences. Also remember that these might not be common with EOS or Arch, so please don’t report them as bugs to Arch!

If you find any other weird issues, make sure you step through the Arch install guide and make sure all the basics are in place.

20. Final cleaning (optional)

You can use lostfiles to locate files which don’t belong to a package. Some of these will be fine (e.g. caches) but you may find others which are no longer needed.

You might also find other non-essential packages to switch (e.g. replace steam-native with steam-native-runtime).

32 Likes

It’s good, but it’s not clean.

Read it quickly but the cleanest option is to install from scratch an EndeavourOS. Migrating from Manjaro to Archlinux is a not a good idea for some little things.

8 Likes

It’s true, it’s not clean. I did say that on the fourth line. :wink:

It’s a stopgap for me, so I documented it. I have a couple of machines to do.

3 Likes

Welcome to hard to nearly impossible to reproduce weird bugs.

4 Likes

Yes. I think I mentioned that too…

1 Like

Indeed. You did. Trying your guide right now :slight_smile:

Feedbacks:

  1. sudo pacman-mirrors -ab unstable -> -aB
  2. Point 6 -> broken system. You have to wait to be in post-migration for $(pacman -Qsq manjaro)
  3. Point 7 -> I had to add overwrite=* to go on.
5 Likes

If you want to convert you should start fresh. Start from today. Endeavour! :relaxed:

7 Likes

Oh yes… Just tested the guide, nothing less, nothing more!

I’ve deleted the image in the original post, since it is a bit overkill, @jonathon could you remove this also on the Manjaro forum?

3 Likes

It was only there to look pretty, but sure.

4 Likes

I understand, but it may come across as if we are trying to snatch people away from Manjaro with that banner on top.

2 Likes

@jonathon I removed the image in your wiki-post on the Manjaro-forum, as I happened to be logged in there right now.

4 Likes

Gotcha. That was certainly not the intention.

6 Likes

I don’t know. Seems it would be easier to install EndeavourOS over the distro to be replaced.

Cannot speak from experience, but it appears the detailed instructions are close to what it might take to install Arch from scratch.

Speaking of a scratch install of Arch, am I the only one that feels an itch to do an install the “Arch” way? Looking at the “Arch” install guide, I generally get the impression I might unintentionally delete existing partitions that I want to keep.

1 Like

Yes - the main reason I did this was because of the amount of dev-related customisation I have (e.g. aurutils chroots) which I didn’t want to faff with again at the moment.

The changes required were actually pretty minimal for my systems. I haven’t looked at the laptop with the GTX680M yet, though…

1 Like

That has been known to happen :blush: - or similar, but it is easily avoided once you know. Basically, just ensure you have your partitions preset (with GParted?) before you begin. And follow the mount instructions carefully! EOS is much easier to do, though! In fact, I added in the EndeavourOS repo to a bare-metal Arch build… :grin: - I’ve learned to like the tools available - and the forum!

1 Like

A post was split to a new topic: Advice on how to convert a Manjaro install with a separate LUKS home partition partition

Thanks for your understanding and Welcome.

1 Like

Sorry to say, this thread doesn’t belong on our forum.

1 Like