blogs/docs/notes/OS/ArchInstall.md
SilverAg.L bb15f64eb8
All checks were successful
部署文档 / build (push) Successful in 52s
Edit Note: Arch Install
2025-06-04 23:49:03 +08:00

342 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2024-06-15
category:
- 操作系统
- Linux
tag:
- Arch Linux
- KDE
- Wayland
- X11
star: true
---
# Arch Linux 个人安(折)装(腾)流程
<!-- https://www.glowmem.com/archives/archlinux-note -->
<!-- https://arch.icekylin.online/guide/-->
::: details 我选择 Arch 的理由
1. 比起“服务”,我还是更倾向于把操作系统当作纯正的工具。可能这就是旧信息时代遗老吧。
2. “缘,妙不可言”。
3. 具体工作具体分析吧。跨平台开发 Arch 也挺舒服的。但 Adobe 全家桶就显然不适合了。
:::
最近重新组织了下家里的设备,咱的笔记本也是先后经历了 Arch 转 Win11 再转 Arch 的路子。时至今日,我曾经跟着律回指南安装 Arch 的步骤有些不再适用,有些需要补充。总而言之,还是重新整理一下我的流程吧。
> [!important]
> 由于 Arch 更迭速度比较快,下面的参考链接以及这篇笔记本身的内容可能随时失效。
> 在安装、使用过程中遇到的,这里没有提及的问题,还请自行 Google、Bing 或 Baidu。
>
> 如果你觉得 Arch 滚动更新很累、玩不太明白,不妨还是先上手`Pop!_OS`或者`Ubuntu`。
>
> 此外,也可以多多留意其他人总结的 Arch 折腾小技巧,说不定会有意外收获。
## 参考链接
本文有参考以下两篇安装教程:
1. [律回彼境Arch Linux 折腾指南&记录](https://www.glowmem.com/archives/archlinux-note)(以下简称「律回指南」)
2. [Nakano MikuArch 简明指南](https://arch.icekylin.online/guide/)以下简称「Miku 指南」)
## I. 前期准备
- 下载安装镜像:[清华镜像 (25.06.01)](https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/archlinux-2025.06.01-x86_64.iso)、[官方下载](https://archlinux.org/download/)。
> 烧录过程不再赘述,推荐用 Ventoy 统一管理安装镜像。[参见 Ventoy 中文主页](https://www.ventoy.net/cn/)
- 固件^1^:启用 UEFI、禁用安全启动Secure Boot
> 近十几年的主板大都支持 UEFI我也懒得花篇幅去讲传统 BIOS 引导。对于 Arch Linux 的 UEFI 引导方式,我[另有一篇笔记](./ArchUEFI.md)讨论,可供安装阶段参考。
> 至于 Secure Boot不用想了给`.efi`启动文件签名着实是件麻烦事。我爱折腾,但不爱做没意义、意义不大的折腾。
- 网络^2^:如需连接 WiFi提前把 WiFi 名字SSID改成英文。
> 安装全程在命令行CLI环境进行并且 LiveCD维护环境下同的终端字体**不支持中文**。除非附近没有别的 WiFi 起中文名字,否则还是改你自己的 WiFi 比较妥。
> [!tip]
> 如果只是迁移系统,那么进入维护环境之后只需`rsync`做全盘搬运即可(当然前提是目标**盘**要比原**系统**的实际占用空间要大)。可参见 [lin.moe](https://lin.moe/tutorial/2020/04/arch_migrate/)。
## II. LiveCD 基础配置
与[律回指南 Ch.1](https://glowmem.com/archives/archlinux-note#%E4%B8%80%E8%BF%9E%E6%8E%A5%E7%BD%91%E7%BB%9C%E5%92%8C%E6%97%B6%E5%8C%BA%E9%85%8D%E7%BD%AE) 相同,但省略了分配固定 IP 的一步(我完全可以进路由器里猹询)。
## III. 分区
对于固态硬盘,**不提倡建立过多的分区**。那么在 UEFI 启动的系统盘上,至少可以这么分:
- EFI 启动分区[^esp]:挂载`/efi``/boot`[^esp_mountpoint]
- 系统分区:挂载根目录`/`
我个人在此基础上,倾向于*在硬盘(逻辑扇区的)末端*开多一个交换分区。
[^esp]: 对于 GPT 分区表有专门的“EFI System”即 ESP分区类型当然新款的主板也会*连带扫描 FAT 分区*;对于 MBR 分区表,则扫描**活动**的 FAT 分区。参见 [UEFI 启动的实际工作原理](https://www.cnblogs.com/mahocon/p/5691348.html)。
[^esp_mountpoint]: ESP 装载`/boot`系经典分区法。后来有说法称“直接暴露 Linux 内核并不安全”,所以又有将 ESP 装入`/boot/efi`的分法Ubuntu Server 24.04.2 即如此)。现在(至少在 Arch 里)则推荐直接挂载到`/efi`
详细的分区步骤参见 Miku 指南。由于该指南假定保留 Windows 系统分区,其对分区方案的介绍实际上拆成了两部分:
- :new: [全新安装](https://arch.icekylin.online/guide/rookie/basic-install-detail#%F0%9F%86%95-%E5%85%A8%E6%96%B0%E5%AE%89%E8%A3%85)
- [7. 分区和格式化(使用 Btrfs 文件系统)](https://arch.icekylin.online/guide/rookie/basic-install.html#_7-%E5%88%86%E5%8C%BA%E5%92%8C%E6%A0%BC%E5%BC%8F%E5%8C%96-%E4%BD%BF%E7%94%A8-btrfs-%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F)
然后是挂载。挂载**务必先挂载`/`**,务必先挂载`/`,务必先挂载`/`!除此之外,别忘了挂载交换分区(如果有的话)。
## IV. pacman 配置
### i. 换源
Linux 的包管理器默认用的国外的软件源,`pacman`也一样。因此,非常建议先换用国内镜像,加快包下载速度。
编辑`/etc/pacman.d/mirrorlist``vim`还是`nano`请自便):
```ini
# 在文件开头起一空行,复制下列镜像源:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
```
> [!tip]
> 变更后的`mirrorlist`会在 Arch 安装过程中被复制过去。这样后续就不需要再做一遍换源了。
### ii. 自身配置
默认`pacman`是逐个下载软件的。但哪怕是 1MB/s 小水管,并行下载四、五个软件包也绰绰有余了。
编辑`/etc/pacman.conf`
1. 找到`# Misc options`,删掉`Color` `ParallelDownloads = 5`前面的注释`#`
```ini
# Misc options
#UseSyslog
Color # 输出彩色日志
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5 # 最大并行下载数(根据你的网速自行斟酌,不建议写太大)
```
2. 翻页到文件末尾,删掉`[multilib]`和底下`Include =`这两行的注释`#`
> `multilib`是 32 位软件源。默认下载的包都是`x86_64`的,而有一些程序仍需要 32 位的库。
> [!note]
> 很遗憾,经实测 pacman 配置并不会复制过去。在安装完系统`arch-chroot`进去进一步配置时,你需要重复做一遍上述操作。
## V. 正式部署
参见 [Miku 指南—基础安装—9. 安装系统](https://arch.icekylin.online/guide/rookie/basic-install.html#_9-%E5%AE%89%E8%A3%85%E7%B3%BB%E7%BB%9F)。当然我偏向于律回指南,除此之外还会提前装些工具:
- CPU 微码:`intel-ucode``amd-ucode`
- 基础命令行工具:`vi` `nano` `git` `wget` `tmux` `openssh` `htop`
- Windows 文件系统NTFS支持`ntfs-3g`
不过……不知道以后好不好使就是了。之前律回指南还提前装了`yay``neofetch`,但现在不行了。
然后`genfstab -U /mnt > /mnt/etc/fstab`生成挂载表,`arch-chroot /mnt`切换进新系统里,继续配置吧。
接下来的配置我参考了[律回指南 Ch.4](https://glowmem.com/archives/archlinux-note#%E5%9B%9B%E7%B3%BB%E7%BB%9F%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE),不过在`visudo`处我没有取消“免密`sudo`”的注释。**免密`sudo`还不如直接`su`,干脆也不用创建非 root 用户了**。
## VI. 新系统的配置
跟着律回指南的三、四章装好系统之后,重启登入新系统的终端。
首先通过`nmtui`连上 WiFi。
### i. CN 源和 AUR 助手
在**联好网的新系统**里配置`archlinuxcn`源:`sudo nano /etc/pacman.conf`
```ini
# 末行添加
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
```
并安装 CN 源的签名密钥和 AUR 助手:
```bash
sudo pacman-key --lsign-key "farseerfc@archlinux.org" # 为密钥环添加本地信任
sudo pacman -S archlinuxcn-keyring # 安装密钥环
sudo pacman -S yay paru # 安装 AUR 助手
```
::: info 关于本地信任 Key
简单来说就是给 CN 源密钥环签名的`farseerfc`他的 Key 掉信任了,包管理器“不敢”安装这个密钥环^2^。
:::
### ii. 硬件(一)音频安装
音频分为固件(或者说驱动)和管理套件两部分:
```bash
# 音频固件
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf
# pipewire 及其音频管理套件
sudo pacman -S pipewire gst-plugin-pipewire pipewire-alsa pipewire-jack pipewire-pulse wireplumber
```
::: tip pulseaudio
除了 pipewire 音频方案之外另有`pulseaudio`可供选择。但务必注意:音频管理套件**只能二选一,不可以混装**。
另外,由于 pipewire 本身不单只负责音频管理的工作,如需装 pulseaudio 仍需安装`pipewire` `gst-plugin-pipewire`两个包。
相应地,其余的包可换用如下平替:
- `pipewire-alsa``pulseaudio-alsa`
- `pipewire-jack``jack2`
- `pipewire-pulse``pulseaudio`
- `wireplumber``pipewire-media-session`pipewire 弃用)
> 由于 pipewire 那边有 wireplumber 代替,所以这个包被他们自行标记为“过时”。
> 但 pulseaudio 仍需要这个包。
:::
显卡、蓝牙等其他硬件设施需要在装好桌面环境后再考虑。至少**到本小节为止你的系统里并没有蓝牙服务**,无法启用。
### iii. KDE 桌面环境
跟完前面的内容之后,你便拥有了一个无 GUI 的终端 Arch 系统。但作为日常使用的话,图形桌面肯定必不可少。
本文与那两篇参考外链一样**采用 KDE 桌面环境**。当然除了 KDE 之外,你也可以考虑 GNOME 桌面环境 ~~(只是我用腻了)~~
也可以考虑散装方案(比如`hyprland`~~,只是我没折腾成功~~)。
```bash
# 分别安装 xorg 套件、sddm 登录管理器、KDE 桌面环境,以及配套软件
sudo pacman -S xorg
sudo pacman -S plasma sddm konsole dolphin kate okular spectacle partitionmanager ark filelight gwenview
# 启用 sddm 服务,重启进 SDDM 用户登录
sudo systemctl enable sddm
sudo reboot
```
::: info KDE 6 vs KDE 5
目前最新版本为 KDE 6。但律回指南发布于 23 年 11 月,介绍的是 KDE 5。
话虽如此,倒也不必惊慌。`pacman`以及`yay` `paru`之流均**默认安装最新版**,上述**安装 KDE 5 的步骤仍可用于安装 KDE 6**
:::
重启后在用户登录界面输入密码回车,恭喜你,距离投入日常使用只剩几步之遥了。之后对 KDE
和系统的配置**大部分**仍可参考[律回指南 Ch.6](https://glowmem.com/archives/archlinux-note#%E5%85%AD%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE)。
:::: info 关于 Wayland 和 X
KDE 的图形实现默认已经是 Wayland 了。在开机后输入用户密码的界面处,找找屏幕边角,你可以看到默认选用`Plasma (Wayland)`
点击它,你可以选择换用`Plasma (X11)`
尽管 X11 有个「锁屏黑屏」的问题,但目前来说我还是推荐换回 X11。
::: details X11 锁屏黑屏
KDE 的默认 Breeze 主题锁屏时大概率会出现黑屏、惟有鼠标的现象。在 7 月中旬时已经发现该现象已经蔓延到自定义主题了。查了下 Google 以及 Arch、Manjaro、KDE 的一些讨论帖,尚没有有效的解决方案。
当然有一些主题可能能够解除这个“病征”,像我之前装的 Nordic Dark以及现在的 Lavanda。这种 work around 可能还是因人而异。
:::
::::
### iv. 硬件(二)显卡驱动与蓝牙
> “so NVIDIA, F**K YOU! ”——Linus Torvalds
AMD 或 NVIDIA 显卡可参见[律回指南 &sect;6.4](https://glowmem.com/archives/archlinux-note#4%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AE%89%E8%A3%85)
和 [Miku 指南—进阶安装—显卡驱动](https://arch.icekylin.online/guide/rookie/graphic-driver.html)篇。
但我是锐炬核显捏,只需要在 Konsole 终端里`sudo pacman -S`安装图形 API
- `mesa` `lib32-mesa`OpenGL
- `vulkan-intel` `lib32-vulkan-intel`Vulkan
- `intel-media-driver`VAAPI 解码器OBS 需要)
如果有蓝牙的话,在 Konsole 里启用(并立即启动)蓝牙服务:
```bash
sudo systemctl enable --now bluetooth
```
> 之前误以为`bluetooth`是 Arch 本身就有的服务,结果发现是桌面环境依赖了蓝牙组件包。
### v. 额外中文字体和输入法
律回指南安装的字体分别是 Noto 系列Linux 常用的 Unicode 字体)和思源系列(也算是 Noto 系列的子集)。
其中 Noto 系列的汉字部分由于一些神秘的原因,不做额外配置的话,渲染出来只能说……能用。
::: info 参考资料
- [Arch Wiki关于中文字被异常渲染成日文异体字的说明](https://wiki.archlinux.org/title/Localization/Simplified_Chinese#Chinese_characters_displayed_as_variant_(Japanese)_glyphs)^2^
- [Arch 中文论坛noto-fonts-cjk 打包变化可能导致的回落字体选取问题](https://bbs.archlinuxcn.org/viewtopic.php?pid=60100)^2^
:::
::: note fontconfig
`wqy-zenhei`^extra^(文泉驿)和`misans`^aur^会在安装过程中自动帮你配置 fontconfig因此安装完这两款字体之后系统默认用这些字体显示。
如果你希望使用未经适配的字体,那么需要在 KDE 设置里装好字体后,额外做字体配置。
示例:[思源系列字体配置](../../shared/01-Prefer.conf) By [@Vescrity](https://github.com/Vescrity)
注意:用户级字体配置需放在`~/.config/fontconfig/conf.d`目录中。
另注:使用`fc-cache -vf`刷新字体缓存。
:::
至于输入法,现阶段推荐直接安装`fcitx5`,参见 [Miku 指南—进阶安装—常用应用—10. 输入法](https://arch.icekylin.online/guide/rookie/desktop-env-and-app.html#_10-%E5%AE%89%E8%A3%85%E8%BE%93%E5%85%A5%E6%B3%95)。
至此Arch 的安装告一段落,你可以像捣腾 Windows 那样玩转 Arch 了。
---
## 附录:系统美化
> “爱美之心,人皆有之。”
> [!tip]
> - **风格统一**是美观的必要条件。
> - 少搞“侵入性”美化。或者说,需要**修改系统文件、注入系统进程、破坏系统稳定的美化尽量少做**。
> - **谨遵发布页面附送的安装指引**KDE、GNOME 主题可以参考项目 GitHub否则可能安装不全。
### I. 主题
主题这边我也没啥好推荐的,虽然 KDE 6 现在也出现了一些比较好看的主题,但终究是因人而异吧。
我想说明的是KDE 商店的多数主题在 **X11 会话、125% 甚至更高缩放率**下会出现“非常粗窗口边框,使我的窗口肥胖”的现象(至少我的笔记本如此)。
我个人目前是直接修改主题 Aurorae 配置文件,利用二分法逐步找到四条边的最适 Padding。
网上貌似也有“把缩放调回 100%,但是更改字体 DPI”的做法但个人觉得显示效果应该好不到哪去
### II. 仿 Mac 上下双栏布局
KDE 原生的桌面 UI 就挺 Windows 的,但胜在自由度足够高。
我**个人觉得** Mac OS 那种双栏比较好看、比较方便,所以稍微按照如下配置调整了面板布局。
仅供参考咯。
::: details Dock 栏
即原本的任务栏。
- 位于底部、居中、适宜宽度、取消悬浮、避开窗口
- 除“图标任务管理器”外,其余组件全部移除。
:::
::: details Finder 栏
即“应用程序菜单栏”(可在 *编辑模式—添加面板* 处找到)
- 位于顶部、居中、填满宽度、取消悬浮、常驻显示
- 自左到右依次为:
- 应用程序启动器(类比开始菜单)
- 窗口列表
- 全局菜单(默认提供)
- “面板间距”留白
- 数字时钟
- 日期保持在时间旁边,而不是上下两行
- 字号略小于菜单栏高度,凭感觉捏
- “面板间距”留白
- 系统监视传感器
- 横向柱状图(平均 CPU 温度、最高 CPU 温度)
- 仅文字(网络上行、下行速度;网络上传、下载的总流量)
- 系统托盘
:::
除了 Finder 栏外,可以在系统设置里更改屏幕四周的鼠标表现。
比如,鼠标移动到左上角可以自动弹出“应用程序启动器”,移到右上角可以切换你的桌面,等等。
## 附录GPG 密钥配置
主要讨论配置提交签名Commit Signing时遇到的问题。
### I. VSCode 提交签名
大体上跟着 [Commit Signing - VSCode Wiki](https://github.com/microsoft/vscode/wiki/Commit-Signing) 就可以了。唯一需要留意的是`pinentry`
VSCode 的主侧栏“源代码管理”页提交时并不会走终端,也就莫得 pinentry 的 CUI莫得 pinentry 输密码验证,提交就签不了名。
虽然有人好像搞了个`pinentry-extension`出来,但 6 月初我去看的时候它连说明书都莫得,也没有上架,那用集贸。
所以我选择编辑`~/.gnupg/gpg-agent.conf`
```properties
default-cache-ttl 28800
pinentry-program /usr/bin/pinentry-qt
```
保存后重启`gpg-agent``gpg-connect-agent reloadagent /bye`
除此之外,`pinentry`需要指定 tty否则找不到 IO 设备也会炸。解法:`export GPG_TTY=$(tty)`
经测试,大部分终端均能在 SSH 连接中调出 CUIVSCode Remote-SSH 打开的终端可能比较特殊,仍然无法签名。个人还是建议单独开个终端作为 workaround。
### II. GPG 密钥备份(导出导入)
之前并没有意识到备份 key 的重要性,结果重装 Arch 重新配置提交签名时,
我发现 GitHub 和腾讯 Coding 会重置提交验证(同一个邮箱只能上传一个公钥),届时就是我痛苦的 rebase 重签了。
~~不过好在受影响的多数只是我的个人项目,变基无伤大雅。~~
```bash
gpg --list-secret-keys --keyid-format LONG
# export
gpg -a -o public-file.key --export <keyid>
gpg -a -o private-file.key --export-secret-keys <keyid>
# import
gpg --import ~/public-file.key
gpg --allow-secret-key-import --import ~/private-file.key
```
重新导入 Key 之后,可能还需要`gpg --edit-key`更改密码(`passwd`)、重设信任(`trust`)。