Lazy loaded image
知行合一
Arch linux安装使用踩坑记录
00 分钟
2024-1-18
2024-9-29
type
status
date
slug
summary
tags
category
icon
password
Arch Linux是一个轻量级且灵活的Linux发行版,遵循KISS原则(Keep It Simple, Stupid)。它提供了一个最小化的基础系统,用户可以根据自己的需求进行定制。
虽然Arch Linux对新手来说可能具有挑战性,但它提供了一个独特的学习机会,让用户能够全面理解和掌控自己的Linux系统。包括理解linux系统原理,定制化,使用优秀的文档和活跃的社区汲取知识等。

问题记录

手动添加grub引导

我的安装方案如下,使用UEFI引导+GPT分区格式磁盘安装,将计算机中原本的efi分区挂载为linux下的boot/efi,将外接磁盘中的空闲区域挂载为系统的主目录。
安装好后grub扫描不到原本的windows系统,os-prober已经可以扫到windows的efi分区中的boot manager了,但是grub-mkconfig后还是无法加入开机引导项目,因此需要手动进行添加。
首先根据开机时的提示,按c键进入grub的命令行,查找磁盘相关的信息,找到系统efi分区相关的信息并记录下来:
添加自定义引导项目:
写入如下内容,具体的id可以通过blkid [分区路径] 来获得,我的两个系统的引导都放在了同一个分区里面:
重新执行启动引导的制作:
重启后选择grub启动中的win10选项,发现成功使用chainloader机制打开了win10的启动引导程序,问题解决。

timeshift回滚时重置home volume

timeshift是一个用于创建磁盘快照的程序,在使用它回滚到某一个快照时,出现/home目录提示未被挂载的问题。
回滚到某一个快照后,重启,显示如下的错误:
查阅资料可知,这是timeshift在回滚时重置了用户/home目录的volume值,在启动时,grub可以依照id启动,也可以依照volume值启动,重置后的volume值与原本的id产生了冲突,故无法挂载。
解决方案如下:按照提示进入root命令行环境,将重置后生成的volume值删去即可正常启动:
将home目录对应的行找到:
删去volume这一项即可:

显卡驱动

手动安装显卡驱动后,计算机插上外接显示器导致黑屏,能正常开机并且显示kde桌面的登陆界面,但是登陆后如果外接显示器是连接在设备上的,则两个显示器都无任何输出。推测是显卡驱动和双显卡切换相关的问题。
使用管理多显卡切换的软件解决了这个问题:
参照 /usr/share/optimus-manager.conf中的配置示例,自定义配置:
/etc/optimus-manager/optimus-manager.conf添加对应项目,使得连接电源开机时使用独立显卡,直接在图形界面中设置也是相同效果:

Archlinuxcn keyring安装

许多软件需要使用archlinuxcn仓库作为源,而未正确安装相关keyring的情况下会遇到签名不受信任的问题而无法下载对应的软件包,因此需要安装keyring:
安装keyrings报错,查阅相关文档https://www.archlinuxcn.org/gnupg-2-1-and-the-pacman-keyring/,需要进行如下的步骤后再安装keyring:
非常神奇的是,运行最后一行的命令pacman-key --populate archlinuxcn时,提示相关key文件不存在,经过一番搜索,得到的答案竟然是安装keyrings即执行sudo pacman -S archlinuxcn-keyring,这可谓形成了闭环。
解决方案,索性关闭签名验证,直接强行先把archlinuxcn-keyring下载下来,更改pacman配置文件SigLevel项目为Never,以后再改回来,问题解决:

参考官方发布的消息:
新系统中安装 archlinuxcn-keyring 包前需要手动信任 farseerfc 的 key archlinuxcn 社区源的 keyring 包 archlinuxcn-keyring 由 farseerfc 的 key 签署验证,而 Arch Linux 官方 keyring 中包含了 farseerfc 的 key 。自12月初 archlinux-keyring 中删除了一个退任的 master key 导致 farseerfc 的 key 的信任数不足,由 GnuPG 的 web of trust 推算为 marginal trust,从而不再能自动信任 archlinuxcn-keyring 包的签名。 如果你在新系统中尝试安装 archlinuxcn-keyring 包时遇到如下报错:
请使用以下命令在本地信任 farseerfc 的 key 。此 key 已随 archlinux-keyring 安装在系统中,只是缺乏信任:
之后继续安装 archlinuxcn-keyring :
Remove main key of diabonas (#246) · Issues · Arch Linux / Arch Linux Keyring · GitLab
Remove a main key Details Username:

yay没法正常使用

运行yay命令,提示了loading shared libraries: libalpm.so.13相关问题,这实际上是使用arch时经常碰见的更新后依赖冲突,参考这篇文章完美解决:
先查看我们现有的libalpm库文件:
所以这里就发现问题了,我们有的版本号高于yay需要的版本
修复这个问题的第一个方法是创建一个符号链接:
这属于一种奇技淫巧,而且还是有产生兼容问题的风险,因此还有第二种更好的方法:
从源代码重新构建并重新安装Yay,这样它就会使用新的libalpm
安装Git和base-devel包:
克隆Yay的仓库,使用makepkg构建并安装它,makepkg会使用PKGBUILD文件中的“描述”来构建和安装包。在PKGBUILD文件中,我们已经定义了GOFLAGS="${GOFLAGS} $(pacman -T 'libalpm.so=14-64')"
克隆仓库并运行makepkg命令,加上-s(安装依赖)和-i(使用pacman安装构建的包):
问题解决

2024.9.28:更新到libalpm.so.15.0.0了,又出现了这个问题,复读了一遍上述过程,arch不得不品的一环
上一篇
操作系统实验
下一篇
对于字符串匹配的简单整理