最近闲来无事,就研究了一下怎么把我的Manjaro转成Arch(邪教的信仰😀),因为Manjaro是基于Arch的发行版,所以这种操作理论上是可行的,之前就有人尝试把Deepin换源升级成Debian,所以我就在群里问了一下,还真有人回复说见过这种操作,我在谷歌上搜里一下详细的过程,在这里整理一下升级的过程。

1. 替换 /etc/pacman.d/mirrorlist 里面的 manjaro

sudo vim /etc/pacman.d/mirrorlist

(可以全部删掉)在文件的最顶端添加:

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

全局更新
sudo pacman -Syyu

升级失败也没关系,失败就先不要升级,也可以使用sudo pacman -Syyudd试试,-dd是跳过所有检测。

2. 修改 /etc/pacman.conf

sudo vim /etc/pacman.conf

将所有的 SigLevel 的等号右边通通改成Never (安装本地软件包那个可不改)
以下指令中,凡是提示不能满足依赖关系又不重要的,都暂时删了。

  1. 执行下面的指令:
sudo pacman -S pacman #不知道是否需要?
sudo pacman -R manjaro-keyring
sudo pacman -S archlinux-keyring archlinuxcn-keyring
sudo pacman-key --init
sudo pacman-key --populate archlinux manjaro
sudo pacman-key --refresh-keys
sudo pacman -S $(pacman -Qenq)
sudo pacman -S linux linux-headers #把内核换成arch提供
sudo pacman -S pacman-mirrorlist #直接选择卸载pacman-mirrors

如果有执行过程中有以下错误:

lsb-release: 文件系统中存在 /etc/lsb-release (由 manjaro-release 所有)
发生错误,没有软件包被更新。
  1. 备份掉 /etc/lsb-release 文件
mv /etc/lsb-release /etc/lsb-release.backup
  1. 更新完成后,再次执行更新,看有无错误,没问题后,删除/etc/lsb-release.backup文件
rm -rf /etc/lsb-release.backup

如果有关于 syntax:/etc/pacman.conf的警告,只需要编辑 pacman.conf ,注释掉syncfirst一行即可。大约是在二十多行的位置。

  1. 如果执行过程中遇到任何软件包不符合依赖关系,请大胆卸载。特别是pamac-cli,pamac-gtk-pamac-common,manjaro-system-utility等包。在变成arch后如需继续使用图形化包管理器pamac-gtk,可以从aur获取。
yay -S pamac-aur

以上就是我升级的过程,升级后我把引导方式改了(当然不改也能正常启动),把大部分发行版默认的grub换成了rEFInd,所以我就没参考其他的人说的重装grub,如果想试试的可以参考下面(再说一遍,我的没重装grub也能正常开机):

  1. /etc/default/grub/etc/grub.d 清空,然后重装grub
  2. /boot/efi/EFI/manjaro 删了,然后grub-install
  3. grub-mkconfig -o /boot/grub/grub.cfg 生成新的配置文件

最后来一张迟到的截图:

Arch

图标还是Manjaro(逃)

操作过程参考以下链接:
Manjaro 升级失败-解决方案
记一次manjaro变arch的奇妙经历
把Manjaro改成ArchLinux
Manjaro 转 Archlinux 配置笔记

Q.E.D.


于浩歌狂热之际中寒;于天上看见深渊。于一切眼中看见无所有;于无所希望中得救。