目录
Arch Linux 配置笔记(2024 版)
这篇文档记录我在 ThinkPad T14p 上配置 Arch 的过程。
缘起
2024 年 4 月下旬,我去青州参加单位组织的网络攻防比赛,其中需要有大量使用虚拟机的场景,本身课程就需要 Windows 和 Linux 同时使用,主要的系统就是 Windows,而我的主系统是 Linux,有更多的切换需求。之前的联想 yoga14s 的 16G 内存很快捉襟见肘,把我系统卡死好多次。眼看实在没办法,我下单购买了 ThinkPad T14p,32G 内存,集显,并把之前的电脑回收掉了。新电脑到手后,我没等完成 Windows 的引导就格掉硬盘安装了 Fedora,我总体对 Fedora 比较满意,它陪我度过了参加 CTF 学习与比赛的日子。但近期工作后遇到过一些稳定性的问题,比如经常睡死,令我非常苦恼。终于在 2024 年 8 月 21 日,把之前的内容进行了备份,重新安装了 Arch Linux,在新电脑上有些新的配置,在此写文档记录。
系统安装
网络配置
依旧是使用 iwctl
进行,进之前先用 rfkill
确认硬件有没有被 block。如果网卡被 block 要先运行 rfkill unblock <id>
解锁。
进入 iwctl
之后的联网命令如下:
station wlan0 connec <ssid>
之后输入密码即可。我这次安装使用的无线热点,因为单位里的无线网络进行了 MAC 地址绑定,我也不知道怎么在这一步进行 MAC 地址欺骗。
主体安装
我直接使用的 archinstall
脚本进行的安装,之前不用脚本是想最大限度的优化分区,现在我也看开了,目前有 1T 的 SSD,随它去分吧。~archinstall~ 脚本跟我过去用过的比也有所升级,增加了 locale 等地方的配置, 不过核心上还是没变。
配置好源之后,一定要关闭 reflector
服务,否则脚本安装时会再次找最快的源,耽误时间!
systemctl stop reflector
为了使用快照,分区我使用的 btrfs,这一步没有进行任何特殊的操作。
因为我确定了要使用 GNOME,我在 Profile 这一步直接选好了桌面环境,这样重启后直接会进入 GDM。另外目前引导系统在脚本中默认为 systemd-boot,我第一次安装的时候试了试,还是不熟悉,第二次安装选择了我熟悉的 Grub。
系统配置
快照
之前用 Fedora 的时候,我了解了 btrfs-assistant 这个图形化管理工具,甚至集成了 Snapper 的前端,让我一下子省去了配置 Snapper 的那些麻烦的操作。这次我依旧希望使用它。安装 btrfs-assistant 这个包之后,还需要安装 snapper 包,不然 Snapper 相关的标签页不会显示。
在 Snapper 标签页中创建配置,提示 .snapshots
目录已存在错误信息,这一步走了弯路,甚至我错误的删除了 @snapper 卷,导致系统无法引导,只好进行第二次安装。之后通过查网页,自己测试,发现需要删除 /.snapshots
目录,之后再创建就没问题了。我按照之前的习惯,创建了 root 和 home 两个配置,其他的快照数量等详细参数没有调整,下方的清理等三个开关我都打开了。
为了方便自动进行快照,安装 snap-pac
和 grub-btrfs
两个包,之后就可以在安装软件时自动进行快照了。
指纹
之前 Fedora 上装好后就可以录入指纹,第一次使用之后感觉挺方便的。在 Arch Linux 上配置指纹,直接安装 fprintd
这个包即可,然后在 GNOME 的用户设置页面上,就能看到指纹的选项了。点进去选择手指后即可录入,与 Fedora 上一样。我猜测其他桌面环境不一定也这么顺利,尚未尝试。
录入指纹之后,启动的时候 GDM 就会问你要指纹进行登录,不过第一次登录如果使用指纹,进来后还需要输入一次密码解锁本地密码库,所以建议第一次登录时用密码,之后可以使用指纹。如果希望 sudo
命令时使用指纹,需要编辑 /etc/pam.d/sudo
文件,在开头加一行:
auth sufficient pam_fprintd.so
如果希望图形界面要求提权的时候使用指纹,我的方法是把 /etc/pam.d/sudo
文件复制一份名叫 ~/etc/pam.d/polkit-1~。这一步与上一步估计都需要重新登录或者重启后生效。
电源配置文件
安装 power-profiles-daemon
包之后,启动 systemd 模块,GNOME 的右上角菜单就会出现性能模式选项了:
sudo systemctl enable --now power-profiles-daemon.service
字体
安装后的字体还是有些问题的,不好看是一方面,而且中日韩的顺序又给弄混了,比如“关”字的显示。依旧按照 Plumz 的方法进行配置,显示效果不错。在 Arch 里有方便的 AUR,可以用它安装华为的 HarmonyOS Sans 字体,之后复制他的 fontconfig 配置后重启即可。
软件配置
fcitx5
从原理上讲有多种方法,Arch 里和其他系统不大一样。首先安装 fcitx5-im
和 fcitx5-rime
两个包,把之前的配置文件复制进 ~/.local/share/fcitx5/rime/
目录,然后在 /etc/environment
文件添加:
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx # SDL_IM_MODULE=fcitx # GLFW_IM_MODULE=ibus
根据 ArchWiki 上说,GNOME 可以配置好 Wayland 下面的输入功能,所以只需要加 XMODIFIERS
和 QT_IM_MODULE
两个变量的配置就可以了。之后重新启动系统即可正常输入中文。
经过尝试 GTK_IM_MODULE
变量还是要设的,一些 XWayland 应用需要。我一开始没设,结果 Obsidian、Typora 都出现了掉字的情况,也就是字母上去了,没有被输入法捕获,非常影响输入体验,而且输入框也不跟随。我测试了设置成 wayland
也不行,设成 fcitx
就正常了。
NetworkManager
MAC 地址欺骗
这对我来说是个大问题,因为公司的无线网绑定了 MAC 地址,重新安装后默认是随机 MAC 地址,导致我一直无法联网。查了一些办法,比如命令行,~macchanger~ 包等,都没有解决问题。后来经过测试,NetworkManager 图形配置那里就有这项功能。
在设置窗口的 Wi-Fi 这一项,在下方可见网络那里找到需要配置的 SSID,点击齿轮打开详细设置窗口,在身份选项卡中,第四项是“克隆的地址”选项,把需要克隆的 MAC 地址输入进去就行了。之后点击应用,再次连接 MAC 地址就变过来了。通过查看 /etc/NetworkManager/system-connections/
里的热点配置文件,发现是在 [wifi]
段中多了一行 ~cloned-mac-address=<MAC>~,猜测手动添加也是可以。
关闭连通测试
当配置了 V2RayA 之后,可能会影响连接检查,造成托盘图标的网络标志上多了一个问号,不影响使用,但看上去挺别扭。方法之前记过,再写一次:添加一个 /etc/NetworkManager/conf.d/20-connectivity.conf
文件,内容为:
[connectivity] .set.enabled=false
再次启动的时候就不会显示问号了。
Libvirt 迁移
这是一个大问题,因为我办公内网环境只有 Windows 的驱动,因此只能跑在虚拟机中。如果要从零开始配置还要联系工程师要一个临时的密码,比较麻烦。我重装之前还专门去查了迁移的方法,到用的时候也没用上。目前可以让之前的虚拟机顺利在新系统上运行了,但之前的快照就没了,怎么迁移快照我还没弄明白。
首先备份原系统的镜像,默认位置在 ~/var/lib/libvirt/images/~,把里面的 qcow2 镜像文件复制出来就行了。配置的 XML 文件说是要复制,我这次没有用到,就不写了。
新系统配置
安装 ~qemu-desktop~、~virt-manager~包,按照 wiki 上的说明,配置普通用户权限(参考):
sudo usermod -a -G libvirt liuf sudo usermod -a -G kvm liuf
之后运行命令让后台按需启动:
sudo systemctl enable --now libvirtd.socket
之后 virt-manager 里就不会出现 QEMU/KVM 未连接的问题了,如果还是未连接的状态,可以双击进行连接。
网络默认情况下是关闭的,需要手动打开,否则无法导入之前的虚拟机。按照这篇文章的步骤操作:
sudo virsh net-list all # 看到 default 网络的状态是 inactive sudo virsh net-start default # 此时状态变为 active sudo visit net-autostart default # 此时 Autostart 状态变为 yes
在新的系统配置好后,把镜像文件复制进相同的目录中。在 virt-manager 里点击“创建新虚拟机”,选择“导入现有磁盘映像”,在之后的窗口中选择好系统的种类,然后可以配置一下 CPU 和内存的大小,还能在启动前对具体配置进行修改,比如再把 Public 共享文件夹添加回去。之后在我这里,之前的虚拟机可以正常运行了。
微信
使用 AUR 安装 wechat-universal-bwrap
包,就是官方的微信 Linux 版,之前在 Fedora 时用的是 Flathub 里的,跟这个差不多,不过版本没有 AUR 里的新。
安装好后就可以正常聊天了,测试在 Wayland 环境下,截图无法正常使用。
如果需要发送文件,需要配置文件夹权限。新建一个 ~/.config/wechat-universal/binds.list
文件,每行写一个目录,之后重新启动微信即可。我的版本为:
Desktop Documents Downloads Pictures MEGA
配置完毕重启微信就可以了。经过配置后可以把文件拖拽进发送窗口,很方便。