ArchLinux 折腾指南&记录
谨以此篇文章记录最近一个半月,折腾 ArchLinux 的一些流程,以及记录一些常见问题和自己的解决方案。
最终效果:
〇、准备工作
arch install iso 链接:Arch Linux - Downloads
安装盘烧录和安装盘加载,这里不赘述。记得主板启用 UEFI 引导 + 关闭安全启动(Secure Boot)。
一、连接网络和时区配置
真正的第一步是设置字体,个人比较喜欢这一款:
setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22
使用 iwctl 连接 wifi:
iwctl
device list
station <device> scan
station <device> get-networks
station <device> connect <ssid>
exit
dhcpcd &
当然如果是有线连接,一般来说是会自动配置的。
也可以通过 systemd-networkd 的配置来自定义,这里做一个固定 IP 分配:
# 移除所有默认网络配置 rm -rf /etc/systemd/network/*
# nano /etc/systemd/network/<网络设备代号>.network
# 网络设备代号代号通过 ip link 查看
[Match]
Name=ens33
[Network]
DHCP=no
Address=192.168.1.2/24
DNS=8.8.8.8
[Route]
Gateway=192.168.1.1
重启网络服务并检查:
systemctl restart systemd-networkd
ping baidu.com
curl https://www.baidu.com
使用 ssh 在其他电脑上远程操作安装。出了问题好复制查询:
# 其他计算机上
ssh root@192.168.1.2
设置时区和时间同步:
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true
timedatectl
二、分区、格式化和挂载
个人习惯用 fdisk 分为三个基础分区:
/boot
fat32 分区(/boot 单独分一个区是 archwiki 推荐的分法之一)swap
linux swap 分区/
ext4 分区
当然也可以单独把 /home
分出来,方便备份和数据迁移。不过后面的步骤里要记得挂载。
也可以用 btrfs 或其他文件系统,然后开子卷和其他一些高级特性。
分区主要流程:
- 新建分区表(如果是空盘)
- 删除/新建分区
- 打印检查
- 保存写入后退出
格式化:
mkfs.fat -F32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
挂载并检查:
# 一定记得先挂载 / 到 /mnt,然后才执行其他操作!
# 否则可能会发生覆盖 mount
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p2
lsblk
三、安装系统
安装内核和基础软件包。同时根据需求装一些进系统后实用的软件。
intel 和 amd 的处理器,分别选择安装一种微码:intel-ucode
、amd-ucode
pacman -Sy
pacstrap /mnt base base-devel amd-ucode linux linux-firmware linux-headers vi vim nano git wget tmux openssh networkmanager htop neofetch ntfs-3g yay
装完后可以检查一下:(应该基本目录结构和文件都生成了)
生成一下 fstab 自动挂载:
genfstab -U /mnt >> /mnt/etc/fstab
change root 到安装的系统里:
arch-chroot /mnt
进去后可以再使用 lsblk 检查一下挂载正不正确。
四、系统基本配置
设置时区和同步硬件时钟:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
生成本地化标识,一般英文和中文都生成一个:
echo -e "en_US.UTF-8 UTF-8\nzh_CN.UTF-8 UTF-8" > /etc/locale.gen
locale-gen
# 先这样设置,防止 tty 乱码。安装桌面环境后再改回来
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
生成 hostname 和 hosts:
echo 'melorenae' > /etc/hostname
# nano /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 melorenae.localdomain melorenae
root 密码设置:
passwd
添加普通用户,并加入 wheel 权限组:
useradd -m -G wheel melodyecho
passwd melodyecho
# 编辑 sudoers,实现 su 权限执行所有命令和 sudo 免密码
EDITOR=nano visudo
启用 networkmanager 和 sshd 服务:
systemctl enable NetworkManager
systemctl enable sshd
安装 grub 引导:
pacman -Sy
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=archlinux
启用 os-prober:
# nano /etc/default/grub
# 取消这一行注释
GRUB_DISABLE_OS_PROBER=false
生成 grub 配置:
grub-mkconfig -o /boot/grub/grub.cfg
退出、取消挂载、重启,准备进入新系统:
exit
umount -R /mnt
reboot
五、桌面环境安装
登录进入新系统。因为没有桌面环境,所以初始网络配置依然要重新做一遍。不过之前安装了 NetworkManager,可以直接用 nmcli 或 nmtui。之后安装了桌面环境,用桌面环境配置一次,以后就不用重复设置了。
当然这里还是使用刚才的固定 ip 分配,即再写一次配置。
不过重启网络服务时注意启动解析服务,要不然 dns 解析没法工作:
sudo systemctl restart systemd-networkd
sudo systemctl start systemd-resolved
然后还是切换到远程连接上操作:
# 其他计算机上
ssh melodyecho@192.168.1.2
添加 archlinux-cn 源,并安装其密钥:
# sudo nano /etc/pacman.conf
# 末行添加
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
sudo pacman -Sy
sudo pacman -S archlinuxcn-keyring
/etc/pacman.conf
文件中建议启用配置 Color:
安装音频驱动支持:
sudo pacman -S pipewire pipewire-alsa pipewire-jack pipewire-pulse pipewire-media-session gst-plugin-pipewire
安装 xorg 套件、桌面环境、登录管理器和一些实用程序:(当然你可以换成 wayland,还有其他桌面环境)
sudo pacman -S xorg
sudo pacman -S plasma sddm konsole dolphin kate okular spectacle partitionmanager ark filelight gwenview
启用 sddm 服务:
sudo systemctl enable sddm
重启进入桌面:
sudo reboot
六、其他必要配置
1、网络配置
在 GUI 界面,用系统设置配置。
2、中文支持
首先重新指定 LANG:
# sudo nano /etc/locale.conf
LANG=zh_CN.UTF-8
安装中文字体和其他实用字体:
sudo pacman -S adobe-source-han-sans-otc-fonts adobe-source-han-serif-otc-fonts noto-fonts noto-fonts-cjk noto-fonts-emoji
然后设置里把语言改成中文,重启。
3、中文输入法支持
一般用 aur 源的搜狗是比较快和稳妥的方案。而且也还算好用。
追求自定义化的话,可以去搞 rime。或者用 fcitx5 也是不错的方案,不过兼容性还有待考究。
yay -S fcitx-sogoupinyin
sudo pacman -S fcitx-configtool
# nano ~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=fcitx
重启,然后运行 fcitx-configtool
可以进行一些配置,比如把 fcitx 自带的其他用不到的输入法删掉。如果没正常工作,运行 fcitx-diagnose
检查。
4、显卡驱动安装
xorg 显卡驱动安装参照 wiki:Xorg - ArchWiki
如果是 n 卡,特别注意仔细阅读此文档:NVIDIA - ArchWiki
如果是双显卡,需要配置管理方案。流行的管理方案有 optimus manager、prime offload 和 nvidia-xrun。
- optimus-manager:GitHub - Askannz/optimus-manager
- prime-render-offload:PRIME - ArchWiki
- nvidia-xrun:nvidia-xrun - ArchWiki
- 其他:Use switchable graphics - ArchWiki
个人比较喜欢 prime 管理方案。如下:(非 prime 勿按照以下操作)
sudo pacman -S prime-run
需要使用 n 卡运行时,只需要在前面加上 prime-run
即可:
prime-run xxx
# 例如查看当前的 opengl 渲染器,自然应该输出 n 卡相关信息:
prime-run glxinfo | grep "OpenGL renderer"
当然你也可以选择手动注入 prime offload 相关的环境变量。本质上和 prime-run 是等价的:
export __NV_PRIME_RENDER_OFFLOAD=1
export __VK_LAYER_NV_optimus=NVIDIA_only
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
5、常用软件安装
qq:推荐官网的 AppImage 版。记得 chmod +x xxx.appimage
。
微信:(比较推荐这个包)
yay -S com.qq.weixin.spark
腾讯会议:
yay -S wemeet-bin
wps:
yay -S ttf-wps-fonts wps-office
百度网盘:
yay -S baidunetdisk-electron
md 编辑器 Typora:
sudo pacman -S typora
vscode:
yay -S visual-studio-code-bin
steam:(首先确保你已经安装好了显卡驱动,以及相关的 32 位及 64 位的 opengl, vulkan 包)
sudo pacman -S steam
注意:
- 关于字体支持和其他一些安装配置细节,参考 archwiki:Steam - ArchWiki
- 安装完成后建议启动 steam-runtime 而不是 steam-native,前者会使用 steam 自带的运行库文件
- 如果需要使用兼容层 proton,参照:【爱折腾】SteamDeck完全折腾指南-E1-安装Proton订制兼容层 - 哔哩哔哩
vlc 播放器安装:
sudo pacman -S vlc
obs 录屏软件:
# 如果用不到 浏览器源采集 功能,直接从官方源安装:
sudo pacman -S obs-studio
# 否则推荐这个 aur 包,或者安装 flatpak 版:
yay -S obs-studio-tytan652
timeshift 备份和恢复软件:(搭配 btrfs 使用更佳)
sudo pacman -S timeshift
6、Windows 分区自动挂载
可以在 /etc/fstab
里配置自动 mount,但是某些情况下,这样的自动 mount ntfs 分区会导致启动时间剧增。(可使用 sudo systemd-analyze blame
查看系统启动时各组件占用时间)
所以更推荐写成一个脚本,在桌面登录后自动执行挂载。脚本放置在 ~/.config/autostart/
即可在桌面登录后执行。挂载命令示例如下:
# uid, gid 通过命令 id 查看
# umask, dmask, fmask 可以控制 mount 后的文件的权限
sudo mount -t ntfs-3g -o uid=1000,gid=998,umask=0,dmask=027,fmask=137 /dev/nvme0n1p3 /mnt/c
这样 mount 后的权限为:所有者为当前用户。所有者可读写可执行,组内用户可读可执行,其他用户无权读写和执行。
7、KDE 桌面美化折腾
两点建议:
- 尽量少做美化。特别是很 hack 的美化要少搞,会不稳定。
- 风格统一是“美观”的必要条件。
latte-dock 安装:
sudo pacman -S latte-dock
比较推荐的其他相关资料:
【Archlinux+KDE】Mac风美化+安装后配置,超详细教程!
笔记本屏幕小窗口开多太混乱?优雅kde改平铺,何必一定i3 dwm
Manjaro KDE 调教配置及美化(2022.01.23)
Q.E.D.