Arch Linux + KDE安装教程

玩转Arch Linux是一件非常有成就感的事情,尤其是自己动手一步步安装它、配置它、折腾它,把它打造成自己理想的操作系统。刚开始看似很难,官方提供的镜像就是一个没有任何桌面环境的bare system。但这正是Arch Linux的闪光点——高定制性,所有的组件均可以通过官方镜像,来给目标系统安装上,想要什么组件就装什么组件,系统归你掌握。

近日,我成功给我的上古ThinkPad X200装上了Arch Linux,并配置好了KDE,把经验总结如下。

下载Arch Linux镜像

Arch Linux的镜像可从官方网站下载:https://www.archlinux.org/download/

页面中提供了磁力链接、BT种子,而往下拉可以找到HTTP直链下载,其中包括中国大陆镜像源,如163、中科大、清华TUNA。推荐宽带用户选择163的源,教育网用户选择中科大的源。

下载完成后,用Rufus把镜像刷写到U盘中,然后用它启动电脑,进入安装环境。

连网

Arch Linux的安装需要全程联网,建议使用启用了DHCP的有线网,插上网线就可用,无需额外配置,且相对稳定。当然也可采用WLAN,但配置会复杂一些,可以参考一下这个

插上网线后,如果无法联网,则可重启一下DHCP客户端dhcpcd:

systemctl restart dhcpcd

如果还不行,则重新启用一下以太网接口:

# 查看网络接口状态,列表中以太网接口前缀是enp,如enp0s25
ip link
# 重新打开网络接口
ip link set enp0s25 up

准备安装分区

Arch Linux搭配KDE,建议至少20GB的磁盘空间(如果要安装KDE全家桶)。

如果要与现在的系统共存,可在Windows的“磁盘管理”中,压缩出一个分区。新硬盘建议用图形化的cfdisk分区,同时支持GPT与MBR。老鸟可用命令行的fdisk与parted。我的老笔记本是给整个硬盘都装上,所以直接给它重新分区。

笔者的分区方案

由于ThinkPad X200年代久远,不支持UEFI,所以只能选择MBR分区。110GB的固态硬盘,分区方案如下表。其中,系统、引导和用户文件放在同一个分区中。

分区用途 大小 设备路径 备注
目标分区 104GB /dev/sda1 主分区,活动分区
交换分区 ≈6GB /dev/sda5 逻辑分区

格式化并挂载

分区的文件系统选择上,通常用EXT4和BtrFS较多,老电脑+SSD建议选择BtrFS,BtrFS有专门的SSD优化选项,可在挂载时打开;而EXT4会因不明原因,时常导致笔记本死机。

格式化目标分区,然后挂载到/mnt/mnt就是我们系统安装的目标目录:

# 格式化目标分区为BtrFS
mkfs.btrfs /dev/sda1

# 挂载目标分区,并打开SSD优化
mount -t btrfs -o ssd /dev/sda1 /mnt

启用Swap

# 初始化交换分区
mkswap /dev/sda5
# 启用交换分区
swapon /dev/sda5

# 检查交换分区使用情况
free

预安装过程

分区准备并挂载完成后,就可以开始安装了。安装过程用到的核心工具有pacstraparch-chroot

pacstrap用于把指定的包安装在指定目录,是pacman的离线版;而arch-chroot则用于把当前系统环境切换到指定的目录,通常是我们挂载目标分区的/mnt,由此可允许我们以新装系统的名义进行操作。

arch-chroot后,我们就可以向管理真实系统一样管理目标分区中的系统(目标系统),例如直接使用pacman等常用工具。运行exit可退回安装环境。

注意:

  • 安装基础组件后,pacstrap可在arch-chroot切换后,被pacman取代。其他一些操作也可以在目标系统中完成,只是要注意命令参数的变化。

