Appearance
安装 Arch
背景
大环境往信创发展,Windows/MacOS 摆烂,都在指引我们走向 Linux。
为什么
针对大环境的情况,我们可以选择 debian 系的 Linux,往往有更快的国产软件包支持。
针对普适性的情况,可以选择 Arch,有更新的软件包支持,缩短 bug 留存时间。同时很快移植 debian 系中的国产软件包。
Windows 的问题
- 莫名其妙卡顿,但系统资源占用率低
- 终端默认使用 GBK 编码,导致程序执行容易乱码,如 go、zig 执行
Linux 的问题
- 缺少专有软件(寻找替代品含网页版,创造替代品)
- 遇到问题难以解决,往往需要对系统有一定的熟悉度(问 GPT)
如何安装
○ 准备
- 预留空闲分区
- 下载 arch iso 镜像,存放至 ventoy 移动盘中
- 重启,按 f12 进入 安装
适用性
注意适用情况
难点
- 区分安装环境与结果环境
- 区分终端脚本与交互脚本(iwctl、wim 等)
- 区分硬盘、分区、卷、子卷
○ 连接 wifi
sh
# 连接 wifi
# 忽略下方 [iwd],进表示在 iwctl 中执行
iwctl
[iwd] device list
[iwd] exit
rfkill list
ip link set wlan0 up
# 如果看到 Operation not possible due to RF-kill,执行
rfkill unblock wifi
# 扫描
iwctl
[iwd] station wlan0 scan
[iwd] station wlan0 get-networks
[iwd] station wlan0 connect ${wifi_name}
[iwd] exit
ping www.bilibili.com
○ 更新系统时钟
sh
# 更新系统时钟
timedatectl set-ntp true
timedatectl status
○ 更新镜像源
sh
# 更新镜像源
reflector -c China --sort score --save /etc/pacman.d/mirrorlist
# 去掉一些经验中比较慢的
vim /etc/pacman.d/mirrorlist
# 禁用 reflector 自动更新,避免后续镜像被替换
systemctl stop reflector.service
systemctl status reflector.service
#(可选)pacman 并行下载 + 颜色
vim /etc/pacman.conf
# 删除 Misc options 下的 Color 和 ParallelDownloads 前面的注释
○ 分区
sh
# 检查 UEFI
ls /sys/firmware/efi/efivars
# 查看分区
# 查看硬盘及分区,概览
lsblk
# 查看硬盘及分区,详情
fdisk -l
# 查看当前挂载情况
df -h
# cfdisk 分区
cfdisk /dev/nvme0n1
# /dev/nvme0n1p1,EFI System,1G。已有则无需创建
# /dev/nvme0n1p2,free space -> new -> type swap -> 8G,用于休眠
# /dev/nvme0n1p3,free space -> new -> type Linux FileSystem
# write -> quit
# 格式化 EFI 分区,如双系统则不用
mkfs.fat -F32 /dev/nvme0n1p1
# 格式化 swap 分区
mkswap /dev/nvme0n1p2
# 在上一步新建的默认分区中,创建 btrfs 分区(注意硬盘分区正确)
# 格式化 btrfs 分区
mkfs.btrfs -L ${分区名称 myArch} /dev/nvme0n1p3
# 挂载 btrfs 分区并创建子卷
mount -t btrfs -o compress=zstd /dev/nvme0n1p3 /mnt
# 检查挂载情况
df -h
# 创建子卷
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@snapshots
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@cache
# 检查子卷
btrfs subvolume list -p /mnt
# 卸载 btrfs 分区
umount /mnt
# 重新挂载 btrfs 文件系统,有序,先根目录再子卷
mount -t btrfs -o subvol=/@,compress=zstd /nvme0n1p3 /mnt
mkdir -p /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /nvme0n1p3 /mnt/home
mkdir -p /mnt/.snapshots
mount -t btrfs -o subvol=/@snapshots,compress=zstd /nvme0n1p3 /mnt/.snapshots
mkdir -p /mnt/var/log
mount -t btrfs -o subvol=/@log,compress=zstd /nvme0n1p3 /mnt/var/log
mkdir -p /mnt/var/cache
mount -t btrfs -o subvol=/@cache,compress=zstd /nvme0n1p3 /mnt/var/cache
# 同时挂载 EFI 分区
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
# 同时挂载 swap 分区
swapon /dev/nvme0n1p2
# 检查
df -h
free -h
# 基于当前挂载生成系统自动挂载信息
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
○ 预装 arch
预备
必须先完成上一步“重新挂载 btrfs 文件系统”的操作
sh
# 往挂载位置安装基础包,\ 表示可忽略的换行(提升可读性)
pacstrap /mnt \
base base-devel linux linux-firmware btrfs-progs \
networkmanager vim sudo git \
noto-fonts-cjk noto-fonts-emoji
# 安装微码,或 intel-ucode
pacstrap /mnt amd-ucode
○ 设置 arch
预备
必须先完成上一步“预装 arch”的操作
sh
# 切换到结果环境(最终系统环境 arch)
arch-chroot /mnt
# 添加 hostname
echo '${hostname}' -> /etc/hostname
# 添加 hosts,host 中间用 tab 而不是空格
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置硬件时间
hwclock --systohc
# 设置语言
vim /etc/locale.gen
# 放开 en_US.UTF-8.UTF-8, zh_CN.UTF-8.UTF-8
locale-gen
# 不推荐系统中文,避免 tty 乱码
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# root 密码
passwd root
# 添加新用户
useradd -m -G wheel -s /bin/bash ${user}
passwd ${user}
# wheel 用户组使用 sudo 无需密码
visudo
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
# 安装引导程序
pacman -S grub efibootmgr os-prober
# 安装 grub 到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# 编辑 grub
vim /etc/default/grub
# 修改 GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"
# 新增 GRUB_DISABLE_OS_PROBER=false
# 生成 grub 配置
grub-mkconfig -o /boot/grub/grub.cfg
# 退出结果环境,拔出 U 盘,重启
exit
umount -R /mnt
reboot
○ 安装后
sh
# 非 root 登录
# 启动+开机自启网络管理
systemctl enable --now NetworkManager
ping www.bilibili.com
# 连接网络
nmtui
# 查看系统信息,非必须
pacman -S fastfetch
fastfetch
# 安装桌面 kde plasma,精简安装
# 参考包合集中的子包合集: https://archlinux.org/packages/extra/any/kde-applications-meta/
# 参考 KDE 推荐包:https://community.kde.org/Distributions/Packaging_Recommendations
sudo pacman -S plasma sddm kde-utilities-meta kde-system-meta
sudo pacman -S gwenview kdegraphics-thumbnailers koko spectacle
systemctl enable sddm
# 重启
# 设置 -> 区域和语言 -> 简体中文
# 重启不保留会话
# 设置 -> 桌面会话 -> 以空会话启动
# 更改 SDDM 样式:设置 -> 登录屏幕
# 如果没有识别 windows boot manager
sudo grub-mkconfig -o /boot/grub/grub.cfg
# 安装 nerd fonts
mkdir -p ~/.local/share/fonts
mv ~/Downloads/JetBrainsMono/* ~/.local/share/fonts/
fc-cache -fv
fc-list | grep ${font_name}
# 通用字体修改,配合 fonts.conf 使用
sudo pacman -S noto-fonts inter-font noto-fonts-cjk noto-fonts-emoji ttf-sarasa-gothic
# 使用字体配置,下载:https://github.com/szclsya/dotfiles/blob/master/fontconfig/fonts.conf
# 修改 monospace 的 family 为 JetBrainsMonoNL NF
mkdir -p ~/.config/fontconfig
cp ./fonts.conf ~/.config/fontconfig/
# 更换 shell,可选
sudo pacman -S zsh
chsh -s /bin/zsh
# Konsole 配置 -> 新建 -> 命令 zsh
# 重启 Konsole
#(可选)安装 oh-my-zsh
# 添加源,彩色、并行下载
kate /etc/pacman.conf
# 去除 multilib 分组的注释,并添加
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# 生效
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
sudo pacman -Sy archlinuxcn-keyring
# 安装 paru(yay 增强版)
# 需提前安装 cargo,如果通过 archlinuxcn 源安装则不需要
sudo pacman -S paru
kate /etc/paru.conf
# 去除 BottomUp 前面的注释
# 安装浏览器
sudo pacman -S firefox falkon
# 安装输入法,二选一(方案2完美)
sudo pacman -S fcitx5-im fcitx5-rime
paru fcitx5-input-support
# 设置 -> 虚拟键盘 -> fcitx5 wayland
# 设置 -> 输入法 -> 添加 rime
# 集成薄荷输入法 -> 修改配置中的输入法方案和自定义短语 -> 重新部署
# 修改应用启动参数,支持输入
# 按 win -> 右击应用 -> 编辑应用程序 -> 参数
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
# 查询已安装的软件,并卸载
paru -Ss ${keyword}
paru -Rs ${name}
参考
- archlinux 简明指南
- 安装 Arch Linux 和 KDE Plasma 6 & 配置 fcitx5-rime 输入法 | 轻度美化 | 双系统/虚拟机 (2024.6.1),wayland 新版本参考
- Intel NUC 安装 Arch Linux 历险记,x11 旧版本参考
- Arch安装|Senzyo,X11 旧版本参考,推荐
- Azure Zeng Blog,arch 安装非常详细,用户组与权限,音频驱动,kde 软件包精简安装
- 和 Arch Linux 打交道其二:又一次大动干戈,arch,kde 精简安装
- Arch Linux + KDE安装教程,arch,kde 精简安装,声音驱动详解
- ArchLinux on Y9000P2022十分好用,就是有点难用,arch,多显示器,蓝牙耳机
- 简陋的 Win on Linux 兼容方案,win on linux,kvm,博客体积压缩
- Linux 下的字体调校指南
- Arch Linux 配置 — Btrfs与系统备份
- 现代化的 Archlinux 安装,Btrfs、快照、休眠以及更多。 - 少数派