安装和使用Archlinux
终于,我还是安装并使用 Archlinux 了。
一写 Linux 我就想把我使用它的历史给说一下,我从 Ubuntu 8.04 一直用到 Ubuntu 18.04,因为我非常非常非常不喜欢 Gnome3 这个反人类的桌面系统,所以之后使用的都是 Deepin 了。
关于 Archlinux 很早就听说了,但是一直没去使用,原因就是我比较喜欢 Debian 系的操作系统,而 Deepin 的桌面环境我挺喜欢的,并且也是基于 Debian,所以我从 Ubuntu 转向 Gnome3 之后就开始使用 Deepin 了。
但是 Deepin 的小毛病让人抓狂,而 Archlinux 又是很多玩 Linux 的人推荐的,于是我就开始安装 Archlinux 进行尝试了。
我选的是 Systemd Boot + Btrfs + KDE + Wayland,最开始是在 2022 年使用 archinstall 脚本安装的,最近一年遇到很多次无法启动的问题,而最近一次直接无法修复,今天(2025年10月)终于找时间重新安装了。
我是在笔记本上安装的 Windows + Archlinux 双系统,记录一下安装步骤:
镜像制作
我用的是 Ventoy 这个工具,既能把U盘做启动盘又能保持U盘原本的用途,曾经还给 Ventoy 捐过款。
连接无线网络
进入 archiso 之后,需要连接无线网络,这样后续安装才更加方便。
具体步骤是:
- 先查看 wlan 是否被 rfkill 禁用了
- 如果被 rfkill 禁用的话,需要先解除
- 连接无线网络,查看状态以确认连接成功了
rfkill
rfkill unblock wlan
iwctl --passphrase wifi-password station wlan0 connect WiFi-SSID
iwctl station wlan0 show确保系统时间准确
这个通常都是准确的。
timedatectl status分区和格式化
使用 Btrfs 文件系统,创建一个分区,在分区上创建两个子卷分别作为根目录和用户目录。
/根目录/home用户目录/bootEFI分区,如果没有就配置1GB,有的话不变Swap分区,10GB 够了
运行cfdisk工具进行创建及调整分区,具体步骤:
- 选中
Free space后,在下面操作中选择New,填写分区大小,按回车创建 Swap 分区 - 选中创建的分区,在下面操作中选择
Type,在其中选择Linux swap,回车保存 - 选中
Free space后,在下面操作中选中New,填写分区大小(可以设置成整个剩余空间),按回车创建根分区 - 在下面操作中选中
Write,然后回车确认分区操作 - 然后可以使用
fdisk -l来查看分区情况
格式化分区并创建 Btrfs 子卷:
mkswap /dev/nvme0n1p5
mkfs.btrfs -L Archlinux /dev/nvme0n1p6
mount -t btrfs -o compress=zstd /dev/nvme0n1p6 /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume list -p /mnt
umount /mnt挂载分区
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p6 /mnt
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p6 /mnt/home
mkdir -p /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p5安装系统
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
pacstrap /mnt networkmanager vim sudo bash bash-completions git生成 fstab
genfstab -U /mnt > /mnt/etc/fstab
lsbid # 查看分区UUID设置系统并安装软件
arch-chroot /mnt
vim /etc/hostname
vim /etc/hosts
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
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
pacman -S amd-ucode # 或者 pacman -S intel-ucode设置引导程序
bootctl install
vim /boot/loader/entries/arch.conf
bootctl update
bootctlarch.conf 内容
title Arch Linux (linux)
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=7955e7ce-d79a-4c5a-a192-04155a80b043 rootflags=subvol=@ rootfstype=btrfs安装图形界面
useradd -m zhiwei -s /usr/bin/bash zhiwei
passwd zhiwei
echo '%zhiwei ALL=(ALL:ALL) ALL' > /etc/sudoers.d/zhiwei
pacman -S plasma-meta konsole dolphin plasma-workspace xdg-desktop-portal
pacman -S mesa xf86-video-amdgpu vulkan-radeon
systemctl enable sddm.service NetworkManager.service使用问题
网络
管理网络的工具主要有 systemd-networkd/systemd-resolved 和 Network Manager,在台式机可以用前者,笔记本因为要连 WiFi,所以通常用后者。
systemd-networkd 连接无线网络的话需要和 iwd 配置使用,在命令行连接无线网络,有点小麻烦,并且 systemd-networkd 没有对应的图形管理界面,无法和 KDE 集成。
我的笔记本是用的 Network Manager,使用时需要禁用 systemd-networkd 和 iwd,当然也可以将 iwd 卸载掉:
systemctl disable systemd-networkd.service systemd-networkd.socket systemd-resolved.service iwd.service
systemctl stop systemd-networkd.service systemd-networkd.socket systemd-resolved.service
systemctl start NetworkManager.service
systemctl enable NetworkManager.service
pacman -Rs iwd时间
网络连通之后检查一下时间是否正确,如果正确的话,需要同步到硬件:
sudo hwclock --systohc进入 Windows 系统,设置其使用 UTC 时间,原因是 Hardware Clock 是 UTC 时间,而 Windows 默认是本地时间,这会导致不一致。
Open regedit and add a DWORD value with hexadecimal value 1 to the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal这个挺有用的,我代理上网工具依赖正确的时间,而时间不正确会导致代理不工作,进而影响时间同步,然后进入死循环了。
我现在是把 NTP 服务器地址加入 Bypass 列表了,这样应该就不会影响到时间进而进入死循环了。
输入法
输入法使用 Fcitx5,官方文档就有相关说明。我是使用 Fcitx5 + Rime 的,所以:
pacman -S fcitx5 fcitx5-rime fcitx5-qt fcitx5-gtk fcitx5-configtool中文字体
pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
mkdir -p ~/.config/fontconfig
cd ~/.config/fontconfig
wget https://github.com/chenzhiwei/mnde/raw/master/home/.config/fontconfig/fonts.confAur yay
yay snipasteFlatpak
让 Flatpak 程序使用系统字体:
flatpak override --user --filesystem=xdg-config/fontconfig:roChrome Broswer
git clone https://aur.archlinux.org/google-chrome.git
cd google-chrome
makepkg
pacman -S google-chrome-*.zst
pacman -U google-chrome-*.zst其他软件包
sudo pacman -S android-tools bind podman skopeo netavark aardvark-dns unrar unzip whois zip jq less man问题
用了两年多,遇到了个问题loading failed, \vmlinuz-linux not found,我进入 LiveCD 后发现 ESP 分区是有这个文件的,估计是哪里损坏了,重做一下即可:
进入 Archlinux LiveCD,可提前备份里面的Windows系统启动文件,后面遇到问题可放进去后再运行bootctl install来重新配置systemd-boot:
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p6 /mnt
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p6 /mnt/home
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p5
arch-chroot /mnt
mount -a
pacman -S linux
bootctl update参考
Arch Linux 简明安装:https://arch.icekylin.online/guide/rookie/basic-install.html