提示:配置文件默认用vim打开。vim的基本操作方法:

  • 方向键移动光标;
  • 按<kbd>i</kbd>键进入编辑模式;
  • 按<kbd>v</kbd>键进入可视模式。此模式下按方向键可控制选区,<kbd>y</kbd>键复制。
  • 按<kbd>ESC</kbd>退出以上模式,返回一般模式;
  • 一般模式下,按<kbd>p</kbd>键粘贴,<kbd>x</kbd>键退格,按两下<kbd>d</kbd>键删除整行;
  • 一般模式下,输入:<命令>后回车,可执行内部命令。常用命令有:w(保存)、:x(保存并退出)、:q(直接退出)、:q!(不保存文件退出)。
  • 一般模式下,键入/,后跟关键字,可快速定位。

使用中国大陆镜像源

Arch Linux的默认服务器在国外,因此需要切换到中国大陆的服务器,以实现满速下载,提高效率。

使用Vim打开镜像源配置文件:

vim /etc/pacman.d/mirrorlist

然后在文件中定位到# China开头的项目(可输入),例如163(推荐,可满速)。可视模式下把它们所在的行复制,再粘贴到文件开头。下次就可以使用该镜像源进行下载。

安装基础组件

系统基础组件由三个包组成:核心包(base)、Linux内核(linux)与固件(linux-firmware)。安装后即可构成一个最基本的Arch Linux:

pacstrap /mnt base linux linux-firmware

添加用户

包括Arch Linux在内,裸安装的Linux发行版默认使用Root用户,显然不安全,因此要添加用户。(这与VPS中安装的Linux差不多。)

第一,安装sudo。没错,sudo并不是系统预装的组件,还是要用户手动安装的。顺便把vi和vim装上,用于编辑配置文件:

pacstrap /mnt sudo vim vi

第二,授予普通用户sudo权限。先打开sudo配置文件:

# 切换到目标系统中才能进行操作
arch-chroot /mnt
# 打开配置文件。默认用vi打开
visudo

然后取消下面这行的注释,即删掉前面的#符号。这行语句允许wheel组的用户获取root权限。

取消注释以下指定行,并保存。

## Uncomment to allow members of group wheel to execute any command
# ↓ 就是下面这行 ↓
%wheel ALL=(ALL) ALL

第三,再新建一个新用户

# -G参数设置用户组,-m开关建立用户目录,username为你的用户名
useradd -G wheel -m username

给新用户设置密码。密码要输入两次,没有回显:

passwd anclark

然后检查一下/home目录下有没有自动新建的用户主目录,如果没有,则手工创建。需要注意的是,主目录权限不当会导致很多组件运行异常,因为它们要读写主目录中的配置文件。

# 创建用户目录,并设定权限
mkdir /home/username
chown -R username /home/username

# 设置用户主目录
usermod -d /home/username username

# 退回安装环境
exit

OK,下次即可用我们的新用户来登录。

安装启动器

Arch Linux可选的启动器有若干种,首选Grub。由于笔者的X200不支持UEFI,因此只能以MBR的形式安装。首先安装Grub软件包:

# 安装Grub
pacstrap /mnt grub

然后把Grub启动器安装到硬盘中。注意最后一个参数为目标的磁盘设备,而不是分区。

# 配置Grub以实现硬盘启动(MBR)
# 参数--target设置安装模式,值i386-pc为默认值,表示MBR安装
# 参数--root-directory设置安装目标磁盘的根目录。省略则表示当前根目录
grub-install --target=i386-pc --root-directory=/mnt /dev/sda

最后切换到目标系统,生成配置文件。实际上,前一步也可以在目标系统中进行,只需去掉--root-directory参数即可。

# 生成配置文件
arch-chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
exit

EFI用户参照ArchWiki。

生成fstab

genfstab工具可把当前挂载磁盘的状态保存到fstab中,方便系统自动挂载。磁盘的参数也会保存于其中。

genfstab /mnt > /mnt/etc/fstab

