昨天 KDE 不知道什么原因滚挂了,于是我决定重装系统。最近 KDE 在我的机子上经常崩溃,我也不想修了,因为真的修不起来。距离上一次重装不知道什么时候了,但 Arch 的稳定程度其实是可以的,只要你不是故意去 Arch Testing 。

主要参考 Arch 的安装文档,这里主要是做个记录。

网络连接

在 livecd 里默认启用了 iwd ,直接用 iwctl 进行网络连接即可。

iwctl

然后就会进入到 iwctl 的交互 bash 。

# 启用网络设备
# 在这之前用 device list 查看一下有哪些可用网卡
device wlan0 set-property power on
station wlan0 scan
station wlan0 get-networks
station wlan0 connect WIFI

最后 ping 一下,能通就行。

分区与格式化

由于我仍然想保留原来的数据和分区,所以重装的时候我仍然要小心不要格式化错误。如果只谈安装 arch 的话,难点几乎就在分区上,你可以选择提前用 gparted 之类的工具分好,他们有提供 gparted 的 livecd ,大可不必非要在命令行界面安装。

我只需要格式化原来的 root 盘就可以了,其他盘不要随便格,交换分区不需要每次都格。

mkfs.ext4 /dev/root_partition
swapon /dev/swap_partition

然后把根目录挂载到 /mnt 上去。

mount /dev/root_partition /mnt

由于我的电脑是 EFI 的,所以需要额外再挂载一个 efi 目录。

mount --mkdir /dev/efi_system_partition /mnt/efi

不用 boot 目录是为了后面装 grub 做准备, boot 目录还是要单独创建一个的。

其他的目录也都正常挂到 /mnt 上去。

由于 mount 默认用的是 ntfs3g ,如果想要用 ntfs3 的话,需要使用 -t ntfs3 选项。

mount -t ntfs3 /dev/partition /mnt/disk

但 ntfs3 存在一些 bug ,因此使用默认的 ntfs3g 也无妨

mount --mkdir /dev/partition /mnt/disk

正式安装

pacstrap -K /mnt base linux linux-firmware

等待结束就可以了。

基本配置

首先是将分区挂载固定到系统上。

genfstab -U /mnt >> /mnt/etc/fstab

完成之后用 arch-chroot 进入系统进行正式配置。

调整时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

本地化

# vim 需要自己安装,也可以用 nano
# 去掉对应的注释
vim /etc/locale.gen
locale-gen

设置 hostname

编辑或者创建 /etc/hostname 即可。

创建 initramfs

mkinitcpio -P

重置密码

passwd

安装网络环境

pacman -S iwd dhcpcd
systemctl enable iwd
systemctl enable dhcpcd

也可以安装 NetworkManager 不要忘了启用。

systemctl enable NetworkManager.service

安装 bootloader

pacman -S grub os-prober efibootmgr dosfstools
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub
# 可以编辑 /etc/default/grub ,启用 os prober 来检测其他操作系统
grub-mkconfig -o /boot/grub/grub.cfg

安装一些软件

pacman -S rust nodejs go ntfs3g systemd-resolved ruby php sudo git ranger zsh neovim

安装图形界面

完成基本系统的安装后,重启看看能不能正常进入系统,能不能正常登录。此时,我们的系统是还没有图形界面的。

我还是比较喜欢 plasma , xfce4 在急用的时候比较多。

pacman -S plasma-meta plasma-desktop xfce4 sddm xorg-server noto-fonts-cjk noto-fonts-emoji
systemctl enable sddm

把 archlinuxcn 源添加进去。

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

安装 paru 。

pacman -S --needed paru base-devel

安装 wine-for-wechat 。

pacman -S wine-for-wechat wine-wechat-setup

安装一些常用软件。

pacman -S thunderbird birdtray joplin-desktop keepassxc nextcloud-client konsole yakuake fcitx5-im fcitx5-rime bluez telegram-desktop notion-enhanced-app calibre zoxide ccls anki zetter zeal drawio-desktop obsidian okular gitkraken clash kwalletmanager flameshot iwgtk kdeconnect

还有很多需要在 AUR 里安装就不多赘述了。

添加日常用户

useradd -m -g users -G wheel -s /bin/zsh <username>
passwd <username>

重启进入图形界面,大致就能用了。因为沿袭了之前的数据,所以不需要再次进行配置,只需要在对应位置补上即可。

sudo 问题

运行 EDITOR=nvim visudo 就会用 nvim 打开 sudo 的配置文件。 EDITOR 可以是你想要的任何值。

取消掉 %wheel ALL=(ALL:ALL) ALL 这一行前面的 # 即可。

添加一下内容可以保持用户的环境变量应用到 root 去。

Defaults !env_reset

等于你每次运行使用 sudo -E 。但不介意使用 alias 改变原生行为。

修复 nextcloud 每次都要登录的问题

删除 kwallet 之前的钱包数据。在 ~/.local/share/kwalletd 下,删除重启。你只需要最后再授权一下,后面就不用再登录了。

备份软件列表

comm -23 <(pacman -Qeq|sort) <(pacman -Qmq|sort) > pkglist

恢复可以直接使用 pkglist 。

pacman -S $(cat pkglist)