【DISTRO.0x00】从零开始的 Arch Linux 生活

本文最后更新于:2024年5月6日 凌晨

不好用,在安装界面睡了三个小时

0x00. 一切开始之前

本科阶段笔者一直用的 Windows 作为主力系统并使用 VMWare Workstation 运行 Linux 虚拟机,但总感觉不够得劲,可惜笔者有一些硬性需求只能在 Windows 上完成(比如说游戏、绘图等),由于仅有一台电脑的缘故,再加上众所周知 Surface 系统对于 Linux 的支持一直不太好,所以一直没有机会在真机上安装 Linux 操作系统 :(

开始读 Phd 之后老板比较阔气大手一挥直接配了一个新的笔记本用来工作,于是笔者决定这一次直接在真机上安装 Linux ,专门用来做工作上的事情

关于发行版的选择,笔者决定选择安装 Arch Linux,因为其有着较为完备的各类文档及驱动适配等,同时笔者的新笔记本的牌子为华硕,其同样有一个较为完善的第三方社区支持

不过考虑到有些工作可能还是在 Windows 上做会比较方便(例如调试 Windows 程序),再加上原装的 Windows 系统毕竟是收了笔者的钱的,直接抹掉的话未免有点可惜(笑),所以笔者最终的策略是安装 Windows + Linux 双系统,日常主力还是使用 Linux 系统

0x01. 安装前的准备工作

制作 Arch Linux 物理安装媒介

首先在 https://archlinux.org/download/ 下载最新的 Arch Linux 镜像,这里提供了几个镜像站,可以直接选离你最近的那一个:)

完成镜像下载之后直接烧录到 U 盘上即可,这里笔者用的是 balenaEtcher

关闭 Secure Boot

由于 Arch Linux 的安装媒介暂不支持安全启动,因此这里我们需要将电脑的这个特性暂且关闭

华硕笔记本进入 BIOS 的方法为:首先摁住 F2,然后按一下开机键,一直到 BIOS 界面出现后松开 F2 即可

点击 进阶设置→安全性,把 安全启动控制 改为 关闭 即可:

关闭安全启动

分配 Linux 磁盘空间

直接右键 我的电脑→显示更多选项→管理→磁盘管理 拉一块空的区域出来就行:

0x02. 安装 Arch Linux

主要还是参照官方文档来弄

事前准备

首先还是进 BIOS 改启动顺序把安装介质调到第一位:

然后就来到了 GRUB,正常情况下直接选第一个就行:

如果你需要使用无线网络,可以输入如下命令:

1
2
$ iwctl       # 进入无线网络控制界面
$ device list # 查看无线网卡信息

笔者这里显示的网卡设备名是 wlan0 ,接下来输入如下命令扫描附近的的无线网络:

1
2
$ station wlan0 scan # 扫描
$ station wlan0 get-networks # 显示结果

接下来使用 connect 参数进行连接,例如这里假设网络名为 BeastSenbei

1
$ station wlan0 connect BeastSenbei # 如果有密码则会要求你输入

之后直接输入 exit 即可退出该界面

你可以使用 pacman -Syyy 命令测试网络是否联通,若要换源则直接编辑 /etc/pacman.d/mirrorlist 文件即可

建立磁盘分区

首先使用 lsblk 查看磁盘分区,这里看不到我们之前新划分的区域,因为还没划分一个新的分区:

接下来我们使用如下命令进行新分区的建立,注意根据你自己的磁盘设备名进行输入:

1
$ cfdisk /dev/nvme0n1

可以看到一个 Free Space,选中并选择 [New] 即可,默认直接敲两下回车就是用所有的空间,你也可以选择手动输入自己想要划分的分区大小,完成之后在下面选择 [Write] 然后输入 yes 即可:

接下来将该分区格式化为 ext4 格式,这里注意分区别选错了,不记得的就重新再看看 lsblk

1
$ mkfs.ext4 /dev/nvme0n1p6

正式安装

接下来首先挂载新分区,之后在内部创建 /boot 目录,并将 Windows 原有的 EFI 分区挂载到 /boot 目录下,这里注意看自己对应的分区名:

update:这里笔者非常错误地让 Windows 和 Arch 使用了同一个 EFI 分区,导致了后面一系列事故的发生, 虽然说不是不能用吧 ,但为了更好的体验,笔者还是建议大家为 Linux 准备一个独立的 EFI 分区

1
2
3
$ mount /dev/nvme0n1p6 /mnt
$ mkdir /mnt/boot
$ mount /dev/nvme0n1p1 /mnt/boot

接下来使用该命令进行安装基本的环境,这里笔者安装默认的内核版本 linux,你也可以在 Wiki 上选择自己想要的内核(比如说带有安全加固的 linux-hardened):

1
$ pacstrap /mnt base linux linux-firmware

安装完成之后接下来我们来对系统进行一些基本配置,首先是生成 fstab(文件系统表)文件:

这个文件用以决定系统启动时将某些分区挂载到指定目录的操作细节,也可以手写(建议用 UUID 而不是 /dev 路径进行指定)

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

接下来使用 arch-chroot 命令切换到新的系统环境中:

1
$ arch-chroot /mnt

然后是设置时区,笔者现在在墨尔本所以时区设置为墨尔本,如果你在中国大陆则需要设置为 Asia/Shanghai

1
$ ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime

接下来生成 /etc/adjtime 文件:

1
$ hwclock --systohc

然后创建主机名,这里就随便了:

1
$ echo "arttnba3-Arch" > /etc/hostname

/etc/hosts 中写入如下内容,这里注意改成自己的 hostname:

设置 root 密码:

1
$ passwd

安装一些基本的软件包,这里我们选择使用 grub 作为启动器:

1
2
$ pacman -S grub efibootmgr networkmanager network-manager-applet dialog wireless_tools wpa_supplicant os-prober mtools dosfstools ntfs-3g base-devel linux-headers reflector git sudo vim
$ pacman -S intel-ucode # 如果你是 AMD 则需要改成 amd-ucode

配置 GRUB 自动启用 os-prober,这个程序用来检测磁盘上的 Windows Boot Manager 并自动创建 Grub entry,这里只需要在 /etc/default/grub 中加入一行 GRUB_DISABLE_OS_PROBER=false ,并输入如下命令:

1
2
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
$ grub-mkconfig -o /boot/grub/grub.cfg

到这一步一个基本的 Arch 环境就安装好了,完成之后输入如下命令进行重启进入系统,别忘了拔出移动安装介质:

1
2
3
$ exit        # 退出 arch-chroot
$ umount -a # 取消分区挂载
$ reboot # 重启

后面如果想再进入 Windows 只需要进 BIOS 调整启动顺序即可

0x03. 常规系统配置

接下来是一些常规系统配置,包括新建用户、配置 GUI 等

启动网络

通过如下命令启动网络并连接 WiFi:

1
2
$ systemctl enable --now NetworkManager
$ nmtui

进入这个界面后选 Activate a connection,然后就正常选 WiFi 输密码连接就行,这个只用最开始的时候弄一次:

DHCP 相关的一些配置:

1
$ sudo pacman -S dhcpcd

bash 自动补全

1
$ pacman -S bash-completion

设置 Locale 进行本地化

去掉 /etc/locale.genen_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行开头的 #,然后在 /etc/locale.conf 中写入一行 LANG=en_US.UTF-8 即可

创建新用户

没啥好说的,老一套东西,这里别忘了改成自己的用户名:

1
2
3
$ groupadd arttnba3
$ useradd -m -s /bin/bash -g arttnba3 arttnba3
$ passwd arttnba3

授予 sudo 权限,这里注意我们应当且仅应当使用 visudo,而非直接编辑 /etc/sudoers 文件

1
2
$ usermod -aG wheel arttnba3 # arch 下的 sudo 组
$ EDITOR=vim visudo

去掉如下图所示这一行的前面的 # 注释即可,笔者这里是已经修改过后的版本:

配置桌面环境

笔者选择安装 Wayland + KDE Plasma,首先安装基本的 KDE Plasma 桌面组件:

1
2
3
$ sudo pacman -S plasma-meta konsole dolphin
$ systemctl enable sddm
$ sudo pacman -S egl-wayland kde-applications-meta sway alacritty waybar wofi xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland

这里会有一些不同的 provider 供选择,按自己喜欢的选就好:

需要注意的是 KDE 仅推荐VLC后端,因为GStreamer不再维护

之后重启就能进图形化的桌面了,说实话有点丑 :(

配置默认开启小键盘只需要在 /etc/sddm.conf 文件中添加如下内容:

1
2
[General]
Numlock=on

开启 32 位支持库

/etc/pacman.conf[multilib] 所在的那两行开头的 #去掉,然后 pacman -Syyu 即可

更换包管理器为 AUR

照着文档做就行,这里笔者就懒得自己编译了:

1
2
3
4
$ pacman -S --needed git base-devel
$ git clone https://aur.archlinux.org/yay-bin.git
$ cd yay-bin
$ makepkg -si

禁用 iwd

1
2
3
$ sudo systemctl disable iwd
$ sudo systemctl stop iwd
$ sudo systemctl enable --now NetworkManager

基础功能包与中文字体安装

1
2
3
4
5
6
7
$ yay -S sof-firmware alsa-firmware alsa-ucm-conf          # 一些可能需要的声音固件
$ yay -S adobe-source-han-serif-cn-fonts wqy-zenhei # 开源中文字体
$ yay -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 谷歌开源字体及表情
$ yay -S ark
$ yay -S p7zip unrar unarchiver lzop lrzip # ark 的可选依赖
$ yay -S google-chrome
$ yay -S packagekit-qt5 packagekit appstream-qt appstream gwenview wget kate bind # 图片查看器和其他工具等

安装中文输入法

笔者用的 fcitx:

1
2
3
$ yay -S fcitx5-im
$ yay -S fcitx5-chinese-addons # 中文输入引擎
$ yay -S fcitx5-pinyin-zhwiki # 中文维基百科词库

之后使用 EDITOR=vim sudoedit /etc/environment 命令在对应文件中添加如下内容:

1
2
3
4
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

之后在系统设置里便可进行相应的配置

启用蓝牙并安装蓝牙音频设备

1
2
3
4
$ yay -S bluez bluez-utils
$ sudo systemctl enable --now bluetooth
$ yay -S pulseaudio-bluetooth
$ pulseaudio -k

安装显卡驱动

首先安装 Intel 核显驱动:

1
$ sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel

如果你和笔者一样还有一张 N 卡则使用如下命令安装驱动:

1
$ sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils

这里笔者没有安装 optimus-manager, 因为一安就进不去桌面了,看了半天日志找了半天解决方案都没能解决(悲)

因为目前对续航其实没有过于极限的要求,独显集显混合输出的情况下还是能轻度工作3h左右的,因此暂时不考虑继续整这玩意了:)

0x04. 桌面美化

启动界面美化

直接在 System Settings->Startup and Shutdown->Login Screen(SDDM) 里就能改,笔者这里直接选了 Breeze

桌面风格美化

直接在 System Settings->Appearance->Global Theme 里选择自己喜欢的主题安装上然后再 apply 就行,或者也可以自己去 https://store.kde.org 进行下载,笔者选择的是国人设计师 vinceliuice 开发的 MacVentura KDE theme 主题

安装 Dock

在底下有个 Mac 样式的 Dock 还是相对来说比较养眼一些,这里笔者安装的是 latte-dock

1
$ yay -S latte-dock

然后 alt + f2 输入 latte 就 ok 了

最后再摆放各种 widgets 调一调 panel 位置啥的差不多就 ok 了,整体效果如下:

0x05. 一些报错的解决

pcieport 报错

启动起来发现内核莫名其妙吐了一大堆的奇怪的东西:

/boot/grub/grub.cfg 中找到内核启动参数,添加上 pci=nommconf 即可

chrome 无法播放视频

就一直卡在加载界面不动,参见 Wiki 使用如下命令可以临时解决:

1
$ pulseaudio --kill && pulseaudio --start

完美的解决方案是是用 pipewire-pulse 替换掉 pluseaudiopluseaudio-bluetooth,然后重启:

安装这个包的时候会自动把另外两个包给卸了

1
$ yay -S pipewire-pulse

0x06. 个人配置优化

触摸板开启点按即单击

触摸板习惯性的操作应当是按一下就是单击,而非按下机械左键才是单击, KDE 默认是关闭了这个选项,不过我们在系统设置中的 Hardware→Input Devices→Touchpad 里将 Tap-to-click 勾选上即可

触摸板上下滑动方向改变

笔者的使用习惯中双指滑动是上下反向,KDE 中默认是上下同向,这里只需要在系统设置中的 Hardware→Input Devices→Touchpad 里将 Invert scroll direction (Natual scrolling) 勾选上即可

设置双击打开文件

Dolphin 中默认单击就打开文件了,而对于笔者来说更习惯 Windows 那样的单击选择双击打开的模式,这里只需要在系统设置中的 Workspace Behaviour->General Behaviour 中勾选 Selects them 即可

使用 zsh 替换 bash

Z Shell 是一个比默认自带的 bash 更加强大的 shell,这里我们通过如下命令即可将当前用户的默认 shell 替换为 zsh:

1
2
3
$ yay -S zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

后面各种主题啥的配置可以参照知乎上的这篇文章,笔者用的是 gnzh 主题


【DISTRO.0x00】从零开始的 Arch Linux 生活
https://arttnba3.github.io/2023/09/25/DISTRO-0X00-INSTALL_ARCH_WINDOWS/
作者
arttnba3
发布于
2023年9月25日
许可协议