安装图形环境

接下来就是安装Xorg图形环境。xorg包包含了所有可能用到的组件,在此基础上再安装显卡驱动组件。

# 安装Xorg
pacstrap /mnt xorg
# 安装显卡组件
pacstrap /mnt xf86-video

xf86-video 貌似已经失效,可参考Arch Linux安装文档来决定安装哪个驱动。常见的选项如下:

# 英特尔
pacstrap /mnt xf86-video-intel
# AMD/ATI
pacstrap /mnt xf86-video-amdgpu
pacstrap /mnt xf86-video-ati
# NVIDIA开源驱动
pacstrap /mnt xf86-video-nouveau
# NVIDIA闭源驱动
pacstrap /mnt nvidia
pacstrap /mnt nvidia-390xx

安装网络组件

Arch Linux默认没有预装网络组件,因此也需要手动安装。一般安装三个组件即可:

  • dhcpcd:DHCP客户端。
  • wpa_supplicant:无线网服务端。
  • networkmanager:网络管理器前端,KDE等桌面环境依赖它来管理网络,若不启用则会使KDE的网络管理器无法运作。
# 这三个包是网络的核心组件
pacstrap /mnt dhcpcd wpa_supplicant networkmanager

# 启用上述组件。重启后一般可直接生效
arch-chroot /mnt
systemctl enable dhcpcd
systemctl enable wpa_supplicant
systemctl enable NetworkManager
exit

安装声音支持

KDE等桌面环境使用PulseAudio作为音频后端,配合ALSA模块即可解决声音问题。

pacstrap /mnt alsa-utils pulseaudio pulseaudio-alsa

安装KDE Plasma

接下来就是安装KDE Plasma桌面环境,Plasma本身就是一个软件包。

首先安装桌面环境本体,以及桌面管理器SDDM:

# Plasma桌面环境
pacstrap /mnt plasma-meta sddm

然后,启用SDDM窗口管理器,以实现开机自动进入登录界面。

# 切换到已安装好的系统里
arch-chroot /mnt
# 开启SDDM的服务
systemctl enable sddm

进入系统后显示的所谓登录界面,实际上就是SDDM本身,通过登录验证后就由它来启动Plasma桌面环境。相应地,退出登录后就终止了Plasma,重新打开SDDM,以显示登录界面。在Linux发行版中切换用户时,会退回字符界面,屏幕上会显示一堆日志,就是因为这个过程。基于这个特性,SDDM还可以启动其他的桌面环境,例如OpenSUSE预装的OpenBox。

安装Konsole

值得一提的是,Plasma只是一个桌面环境,没有包含任何其他的KDE应用(如文件管理器等),这些应用独立于Plasma,需要用户手动安装。我们见到的Kubuntu、Manjaro等包含的应用实际上是开发团队为我们事先装好的。

也正因如此,一些常用的应用需要我们手动安装,比如重启系统后要经常用到的Konsole终端。

pacman -S konsole

如果不安装终端,就只能在进入Plasma后,按<kbd>Ctrl+Alt+F2/F3/F4</kbd>切换到TTY中操作。

重启后安装其他组件

经过以上的设置,重启电脑并由硬盘启动后(建议拔掉启动盘),就能看到登录界面了,用我们新建的用户即可直接登入系统。之后我们就可以在安装好的系统中,进行后续的操作。

安装KDE全家桶

KDE组织旗下开发了大量的软件,涵盖系统应用的方方面面。用户可按自己的实际需要安装,或者安装下面这个包,迎来KDE全家桶:

sudo pacman -S kde-applications-meta

全家桶的体积非常大,包含各类应用,甚至涵盖了不少游戏和教育软件。大部分软件难以用上,因此虚拟机用户不建议安装,而以按需取用其中一个组件来代替。

虚拟机用户应至少安装一个终端、一个文件管理器和文本编辑器:

sudo pacman -S konsole dolphin kate

