ArchLinux 折腾指南&记录

谨以此篇文章记录最近一个半月,折腾 ArchLinux 的一些流程,以及记录一些常见问题和自己的解决方案。

最终效果
show-1

show-2



〇、准备工作

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 或其他文件系统,然后开子卷和其他一些高级特性。

分区主要流程:

  • 新建分区表(如果是空盘)
  • 删除/新建分区
  • 打印检查
  • 保存写入后退出

image-20231115184402955

格式化:

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

image-20231115185309412



三、安装系统

安装内核和基础软件包。同时根据需求装一些进系统后实用的软件。

intel 和 amd 的处理器,分别选择安装一种微码:intel-ucodeamd-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

装完后可以检查一下:(应该基本目录结构和文件都生成了)

image-20231115191404855

生成一下 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

image-20231115192905585

启用 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:

image-20231115201816980

安装音频驱动支持:

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。

个人比较喜欢 prime 管理方案。如下:(非 prime 勿按照以下操作)

sudo pacman -S prime-run

需要使用 n 卡运行时,只需要在前面加上 prime-run 即可:

prime-run xxx
# 例如查看当前的 opengl 渲染器,自然应该输出 n 卡相关信息:
prime-run glxinfo | grep "OpenGL renderer"

prime-run

当然你也可以选择手动注入 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

注意:

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

比较推荐的其他相关资料:

KDE 桌面环境定制指南 | Linux 中国

Linux KDE美化plasma moe主题

【Archlinux+KDE】Mac风美化+安装后配置,超详细教程!

笔记本屏幕小窗口开多太混乱?优雅kde改平铺,何必一定i3 dwm

Manjaro KDE 调教配置及美化(2022.01.23)

KDE常用桌面插件总结 - pipci - 博客园

Manjaro+kde简单配置美化教程

KDE 那些实用有趣的桌面插件 - 简书

Q.E.D.


echo = (melody) => ( { "to": "heart" } );