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

本文最后更新于:2023年11月24日 凌晨

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

0x00. 一切开始之前

本科阶段笔者一直用的 Windows 作为主力系统并使用 VMWare Workstation 运行 Linux 虚拟机,但总感觉不够得劲,可惜笔者有一些硬性需求只能在 Windows 上完成(比如说游戏、绘图等),由于仅有一台电脑的缘故,所以一直没有机会在真机上安装 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 目录下,这里注意看自己对应的分区名:

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(文件系统表)文件:

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,这里只需要在 /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

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

配置桌面环境

笔者选择安装 XWayland + 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日
许可协议