安装中文字体

中文字体默认没有安装。若不安装,会在中文显示的地方显示Unicode占位符。

# 安装思源黑体
sudo pacman -S noto-fonts-cjk

安装Fcitx

Fcitx是最常用的输入法框架之一。

第一,先安装Fcitx所需的包。注意安装过程可能会提示选择安装哪个fcitx核心组件,建议先选fcitx-qt5。fcitx-qt5、fcitx-gtk2、fcitx-gtk3这三个包是为了能在对应环境开发的APP中正常使用输入法。

sudo pacman -S fcitx fcitx-im kcm-fxitx fcitx-qt5 fcitx-gtk2 fcitx-gtk3 fcitx-configtool

第二,设置fcitx作为我们默认的输入法框架。创建并编辑/home/用户名/.xprofile,然后在里面添加以下内容:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

重新登录生效。

启用网络支持

若网络管理不起作用,KDE设置里网络管理部分显示为空白,且任务栏上没有网络图标,则手工启用网络管理器。立即生效。

sudo systemctl start NetworkManager
sudo systemctl start wpa_supplicant

启用蓝牙组件

Plasma会装上蓝牙服务程序Bluez,但默认不会启用,导致系统提示“找不到蓝牙适配器”。

先启用Bluez Daemon:

sudo systemctl enable bluetooth
sudo systemctl start bluetooth

安装蓝牙音频支持:

sudo pacman -S pulseaudio-bluetooth

高级玩家还可以安装高级蓝牙管理器:

sudo pacman -S blueman

Blueman可激活电脑蓝牙的隐藏功能,如把电脑当手机的蓝牙音箱、串口通信。需内核支持。

安装媒体组件

基本的媒体组件包括硬件加速库libva,以及媒体播放器。libva同时支持英特尔和NVIDIA的显卡(后者使用NVIDIA专有的VDPAU技术)。而在媒体播放上,Arch Linux首推VLC。

# 安装硬件加速库libva
sudo pacman -S libva libva-intel-driver libva-vdpau-driver libva-utils
# 检查硬件加速库状态,会显示libva库的版本与显卡信息
vainfo

# VLC和SMPlayer,按需取用。VLC已包含在KDE全家桶中
sudo pacman -S vlc smplayer

配置好休眠文件(可解决自动休眠时的卡死问题)

X200有一定机率会在关机时长时间挂起,在文字界面下可见,关机过程卡在以下地方:

[***  ]A stop job is running for device dev-disk-by/uuid-b072209d-279a-41cd-b4b3-16eab1a84d60.device. (1min 30s)

检查了一下fstab,发现日志中的UUID正是Swap分区的UUID,检索资料后查明是与休眠相关的参数没配置好。而此前偶有出现系统闲置时会莫名其妙卡死,疑为与自动休眠相关,自动休眠可能正触发了这个问题。

解决方法就是修改Grub默认配置文件。用Vim打开/etc/default/grub

sudo vim /etc/default/grub

把以下参数加进GRUB_CMDLINE_LINUX_DEFAULT字段里,注意包裹在原有的引号中:

resume=UUID=<Swap分区的UUID>

其中,要获取Swap分区的UUID,可打开/etc/fstab。

最后重新生成配置文件,重启后生效:

sudo grub-mkconfig -o /boot/grub/grub.cfg

禁用蜂鸣器

默认情况下,进行一些操作时,电脑的蜂鸣器会响起,发出很刺耳的嘟嘟声,例如在TTY中光标的始末处按方向键或退格键。这时可以考虑禁用蜂鸣器。

蜂鸣器默认作为内核模块加载,因此只需把相应的模块加入黑名单中禁用即可。

# 切换到Root用户下
sudo -i
# 卸载蜂鸣器模块
rmmod pcspkr
# 把蜂鸣器模块添加到黑名单中,重启即可彻底禁用之
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf

参考资料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章