抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

@林长枫709视频教程wiki启发,我打算将ArchLinux作为日常使用的操作系统。自11月16日安装完成至今过去了大概1个月,期间我只启动了Windows两次,而且都是因为Office的问题,ArchLinux应该是完全能胜任日常使用的工作的。

Ventoy可以在一块U盘上存放多个ISO镜像,多余的空间可以作为一般的U盘使用,十分方便。插入Ventoy U盘时,要启动到已安装的系统,可以按F2浏览硬盘,找到EFI分区中对应的EFI文件回车即可。

Btrfs支持增量快照、透明压缩、Copy-on-Write、管理子卷,相比ext4有更多功能。自Fedora 33 (2021-02-03)起,Fedora默认使用btrfs作为文件系统。openSUSE也默认使用btrfs作为文件系统,并通过snapper管理快照。

磁盘分区

主板如果是UEFI模式,就需要有ESP(EFI System Partition),用于安装Bootloader。Windows的系统盘里有一块大概100M的分区就是EFI分区,如果电脑只有一块磁盘就需要和Windows共用这个EFI分区,在下一步跳过EFI分区的格式化。通过cfdisk分区时,需要将ESP的分区类型设置为EFI System,剩余空间创建为Linux System的分区即可。

格式化分区

在格式化分区前,可以通过fdisk -llsblk查看分区情况。

将ESP格式化为FAT32:

1
mkfs.fat -F 32 /dev/sdxY

将另一个分区格式化为btrfs:

1
mkfs.btrfs /dev/sdxY

管理btrfs子卷

如果不想系统快照包含某些路径,可以将这些路径创建为单独的子卷,比如/home/var/log/var/tmp/var/cache/var/lib/docker/var/lib/libvirt等。snapper会自动在/.snapshots创建子卷,不需要手动创建。 ### 创建子卷

挂载分区:

1
mount -t btrfs -o compress=zstd /dev/sdxY /mnt

在分区中创建子卷:

1
2
3
4
5
6
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@swap
btrfs subvolume create /mnt/@var-log
btrfs subvolume create /mnt/@var-tmp
btrfs subvolume create /mnt/@var-cache

关闭@swap@var-cache子卷的CoW属性:(待考证)

1
2
chattr +C /tmp/btrfs-full/@swap
chattr +C /tmp/btrfs-full/@var-cache

查看子卷:

1
btrfs subvolume list -p /mnt

挂载子卷

挂载子卷前先把上一步挂载的分区取消挂载:

1
umount /mnt

挂载子卷:

1
2
3
4
5
6
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxY /mnt
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/sdxY /mnt/home
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/sdxY /mnt/swap
mount --mkdir -t btrfs -o subvol=/@var-log,compress=zstd /dev/sdxY /mnt/var/log
mount --mkdir -t btrfs -o subvol=/@var-tmp,compress=zstd /dev/sdxY /mnt/var/tmp
mount --mkdir -t btrfs -o subvol=/@var-cache,compress=zstd /dev/sdxY /mnt/var/cache

顺便挂载ESP:

1
mount --mkdir /dev/sdxY /mnt/efi

删除子卷

查看子卷ID:

1
btrfs subvolume list /mnt
或:
1
btrfs inspect-internal rootid /mnt

挂载分区:

1
mount -t btrfs -o subvolid=0 /dev/sdxY /mnt

查看子卷:

1
2
ls -a /mnt
# . .. @ @home @swap @xxx ...

删除子卷:

1
btrfs subvolume delete /mnt/@xxx

创建swap文件

与其他文件系统不同,在btrfs上创建swapfile需要使用btrfs命令。

在btrfs上创建swapfile:

1
btrfs filesystem mkswapfile --size 32g --uuid clear /mnt/swap/swapfile

在其他文件系统上创建swapfile:

1
mkswap -U clear --size 4G --file /swapfile

swap分区则无法动态调整大小。格式化swap分区:

