我的环境:机械革命 S1 Pro,i5-8265u,NVIDIA MX250,双硬盘双系统
由于 Arch Linux 滚动更新,本指南有时效性,请注意本文修改日期。 见 官方的安装指南 。 当下, Archinstall 已经预装在安装镜像中了,但我不太喜欢预定配置,所以手动安装。 我的环境是 UEFI 启动的 amd64 系统,能装 Windows 10 的电脑基本都能满足这一点。 详见 Verify the boot mode
安装前
- 下载安装镜像 ,用 Ventory 把没有重要数据的小 U 盘制作成安装盘,然后把安装镜像复制进 U 盘的存储空间。 Linux 下烧录教程请移步 Linux 下制作 U 盘安装镜像
- 关闭 BIOS 中的安全启动
- 关闭 Windows 的快速启动功能(忘了是否有影响了,不过关了也放心)
提示最好在虚拟机里尝试安装一次再操作物理机,稳妥永不过时。
安装镜像的系统中自带 vim、nano 等文本编辑器,后者用法简单,百度一下就会了。
进入 U 盘的安装系统
U 盘插入电脑后开机,按功能键进入启动菜单(Boot Menu),如 F7 或 F12 等(不同电脑牌子或主板不同),选择 U 盘对应启动项。不清楚就百度搜索自己的电脑型号如何进入启动菜单。
如果字太小,setfont ter-132b 临时换个大的终端字体。
联网
网线连接一般自动配置好了。
如果从 WiFi 连接,用
iwctl
。
然后 ping baidu.com 测试联网,如果大约每秒都出现一行新结果,表明网络畅通。
磁盘分区与格式化
警告千万不要装错硬盘! 防止不小心格式化其他盘,本文以
sdX代称。
使用 lsblk 命令得知硬盘的「名字」。
硬盘分区的「名字」举例:
/dev/sdc3:硬盘/dev/sdc上的第 3 个分区/dev/nvme2n5p3:硬盘/dev/nvme2n5上的第 3 个分区
| 我的方案 | 建议大小 | 作用 | 文件系统 | 分区 | 挂载点位 |
|---|---|---|---|---|---|
| 1 GiB | 1 GiB | 引导分区 | fat32 | /dev/sdX1 | /efi |
| 剩余所有空间 | 剩余所有空间 | 根分区 | btrfs | /dev/sdX2 | / |
使用 fdisk /dev/sdX 命令进入交互式分区。
| |
然后用 fdisk -l /dev/sdX 检查分区结果。
格式化分区:
| |
创建 Btrfs 子卷:
| |
现在按照设计好的布局挂载,特别注意挂载选项 noatime,compress=zstd 对性能和空间非常有益。
警告如果需要预留给虚拟机用的子卷,记得在参数中关闭 CoW。
| |
安装基础系统与配置
用 Reflector 设置镜像源:
| |
如果是 AMD CPU 把 intel-ucode 换成 amd-ucode。
| |
此时将进入硬盘内的系统。
时区与本地化:
| |
编辑 /etc/locale.gen,找到 en_US.UTF-8 UTF-8 和 zh_CN.UTF-8 UTF-8,取消行首注释。
| |
网络与用户:
| |
赋予 wheel 用户组管理员权限,nvim 换成你用的编辑器名字。
| |
找到 # %wheel ALL=(ALL:ALL) ALL,删掉开头的 #,保存退出。
有几行比较像,别找错了。
配置 GRUB :
如果需要多系统引导,安装 os-prober 并修改 /etc/default/grub,删除下面这行开头的 #:
| |
| |
系统优化
配置 Zram 。 比起传统的硬盘交换空间,Zram 在内存中动态压缩,速度极快。
| |
创建配置文件 /etc/systemd/zram-generator.conf,内容如下:
| |
下次重启后会自动生效。
固态硬盘开启 TRIM 定时器 ,机械硬盘请忽略。
| |
Intel CPU 安装 Thermald ,防止过热降频。
| |
笔记本电脑安装
TLP
,节省电量。
屏蔽 systemd-rfkill.service 服务和 systemd-rfkill.socket 套接字避免冲突。
| |
Pacman 与包管理优化
虽然设置了软件包缓存 @pkg 子卷,但它不会自动清理。
用以下命令设置定时自动清理。
| |
还可以用钩子在安装的时候自动清理,详细配置参考 Pacman#清理包缓存 。
内核参数微调。减少磁盘写入、提升网络和内存响应。
创建 /etc/sysctl.d/99-custom.conf 添加以下内容:
| |
(可选) Powertop 主要用来查看哪些设备耗电高,并不会在后台持续修改系统设置。
| |
- TLP 和 Thermald 可以共存:它们的职责不同。一个主攻省电策略,一个主防 CPU 过热,一起用没有问题。
- TLP 和 Powertop 存在冲突风险:它们本身不冲突,但功能会「打架」。
Powertop 有一个 --auto-tune 功能,运行后会立刻将许多内核参数调到最省电状态。
如果此时 TLP 也在运行,TLP 会按自己的配置文件把设置改回来,两者会反复覆盖相同的设置,导致行为不可预测。
如果日常使用 TLP,就不要使用 powertop --auto-tune 来自动优化,更不要把它设成开机自启。
只把 Powertop 当诊断工具用就好。
用 TLP 负责日常的自动化省电,用 Thermald 负责控制温度。
Powertop 只在你需要排查耗电原因时手动运行。
CTRL + D 退出 chroot 环境并重启
| |
重启后安装其他软件
配置 Arch Linux CN 仓库和 AUR:
参考
清华源帮助
在 /etc/pacman.conf 末尾加上
| |
之后安装 archlinuxcn-keyring 包导入 GPG key。
| |
AUR helper 推荐 paru
| |
平时编译 AUR 包时可以多线程,添加环境变量:MAKEFLAGS="-j$(nproc)",这样 makepkg 会自动用满所有核心。
显卡驱动(Intel + NVIDIA)。
NVIDIA 已经停止支持我的 MX250 了,因此我安装另一个版本。
如果你的 NVIDIA 显卡还在支持范围,直接安装 nvidia。
| |
以后可以用 prime-run 程序名 来指定用 N 卡运行。
nvidia-580xx-dkms 将以 DKMS 形式安装,需要 linux-headers。
ly:比较简单的登录管理器,也可以用sddm等好看的代替niri: 可滚动平铺的 Wayland 合成器swaybg:壁纸工具,不止用于Swayxwayland-satellite:在 XWayland 运行 X11 程序xdg-desktop-portal-gtk:XDG 桌面后端(应该可以随着安装依赖直接装上)xdg-desktop-portal-gnome:Niri用它截屏(应该也可以跟着安装依赖装上)
noctalia-shell:完整的桌面 shell,代替waybar、fuzzel、mako等cliphist:剪切板wlsunset:夜间模式支持python-pywalfox:给 Firefox 提供主题同步
foot:比较简单的 Wayland 终端模拟器,也可以用kitty等Yazi:终端文件管理器,更习惯 GUI 可以用dolphin等fd:文件搜索resvg:SVG 预览7zip:压缩包支持
fcitx5-rime和rime-ice-pinyin-git:雾凇拼音,基于 Rime 输入法,Fcitx5 框架fcitx5-nord:一个主题
npm:lazyvim 的部分插件需要ntfs-3g:用于支持 NTFS 文件系统terminus-font:终端字体,在没加载图形界面时可用,如运行setfont ter-132bnoto-fonts-cjk:Noto 中文字体noto-fonts-emoji:Noto emoji 字体man-db和man-pages-zh_cn:系统帮助文档tree:查看文件夹的树形结构的终端小工具pipewire-audio、pipewire-alsa、pipewire-pulse:多媒体框架,如果没声音就装上firefoxfirefox-i18n-zh-cn:火狐和中文包chromium:咕鸽浏览器loupe:比较简单的图片查看器gthumb:功能多点的图片查看器mpv:音视频播放器wps-office-cn:WPS 个人版wps-office-mime-cn:MIME 格式支持wps-office-mui-zh-cn:中文语言包
github-cli:Github 的命令行界面客户端,浏览器打不开 Github 时可以作为备选方案。
安装时说不定会遇到几个选择,以下几个是我的推荐,其它的可以自行决定:
- jack 后端:选择
jack2 - pipewire 后端:选择
wireplumber - 终端字体:我觉得
noto-fonts好看 - nerd 字体:个人选择
ttf-nerd-fonts-symbols
系统配置
字体
添加单独的字体文件,要复制到 ~/.local/share/fonts 里,然后运行命令 fc-cache 增量更新字体缓存。
也可 fc-cache -fv 强制重新生成所有缓存并显示过程。
更多内容见
字体
用户的全局字体设置在 /.config/fontconfig/fonts.conf,比如指定默认的无衬线体(sans-serif)、衬线体(serif)、等宽字体(monospace)。更多内容见
Fontconfig 配置
环境变量
系统级别的全局环境变量一般配置在 /etc/environment 就行。
/etc/profile 和 /etc/profile.d/ 的作用如有需要自行学习。
各 shell 自己的全局环境变量见各自的配置,如
Bash 配置文件
和
Zsh 启动/关闭文件
。
systemd 的用户环境变量在 ~/.config/environment.d/*.conf。
更详细的可参考
systemd 环境变量
。
详细内容见 ArchWiki 中 环境变量 。
Foot 配置
/etc/locale.conf 的 LANG=en_US.UTF-8 可能会覆盖 ~/.config/environment.d/ 中语言的环境变量,导致 man 不是中文。
可以在 ~/.config/foot/foot.ini 配置 [environment]。
除此之外,字体类似这么写:
| |
Zsh 配置
安装了 grml-zsh-config 之后会自动加载它的配置。
zsh 自带的初始化步骤挺好的,虽然是全英文,但是可以找 AI 帮忙翻译并出出主意。我的配置文件如下(补全功能还没捣鼓 Zsh 自带的高级配置,回头再搞):
| |
Yazi 配置
添加 git 和 vcs-file 两个插件:
| |
倘若 Yazi 无法打开 WPS 文档、无法默认调用想要的软件打开图片。
需要添加格式关联,在 ~/.config/yazi/yazi.toml 写入 opener 和 open 的 rules即可。
这是我根据
官方的默认配置
写的:
| |
GRUB 中文
如果想让 GRUB 的菜单什么的也设为中文,可以重新生成一下。
| |
困难备注
WPS
WPS 的整合版本体、表格或演示无法用启动器打开,可能是本体设为了整合版+系统没……怎么说呢……没联系起来(?)导致的。
先开一次 WPS,比如命令行直接运行 wps,然后随便开一个文档,新建也行,会弹出设为默认软件的选项。
此时点同意,就会在 .config/mimeapps.conf 添加格式的关联。