Arch Linux 安装记录
Arch Linux
个人直接在 arch 中 使用 arch-install-scripts 安装新系统,一些前面的步骤没有记录。其中的步骤可以用 GUI 软件逃课。分区和格式化可以使用 partitionmanager(Linux)、 diskgenius(Windows) 等 GUI 软件一键分区。partitionmanager 在安装 btrfs-progs 后可以格式化分区为 btrfs。
假设安装硬盘为sda
(NVMe 同理):
sda1
—— EFI 分区sda2
—— win 下的 C 盘sda3
—— 其他分区- 剩余为空分区
分区
输入 lsblk 查看情况
分区:
cfdisk /dev/nvmeXn1 # 对安装 archlinux 的 NVMe 磁盘分区 或 /dev/sdX
输入 lsblk或检查结果
格式化 (btrfs)
(空硬盘)创建 EFI 分区
mkfs.fat -F32 /dev/sdx1
格式化 Btrfs 分区
mkfs.btrfs -L 'archlinux' /dev/sdxn
# -L` 选项后指定该分区的 LABLE
创建子卷
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
b
检查 btrfs
btrfs subvolume list -p /mnt
卸载
umount /mnt
按顺序挂载
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sdxn /mnt/boot # 挂载 /boot 目录
安装系统
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs networkmanager vim bash-completion zsh zsh-completions zsh-autosuggestions zsh-syntax-highlighting
genfstab -U /mnt > /mnt/etc/fstab
进入新系统
arch-chroot /mnt
主机名
vim /etc/hostname
hosts
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步时间:hwclock --systohc
设置 Locale
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 intel-ucode amd-ucode
pacman -S grub efibootmgr os-prober
mkdir /efi
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Arch
编辑 /etc/default/grub,禁用 watchdog:
GRUB_DISABLE_OS_PROBER=false
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 nowatchdog modprobe.blacklist=iTCO_wdt"
grub-mkconfig -o /boot/grub/grub.cfg
user 设置
设置密码:passwd root
创建用户:useradd -m -G wheel -s /bin/bash myusername
passwd myusername
visudo 授权 wheel 组 root 权限
输入 visudo
如果没有找到,导出 EDITOR 环境变量
export EDITOR=/usr/bin/vim
去除 #%wheel ALL=(ALL:ALL) ALL
前的 #
启用 archlinuxcn multilib arch4edu,并使用 paru
要添加 archlinuxcn,在 /etc/pacman.conf
添加
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = http://mirrors.163.com/archlinux-cn/$arch
同时去掉 multilib 注释以使用 multilib
[multilib]
Include = /etc/pacman.d/mirrorlist
导入 arch4edu 参考:
https://mirrors.tuna.tsinghua.edu.cn/help/arch4edu/
一些优化:
在 # Misc options
下设置 Color(去掉 #
号),ParallelDownloads = 16(并行下载加速)
sudo pacman -S archlinuxcn-keyring # cn 源中的签名(archlinuxcn-keyring 在 archlinuxcn)
sudo pacman -S yay paru
paru 的用法和 pacman 差不多,但是可以安装 AUR 软件,更加方便。
https://www.archlinuxcn.org/archlinux-cn-repo-and-mirror/
grub 美化
使用 aur helper(yay/paru) 安装 Distro Grub Themes
在 /etc/default/grub
中添加
GRUB_THEME="/usr/share/grub/themes/arch-linux/theme.txt"
并更新 grub 配置文件
sudo grub-mkconfig -o /boot/grub/grub.cfg
Possibly missing firmware for module XXXX
使用 aur helper(yay/paru) 安装 mkinitcpio-firmware
输入法
根据 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma
安装 fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki
字体
Sans-serif 无衬线字体:
Inter::inter-font
Noto Sans CJK {SC,TC,JP,KR}:思源黑体:noto-fonts-cjk
Serif 衬线字体
Noto Serif CJK {SC,TC,JP,KR}:思源宋体:noto-fonts-cjk
汉仪玄宋
Liberation Serif:Times New Roman、及Courier New兼容:ttf-liberation
等宽字体
Sarasa Term {SC,TC,J}:更纱黑体:ttf-sarasa-gothic
Maple Mono SC NF:资源圆体:ttf-maple-sc-nerd
Monaspace:otf-monaspace,otf-monaspace-nerd
Emoji
Noto Color Emoji,Noto Emoji:noto-fonts-emoji
中文字体
霞鹜文楷 ttf-lxgw-wenkai
文泉驿正黑体 wqy-zenhei
苹方字体
微软雅黑
汉仪中圆简
Liberation:与Arial、Arial Narrow、Times New Roman、及Courier New兼容
编程字体:
Fira Code:ttf-fira-code
JetBrains Mono:ttf-jetbrains-mono
Cascadia Code:ttf-cascadia-code
sf mono
Monaco
Source Code Pro:adobe-source-code-pro-fonts
斜体:
Victor Mono:ttf-victor-mono
图标字体:
ttf-nerd-fonts-symbols
ttf-firacode-nerd
一般而言,手动将无衬线字体设置成 sans-serif, 衬线字体设置成 serif, 等宽字体设置成 monospace 后,这些程序就会遵循 fontconfig 的设置了。
一般装上文泉驿就能解决大多 wine 应用中文方块的问题
驱动和常见软件
# ==== 固件 ====
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf # 声音固件
pipewire pipewire-pulse pipewire-alsa pipewire-audio pipewire-jack alsa-utils
intel-media-driver libva-utils vulkan-intel lib32-vulkan-intel
ntfs-3g
# ==== 字体 ==== https://szclsya.me/zh-cn/posts/fonts/linux-config-guide/
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
inter-font ttf-sarasa-gothic ttf-maple
ttf-liberation wqy-zenhei ttf-lxgw-wenkai(archlinuxcn)
ttf-firacode-nerd ttf-nerd-fonts-symbols
ttf-jetbrains-mono ttf-fira-code ttf-cascadia-code
adobe-source-code-pro-fonts
# ==== 优化 ====
kernel-modules-hook # kernel 更新完可以不重启
# ==== 软件 ==== 一些软件记录在 KDE/GNOME 套件安装中
btrfs-assistant timeshift # btrfs 管理
easyeffects grub-customizer bustle
obs-studio netease-cloud-music-gtk4
visual-studio-code-bin google-chrome # arch4edu
koodo-reader-bin # archlinuxcn
# CLI
paru -S xorg-xhost xorg-xeyes xorg-xlsclients btrfs-heatmap openssh wget curl
zip unzip unarchiver thefuck
fastfetch zoxide fzf eza lsd dust ripgrep bat
bottom btop htop
yazi tmux zsh-theme-powerlevel10k-git
# ==== 触摸板 ====
xf86-input-libinput # 触摸板固件
libinput-gestures
touche touchegg # 适用于 x11
Nvidia
对于 30 系及以后的显卡,安装 nvidia-open
否则安装闭源驱动
nvidia-open-dkms nvidia-utils lib32-nvidia-utils nvidia-prime vdpauinfo
kernel modules 配置
找到 /etc/mkinitcpio.conf
找到 MODULES=() 行,在 ()
中加入 i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm
先加入i915
确保启动顺序,解决双显卡 chromium 系需要 30s 启动无法使用硬件加速的问题
同时记得要移除 HOOKS 部分 kms
见:https://forums.developer.nvidia.com/t/550-54-14-cannot-create-sg-table-for-nvkmskapimemory-spammed-when-launching-chrome-on-wayland/284775/27
同时编辑 /etc/default/grub
找到以 GRUB_CMDLINE_LINUX_DEFAULT
开头的行,并将 modprobe.blacklist=nouveau nvidia-drm.modeset=1 nvidia_drm.fbdev=1
附加到其末尾
不使用 grub 的也可以通过模块配置传递参数
编辑 /etc/modprobe.d/nvidia.conf
# be sure to add "options" before each line
blacklist nouveau
options nouveau modeset=0
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
options nvidia NVreg_EnableGpuFirmware=0
options nvidia Nvreg_PreserveVideoMemoryAllocations=1
如果使用 KDE Plasma 桌面,将 nvidia.NVreg_EnableGpuFirmware=0
添加到上述设置中非常重要。
MPV 视频播放器:
更推荐
DE 与 WM
GTK 主题
materia-gtk-theme
whitesur-gtk-theme-git
Lavanda
QT 配置
在 Gnome/GTK3 中,控件(widget; Application Style)主题和窗户装饰主题是一体的,称之为 GTK_THEME,而在 KDE Plasma 中,它们一分为二。
在 KDE Plasma 中,可以单独配置窗口装饰(Window Decoration;标题栏)。
在非 KDE Plasma 环境中,无法配置窗口装饰,只能配置控件主题。
其中,kvantum
由于其高度的可自定义性,常被用于配置控件主题。
非 kvantum 主题相当罕见,适配了 KDE6 的有 Klassy/Darkly(forked from lightly)/Vinyl。
qt6ct-kde 是个轻量的 Qt6 配置工具,用于调整 Qt6 应用程序 的外观和行为。
和 qt6ct
相比,可以让 KDE 应用程序(如dolphin)正确工作。
它的核心功能包括:
KDE 配色方案(colorscheme)支持
KDE QML 主题(Application Style;控件主题,如对话框、按钮等样式)
设置图标主题
调整 Qt 应用的字体
kvantum 是一个基于SVG的主题引擎。SVG图像用于绘制QT小部件,它可以帮助用户在不需要代码的情况下创建出色的主题,因此有很多基于 kvantum 的主题可以选择。
可以使用 Kvantum 主题选择器来更改 kvantum 主题。
但是,它有开销,SVG缩放也影响性能。
要使用 qt6ct
KDE 桌面安装
awesome-kde 记录了KDE Plasma 的应用程序和软件包的完整列表
KDE Plasma 桌面环境的组件:
# plasma 桌面
plasma-desktop plasma-disks plasma-firewall plasma-nm plasma-pa plasma-wayland-protocols plasma-thunderbolt
# kde 系统级组件
systemsettings kdialog kinfocenter kscreen kwallet-pam kdeplasma-addons
# packagekit-qt6 packagekit appstream-qt appstream # 确保 Discover(软件中心)可用,需重启
# kde 部分套件
dolphin konsole spectacle gwenview
ark filelight kdiskmark kwalletmanager partitionmanager
# applets
plasma6-applets-panel-colorizer
plasma6-applets-netspeed
plasma6-applets-weather-widget-3-git
# Modern Clock for KDE
# blur window
kwin-effects-forceblur
# theme
bibata-cursor-theme-bin
darkly-bin
klassy
plasma6-themes-layan-git
flat-remix-kde-git
papirus-icon-theme
系统美化:
Application Style(控件风格): Darkly | kvantum(GraphiteNord)
Plasma Style( plasmashell 样式): Graphite-Nord | Colloid-{dark,light}-nord
Plasma Color Schemes:
Light color: Orchis | GraphiteNordLight
Dark color: GraphiteNordDark | ColloidDarkNord | Flat-Remix-BlueWindows Decorations: Klassy(with Defenestrated 11 Preset)
Icon: Tela | Papirus | WhiteSur(alternative,bold panel) | Colloid(catppuccin)
cursors: Bibata-Modern-Ice
Welcome: Arch Simple Blue KDE 6
SDDM: Sugar Candy
sddm 启动时激活数字锁定(在 Wayland 下不生效)
[General]
InputMethod=
Numlock=on
Gnome 桌面安装
gnome-shell gnome-control-center gnome-tweaks
# gnome 程序
gparted baobab # 磁盘管理
mission-center
alacarte # 应用条目编辑器
启用实验性分数缩放
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
启用 super 键调整窗口大小
gsettings set org.gnome.desktop.wm.preferences resize-with-right-button "true"
安装必要扩展
gnome-shell-extensions gnome-browser-connector
gnome-shell-extension-gsconnect
gnome-shell-extension-dash-to-panel
gnome-shell-extension-dash-to-dock
gnome-shell-extension-appindicator
一些扩展需要从浏览器安装,确保 gnome-browser-connector
和浏览器扩展有安装:
Blur my Shell
Brightness control
CHC-E
Clipboard History
Input Method Panel
Just Perfection
Quick Settings Audio Panel
Rounded Window Corners Reborn
Hyprland
hyprland gnome-keyring
archlinux-xdg-menu
export XDG_MENU_PREFIX=arch-
export XDG_MENU_PREFIX=plasma-
sudo ln -s /etc/xdg/menus/plasma-applications.menu /etc/xdg/menus/applications.menu
## 设置开机自启服务
``` bash
sudo systemctl enable NetworkManager bluetooth
sudo systemctl enable sddm
sudo systemctl enable linux-modules-cleanup.service # kernel-modules-hook provide
硬件加速
https://wiki.archlinuxcn.org/wiki/硬件视频加速#Intel
虚拟机增强
virtualbox
sudo pacman -S virtualbox-guest-utils
sudo systemctl enable vboxservice.service
VMware
sudo pacman -S open-vm-tools gtkmm gtk2 gtkmm3 xf86-input-vmmouse xf86-video-vmware
sudo systemctl enable vmtoolsd
vim /etc/mkinitcpio.conf
MODULES=(vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx)
sudo mkinitcpio -P
WSL
Inter GPU:
https://github.com/yuk7/ArchWSL/issues/308
sudo ln -sf /usr/lib/libedit.so /usr/lib/libedit.so.2
wslg:
start wsl.exe -d ArchWSL --system Xwayland -terminate :1
wsl -d ArchWSL -e zsh -c "sleep 1 && exit"
start wsl.exe -d ArchWSL -e zsh -c "env -u WAYLAND_DISPLAY DISPLAY=:1 /usr/sbin/dbus-launch startplasma-x11"
多屏左右切换,系统会适应