1
mkswap /dev/sdxY

开启、关闭swap:

1
2
swapon /swap/swapfile
swapoff /swap/swapfile

关于swap的一些补充

设置镜像

pacman

备份当前mirrorlist:

1
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

reflector自动设置镜像:

1
2
3
4
5
6
7
8
reflector -a 24 -c cn -f 10 --sort score --save /etc/pacman.d/mirrorlist --v

-a(age) 24 指定最近24小时更新过的源
-c(country) cn 指定国家为中国(可以增加邻国)
-f(fastest) 10 筛选出下载速度最快的10个
--sort score 按照下载速度和同步时间综合评分并排序,比单纯按照下载速度排序更可靠
--save /etc/pacman.d/mirrorlist 将结果保存到/etc/pacman.d/mirrorlist
--v(verbose) 过程可视化

archlinuxcn

添加archlinuxcn源:

1
2
3
4
5
6
# /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch

安装archlinuxcn-keyring:

1
sudo pacman -Sy archlinuxcn-keyring

pip

upgrade pip:

1
python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip

设置pypi镜像:

1
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

设置多个镜像:

1
pip config set global.extra-index-url "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

取消设置:

1
pip config unset <config-name>

uv

1
2
3
4
# ~/.config/uv/uv/toml or /etc/uv/uv.toml
[[index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/"
default = true

git

全局自动替换url:

1
git config --global url."https://gh-proxy.org/https://github.com/".insteadOf "https://github.com/"

取消设置:

1
git config [--local | --global | --system] --unset <key>

snapper管理快照

安装snapper:

1
sudo pacman -S snapper snap-pac btrfs-assistant

自动生成快照启动项:

1
2
sudo pacman -S grub-btrfs inotify-tools
sudo systemctl enable --now grub-btrfsd

设置overlayfs:

1
2
# /etc/mkinitcpio.conf
HOOKS= ( ...... grub-btrfs-overlayfs )

重新生成initramfs和grub启动项:

1
2
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg

软件列表

KDE Integrated

KDE的系统设置里如果缺少软件包会提示支持哪些软件,直接按照名字安装即可。

电源管理:

1
yay -S power-profiles-daemon

固件信息等:

1
yay -S fwupd

Tencent

1
yay -S linuxqq-appimage # wechat-appimage 微信有时会在后台闪退,换flatpak版就没有问题了

Dolphin Integrated

显示视频缩略图:

1
yay -S ffmpegthumbs

文件压缩:

1
yay -S ark

Input Method

1
yay -S fcitx5-im fcitx5-rime rime-ice-double-pinyin-flypy-git fcitx5-mozc
1
2
# /etc/environment
XMODIFIERS=@im=fcitx
1
2
3
4
# ~/.local/share/fcitx5/rime/default.custom.yaml 
patch:
schema_list:
- schema: double_pinyin_flypy

Local ArchWiki

1
yay -S arch-wiki-docs

添加一个应用,命令和参数为firefox /usr/share/doc/arch-wiki/html/en/Main_page.html。在KDE上可以设置成“其他”分类里的archlinux-logo图标。

所有软件

1
yay -Qe
alsa-firmware 1.2.4-4  
alvr-nvidia 20.14.1-3  
android-tools 35.0.2-23  
arch-wiki-docs 20251202-1  
archlinuxcn-keyring 20250531-1  
ark 25.12.0-1  
aurorae 6.5.4-1  
baobab 49.1-1  
base 3-2  
base-devel 1-2  
bluedevil 1:6.5.4-1  
breeze 6.5.4-1  
breeze-gtk 6.5.4-1  
breeze-plymouth 6.5.4-1  
btop 1.4.5-1  
btrfs-assistant 2.2-4  
btrfs-progs 6.17.1-1  
clang 21.1.6-1  
cmatrix 2.0-4  
cuda 13.0.2-3  
discord 1:0.0.119-1  
discover 6.5.4-1  
distrobox 1.8.2.2-1  
docker-compose 5.0.0-1  
dolphin 25.12.0-1  
dosfstools 4.2-5  
downgrade 11.5.5-1  
drkonqi 6.5.4-1  
easyeffects 8.0.8-1  
efibootmgr 18-3  
evtest 1.36-1  
exfatprogs 1.3.1-1  
eza 0.23.4-1  
f2fs-tools 1.16.0-3  
fastfetch 2.56.0-1  
fcitx5 5.1.16-1  
fcitx5-configtool 5.1.11-1  
fcitx5-gtk 5.1.4-2  
fcitx5-mozc 2.32.5994.102.g7cd777dbb-1  
fcitx5-qt 5.1.11-3  
fcitx5-rime 5.1.12-1  
festival-english 2.5-3  
festival-freebsoft-utils 0.10-2  
ffmpegthumbs 25.12.0-1  
firefox 146.0.1-1  
firejail 0.9.76-3  
fish 4.2.1-1  
fisher 4.4.5-1  
flatpak-kcm 6.5.4-1  
flatseal 2.4.0-3  
foliate 3.3.0-2  
fwupd 2.0.19-1  
gamemode 1.8.2-1  
git-lfs 3.7.1-1  
gnome-disk-utility 46.1-2  
grub 2:2.14rc1.r54.g29f3131a-2  
grub-btrfs 4.14-1  
grub-theme-minegrub 3.1.0-2  
gwenview 25.12.0-1  
haruna 1.6.0-1  
inotify-tools 4.25.9.0-1  
intel-gpu-tools 2.2-1  
intel-media-driver 25.3.4-1  
intel-ucode 20251111-1  
joyutils 1.8.1-3  
jre-openjdk 25.0.1.u8-1  
jstest-gtk-git 0.1.0.r127.g92bdf8e-1  
kactivitymanagerd 6.5.4-1  
kate 25.12.0-1  
kcalc 25.12.0-1  
kde-cli-tools 6.5.4-1  
kde-gtk-config 6.5.4-1  
kdeconnect 25.12.0-1  
kdecoration 6.5.4-1  
kdeplasma-addons 6.5.4-1  
kfind 25.12.0-1  
kgamma 6.5.4-1  
kglobalacceld 6.5.4-1  
kinfocenter 6.5.4-1  
kmenuedit 6.5.4-1  
knighttime 6.5.4-1  
konsole 25.12.0-1  
kpipewire 6.5.4-1  
krdp 6.5.4-1  
kscreen 6.5.4-1  
kscreenlocker 6.5.4-1  
ksshaskpass 6.5.4-1  
ksystemlog 25.12.0-1  
ksystemstats 6.5.4-1  
kubectl 1.34.3-1  
kwallet-pam 6.5.4-1  
kwalletmanager 25.12.0-1  
kwayland 6.5.4-1  
kwin 6.5.4-3  
kwin-x11 6.5.4-1  
kwrited 6.5.4-1  
layer-shell-qt 6.5.4-1  
lazygit 0.57.0-1  
less 1:685-1  
lib32-gamemode 1.8.2-1  
lib32-nvidia-utils 580.119.02-1  
lib32-vulkan-icd-loader 1.4.335.0-1  
lib32-vulkan-intel 1:25.3.2-1  
libkscreen 6.5.4-1  
libksysguard 6.5.4-1  
libplasma 6.5.4-1  
libreoffice-still 25.2.7-4  
libreoffice-still-zh-cn 25.2.7-1  
libva-utils 2.22.0-1  
libvpl-tools 1.5.0-1  
linux 6.18.1.arch1-2  
linux-firmware 20251125-2  
linux-headers 6.18.1.arch1-2  
linuxqq-appimage 3.2.22_20251203-1  
localsend 1.17.0-2  
man-db 2.13.1-1  
man-pages 6.16-1  
mangohud 0.8.2-2  
micromamba 2.4.0-1  
milou 6.5.4-1  
mission-center 1.1.0-1  
ncdu 2.9.2-1  
neovim 0.11.5-1  
networkmanager 1.54.3-1  
ninja 1.13.2-1  
noto-fonts-cjk 20240730-1  
npm 11.6.4-1  
ntfs-3g 2022.10.3-2  
nvidia 580.119.02-2  
nvidia-container-toolkit 1.18.1-1  
nvidia-prime 1.0-5  
nvidia-settings 580.119.02-1  
nvidia-utils 580.119.02-1  
nvidia-vaapi-driver-git 0.0.14.r16.g2e204c6-1  
obsidian 1.10.6-1  
ocean-sound-theme 6.5.4-1  
openssh 10.2p1-2  
os-prober 1.83-1  
oxygen 6.5.4-1  
oxygen-sounds 6.5.4-1  
pacseek 1.8.6-1  
pandoc-cli 3.5-2  
perl-image-exiftool 13.44-1  
pipewire-alsa 1:1.4.9-2  
pkgfile 25-1  
plasma-activities 6.5.4-1  
plasma-activities-stats 6.5.4-1  
plasma-browser-integration 6.5.4-1  
plasma-desktop 6.5.4-1  
plasma-disks 6.5.4-1  
plasma-firewall 6.5.4-1  
plasma-integration 6.5.4-1  
plasma-nm 6.5.4-1  
plasma-pa 6.5.4-1  
plasma-sdk 6.5.4-1  
plasma-systemmonitor 6.5.4-1  
plasma-thunderbolt 6.5.4-1  
plasma-vault 6.5.4-1  
plasma-welcome 6.5.4-1  
plasma-workspace 6.5.4-1  
plasma-workspace-wallpapers 6.5.4-1  
plasma5support 6.5.4-1  
plymouth-kcm 6.5.4-1  
podman 5.7.1-1  
podman-desktop 1.23.1-1  
polkit-kde-agent 6.5.4-1  
power-profiles-daemon 0.30-1  
powerdevil 6.5.4-1  
print-manager 1:6.5.4-1  
protontricks 1.13.1-1  
protonup-qt 2.14.0-1  
qqc2-breeze-style 6.5.4-1  
qt5-multimedia 5.15.18+kde+r2-1  
rime-ice-double-pinyin-flypy-git r859.d93e60b-1  
rustdesk-bin 1.4.4-1  
rustup 1.28.2-4  
scrcpy 3.3.4-1  
sddm 0.21.0-6  
sddm-kcm 6.5.4-1  
sl 5.05-5  
snap-pac 3.0.1-3  
snapper 0.13.0-2  
sof-firmware 2025.12-1  
spectacle 1:6.5.4-1  
speech-dispatcher 0.12.1-2  
sshfs 3.7.3-3  
starship 1.24.1-1  
steam 1.0.0.85-1  
stow 2.4.1-1  
swaylock-effects 1.7.0.0-4  
systemsettings 6.5.4-1  
telegram-desktop 6.3.9-1  
tldr 3.4.3-2  
ttf-firacode-nerd 3.4.0-1  
udftools 2.3-2  
ufw 0.36.2-5  
unzip 6.0-23  
usbutils 019-1  
uv 0.9.18-2  
v2rayn-bin 7.16.6-1  
vdpauinfo 1.5-2  
vim 9.1.1975-1  
visual-studio-code-bin 1.107.1-1  
vkmark 1:2025.01-2  
vr-video-player r137.0410062-1  
vulkan-intel 1:25.3.2-1  
vulkan-validation-layers 1.4.335.0-1  
wacomtablet 6.5.4-1  
waybar 0.14.0-5  
webkit2gtk 2.50.4-1  
wemeet-bin 3.26.10.401-1  
wemeet-wayland-screenshare-git 3.19.2.400_hooked.r57.ga5d252d-1  
wireless-regdb 2025.10.07-1  
wqy-zenhei 0.9.45-10  
xdg-desktop-portal-kde 6.5.4-1  
xfsprogs 6.17.0-2  
xmcl-launcher 0.53.2-1  
xpadneo-dkms 0.9.7-2  
yay 12.5.7-1  
yazi 25.5.31-2  
zerotier-one 1.16.0-2  
zotero-bin 7.0.27-1  
zoxide 0.9.8-2

其他

Coredump设置

查看特定软件崩溃信息:

1
coredumpctl info /usr/bin/wechat

禁用coredump:

1
2
3
4
# /etc/systemd/coredump.conf.d/disable-coredump.conf
[Coredump]
Storage=none
ProcessSizeMax=0

限制corefile大小:

1
2
3
4
5
6
# /etc/systemd/coredump.conf.d/limit.conf    
[Coredump]
Storage=external
MaxUse=2G
ProcessSizeMax=100M
KeepFree=1G

通过systemd-tmpfiles定期删除corefiles:

1
2
# /etc/tmpfiles.d/systemd-coredump.conf    
D /var/lib/systemd/coredump 0755 root root 7d

zswap

ArchLinux默认启用zswap。查看zswap设置:

1
2
3
cat /sys/module/zswap/parameters/enabled

grep -R . /sys/module/zswap/parameters

管理软件包

功能 Arch (pacman + extra 工具) Debian/Ubuntu (apt/dpkg) Fedora (dnf) openSUSE (zypper)
安装包 pacman -S pkg apt install pkg dnf install pkg zypper install pkg
搜索包(名称) pacman -Ss keyword apt search keyword dnf search keyword zypper search keyword
查看包信息 pacman -Si pkg apt show pkg dnf info pkg zypper info pkg
列出已安装包 pacman -Q dpkg -lapt list --installed dnf list installed zypper search -i
查找文件属于哪个包 pacman -Qo /path/file dpkg -S /path/file dnf provides /path/file zypper search --provides --match-exact file

Arch 特有工具 vs 其他发行版对应功能

Arch 工具 功能 Debian/Ubuntu 对应命令
pkgfile 快速查找文件属于哪个包(即使未安装) apt-file search filename(需先 apt install apt-file && apt-file update
pactree 显示包的依赖树 apt-rdepends pkg(需安装 apt-rdepends)或 debtree(图形化)
paccache 清理 pacman 缓存(保留最新 N 个版本) apt autoclean(仅删旧缓存)
apt clean(全删)
无直接保留 N 版本功能,需脚本实现
pacman -Qtd 列出孤立包(orphan packages) `apt list --installed

Steam

添加multilib源后安装:

1
yay -S steam

VR

Linux 版的 SteamVR 无法在不受支持的 Steam Snap 或 Steam Flatpak 程序包中正常运行,因为它们破坏了直接渲染管理器(DRM)借用和异步再投影(asynchronous reprojection)。 应改用原生发行包。Linux 版 SteamVR 支持

SteamVR + ALVR + PhoneVR + Google Cardboard 可以实现相对低成本的VR方案,但是软件兼容性不如Windows,视觉体验受无线传输码率和手机屏幕质量影响很大,如果视频参数设置不对可能出现拖影等现象,而且我暂时没找到用普通手柄完全实现VR手柄功能的方法。

手柄

How to Set Up Game Controllers on Arch Linux

新的Xbox手柄在无线接收器模式下可能出现连接不上的情况,在Windows上连接一次后才能正常使用。Xbox Wireless Controller

通过proton启动的游戏如果出现按键映射错误的问题,可以开启Steam输入,再通过winetricks禁用wine的手柄输入。Is there a way to hide a controller from a game and use steam input?

安全

防火墙

1
yay -S ufw

沙盒

1
yay -S firejail flatseal

评论