ArchLinux 安装指南(新手向)

2020-03-01 2705点热度 7人点赞 17条评论

最近小山把主力系统从 Windows 换到了 Linux,开始因为懒,就用了基于 ArchLinuxManjaro。不过没几天,被我一个不小心把/etc目录给删了,熟悉 Linux 的人一定都知道这个目录的重要性,导致我只能重装系统,但是这次我选择了原汁原味的 ArchLinux。整个安装过程虽然没有 Manjaro 方便,不过也没有多么复杂。

于是我就想写一篇面向新手,且适用于物理机和虚拟机的 ArchLinux 安装指南,目标是让你安装好可以作为日常使用的系统。即使你已经装好了 ArchLinux,本指南可能也能帮助到你。

本指南基于官方安装指南,并对官方安装指南进行了简化,使安装过程没有过多的选择和困惑。

如果你在安装 ArchLinux 的过程中遇到了问题,欢迎加入 QQ 群向我询问。

ArchLinux

前言

既然你已经准备安装 ArchLinux,想必对它已经有一个大致的了解了,如果你还不了解,可以前往通过以下网页了解它。

ArchLinux 简介:https://wiki.archlinux.org/title/Arch_Linux

ArchLinux 常问问题:https://wiki.archlinux.org/title/Frequently_asked_questions

ArchLinux 与其他发行版的区别:https://wiki.archlinux.org/title/Arch_compared_to_other_distributions

可能有些刚接触(了解) ArchLinux 的小伙伴困惑它是否适合自己?

如果你符合下面这几点,我觉得就可以使用 ArchLinux。

  • 拥有阅读文档并动手解决问题的能力。
  • 喜欢高度自由的系统。
  • 追求一切保持简单,不喜欢多余的东西。

如果你是个刚接触 Linux 的新人,我也推荐使用 ArchLinux 来入门。因为 ArchLinux 的 Wiki 非常详细,你遇到的大部分问题几乎都能在 Wiki 找到答案,同时它也是很好的学习资料。ArchLinux 还有一个用户友好的社区。等你慢慢熟悉之后就会发现,原来本指南安装步骤是如此简单。

如果你只是想找一个拥有 ArchLinux 的一些特性,同时又省心省力的发行版,那么 Manjaro 对于你来说可能是更好的选择,这是流行的基于 ArchLinux 的发行版,安装就像大部分 Linux 发行版那样简单。

准备工作

本安装指南假设你至少知道在 Linux 如何执行命令,以及一些基础的电脑知识。

你需要一台支持 UEFI 引导的 64 位(x86-64)的电脑,最好拥有有线网络连接,务必不要使用蓝牙鼠标。

如果你的电脑不支持 UEFI,那么以下某些步骤可能不适合你,下面我会说明如何查看电脑是否支持 UEFI,只要不是特别老的电脑都支持。如果不支持 UEFI 还想继续安装,可以加入 QQ 群与我交流。

安装系统前首先要下载系统,前往 https://opentuna.cn/archlinux/iso/latest/ 下载 ArchLinux 镜像文件,下载完成后建议使用文件校验工具配合 sha1sum.txt 验证文件完整性。

准备一个 U 盘,U 盘容量大于镜像文件大小即可,用于制作安装启动盘。

注意:制作启动盘会清空 U 盘数据,请在制作之前做好数据备份工作。

前往 etcher.io 下载 Etcher(启动盘制作工具),Etcher 是跨平台软件,Windows、macOS 和 Linux 都可以使用。

如果你无法成功从官网下载 Etcher,可以通过我的网盘分享下载:https://share.weiyun.com/5OvrT9N

U 盘插入电脑后打开 Etcher,点击 [Flash form file] 选择 ArchLinux 的镜像文件,如果你的电脑有多个 U 盘或者移动硬盘,可能需要手动更改目标设备,最后点击「Flash」开始制作。

启动盘制作完成后,重启电脑使其使用 ArchLinux 安装启动盘启动,就像安装 Windows 一样。

ArchLinux 启动选项菜单出现后,选择第一个项目并启动。

当显示类似下面的界面时,说明安装环境启动成功。

PS:如果你的电脑启用了 UEFI 安全启动,可能需要关闭安全启动才可以启动 ArchLinux 安装环境。

启动成功

 

执行ls /sys/firmware/efi/efivars检测当前引导模式是否是 UEFI

如果提示无法访问,表示当前不是以 UEFI 模式启动的,检查你的电脑是否支持以及 BIOS 设置 。

稍后的安装操作会使用 nano 文本编辑器编辑文件,当然你也可以使用 vim,如果这两个编辑器你都不会使用,推荐查看 https://www.vpser.net/manage/nano.html 以学习 nano 的基本用法(不需要学习如何安装)。

检查网络

执行ip -brief link查看网卡列表,输出的第一列为网卡名称,名为 lo 的是虚拟网卡,如果列表还有其他网卡,则表示网卡正常。

PS:有线网卡名称一般以 e 开头,无线网卡名称一般以 w 开头。

有线网卡会自动配置 DHCP,一般不需要手动干预。

无线网卡执行wifi-menu扫描无线网络,然后选择要连接的无线网络,第一个提示是设置网络名称,按回车键即可,第二个提示是询问无线网络密码,输入完密码后等待连接完成。

如果你是静态 IP 网络,推荐更换为支持 DHCP 的网络再继续。

最后检查网络是否正常,执行ping -c 5 url.cn测试网络连通性。

如果网络正常,执行timedatectl set-ntp true通过互联网同步系统时间。

通过 SSH 远程连接(可选)

如果你觉得手动执行命令太麻烦或者担心输错,想直接从米V米复制命令,那么可以使用另一台电脑或移动设备通过 SSH 控制安装环境。

执行passwd为安装环境设置密码,输入密码时不会有任何显示。

执行ip -brief address查看 IP 地址列表,输出第三列是每个网卡对应的 IP 地址(如果你的网络支持 IPv6 ,可能有多个 IP 地址。),IP 地址不包含/后面的掩码位。比如输出192.168.1.2/24,IP 地址应该是192.168.1.2

现在可以使用 SSH 客户端连接至安装环境了,简单说一下 Windows 10/11、macOS、Linux、Andorid 和 iOS 如何安装并使用 SSH 客户端。

务必将下列命令中的${IP}替换为安装环境的 IP 地址,示例:ssh [email protected]

Windows 10/11 打开 CMD、PowerShell 或 Windows 终端,执行ssh root@${IP},如果提示 ssh 命令不存在,可以参考 https://docs.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse 进行安装。

Linux 和 macOS 在终端执行ssh root@${IP}

上述命令如果提示Are you sure you want to continue connecting (yes/no/[fingerprint])?,输入yes再继续。

Android 前往 https://juicessh.com/changelog 下载安装 JuiceSSH,打开后点击 [快速连接],「类型」选择 [SSH],然后在下方输入root@${IP},点击 [确定] 进行连接。

iOS 前往 App Store 安装 Termius,然后点击右上角的添加,选择 [New Host],「Hostname」填写安装环境的 IP 地址,勾选「SSH」或「Use SSH」,然后「Username」和「Password」分别填写root和密码,最后保存,点击列表中的项目进行连接。

如果无法连接,务必确保安装环境和 SSH 客户端处于同一局域网。

硬盘分区

如果你需要 Linux + Windows 双系统,建议使用两个物理硬盘安装,以下分区方式不适用于单硬盘双系统。如果你想要单硬盘双系统,可以加入 QQ 群向我询问。

执行fdisk -l查看硬盘以及分区列表,确定你要用于安装系统的硬盘路径,比如这里我用的是/dev/sda。loop 设备是光驱等虚拟设备,不是真实的硬盘,不能用于安装系统。

确认硬盘

如果你有多块硬盘,第一块硬盘一般为/dev/sda 或/dev/nvme0n1 (NVME),第二块硬盘一般为/dev/sdb 或/dev/nvme0n2 (NVME),以此类推。U 盘或移动硬盘也会被列出,注意不要搞错。

如果你的硬盘没有被列出,可能是在 BIOS 开启了 RAID 模式(部分笔记本会默认开启),前往 BIOS 将硬盘模式改为 AHCI 模式即可,更改后可能会导致现有的 Windows 无法启动。

下述分区操作将清空目标硬盘数据,请在操作前做好数据备份。

务必将下列命令中的${diskPath}替换为你的硬盘路径。示例:sgdisk /dev/sda

擦除分区表:sgdisk -Z ${diskPath}

创建大小为 260M 的 ESP 分区 (UEFI 引导必要分区):sgdisk -n=0:0:+260M -t=0:ef00 ${diskPath}

使用剩余空间创建系统分区:sgdisk -N=0 ${diskPath}

显示分区信息:fdisk -l ${diskPath},对比你的分区信息是否与下列信息相似,重点是分区类型 (Type)。

Disk ${diskPath}: *** GiB, *** bytes, *** sectors
Disk model: ***
Units: sectors of 1 * *** = *** bytes
Sector size (logical/physical): *** bytes / *** bytes
I/O size (minimum/optimal): ** bytes / *** bytes
Disklabel type: gpt
Disk identifier: ***

Device         Start    End    Sectors    Size    Type
${diskPath}1   ***      ***    ***        260M    EFI System
${diskPath}2   ***      ***    ***        ***G    Linux filesystem

PS:给 ESP 分区分配 260M 空间是为了兼容不同硬盘,不同的 UEFI 固件,以及存放系统内核和 initramfs。对于某些早期或者有缺陷的 UEFI 实现,可能至少需要分配 512M。

某些教程的分区步骤会创建一个额外的 SWAP(交换空间)分区,这里并不推荐创建,具体原因参考下面的【设置交换空间】章节

如果你的硬盘空间较大,或者想把系统和数据分别存放在不同的分区,想要多个分区也可以。

格式化并挂载分区

格式化 ESP 分区为 FAT32:mkfs.fat -F 32 ${part1Path},把${part1Path}替换为第一个分区的路径,示例:mkfs.fat -F 32 /dev/sda1

注意:如果你在格式化 ESP 分区的时候提示:WARNING: Not enough clusters for a 32 bit FAT!,请尝试使用mkfs.fat -s 2 -F 32 ${part1Path}mkfs.fat -s 1 -F 32 ${part1Path}命令来格式化 ESP 分区,否则 UEFI 固件可能会无法读取 ESP 分区。

格式化系统分区为 EXT4:mkfs.ext4 -m 5 ${part2Path},把${part2Path}替换为第二个分区路径,示例:mkfs.ext4 -m 5 /dev/sda2

PS:-m是指定保留块所占百分比,默认值为 5,用作保留快的空间不能被使用。你可以减小这个值增加分区的可用空间,或者增大这个值提升固态硬盘的性能。

如果你想要更好的性能和更现代的功能,可以在系统分区尝试使用 XFS 文件系统:mkfs.xfs ${part2Path}

XFS 可能需要手动维护,参考:https://wiki.archlinux.org/title/XFS

PS:XFS 分区大小目前只支持扩容,不支持缩小。

当然你也可以在系统分区使用其他文件系统,比如 Btrfs、JFS、F2FS 等,你可以前往 ArchWiki 查看这些文件系统的对应文档。

挂载系统分区:mount ${part2Path} /mnt,把${part2Path}替换为第二个分区路径,示例:mount /dev/sda2 /mnt

创建 ESP 分区挂载路径:mkdir /mnt/boot

挂载 ESP 分区:mount -o umask=0077 ${part1Path} /mnt/boot,把${part1Path}替换为第一个分区路径,示例:mount -o umask=0077 /dev/sda1 /mnt/boot

检查分区是否挂载成功:df,如果输出包含类似以下行,则代表挂载成功。

Filesystem    Size    Used    Avail    Use%    Mounted on
${part2Path}  ***     ***     ***      ***%    /mnt
${part1Path}  ***     ***     ***      ***%    /mnt/boot

设置软件源镜像(推荐)

安装环境默认启用了所有的软件源镜像,为了使安装更顺利,建议只使用中国的镜像,如果你不在中国或者对自己的网络有信心可以忽略此操作。

下载中国镜像列表:curl -L -o /etc/pacman.d/mirrorlist "https://archlinux.org/mirrorlist/?country=CN"

执行nano /etc/pacman.d/mirrorlist编辑镜像列表文件,删除#Server = 前面的#以启用镜像,不需要全部启用,一般 3 个就够了。某些镜像同时支持 HTTP 和 HTTPS 协议,只需要删除 HTTPS 协议行的#

PS:镜像列表默认按照字母排序,推荐安装完系统后选择一个速度较快的镜像,并把它放在其他镜像前面。阿里云华为云腾讯云 等云服务商也有 ArchLinux 软件源镜像,但是还没有加入官方镜像列表,大家可以手动添加使用。

PPS:不同的镜像更新间隔有些许不同,而 Arch 又是一个以滚动发布著称的发行版,软件更新频率较快。如果你对更新频率有较高的要求,建议选择更新间隔较短的镜像。

安装系统

设置本地化环境:export LANG=C

安装所需软件包到系统分区:pacstrap /mnt base linux linux-firmware bash-completion e2fsprogs nano networkmanager pacman-contrib sudo amd-ucode intel-ucode

虚拟机用户不需要安装amd-ucode intel-ucode,物理机用户也可以只安装适用于你电脑的 CPU 的微码包,比如 AMD CPU 用户就不需要安装intel-ucode

如果你使用了 XFS 文件系统,将e2fsprogs替换为xfsprogs,或者替换为你的文件系统的工具包。

可以趁安装的这段时间喝口水,它并不需要很久。

安装完成后执行genfstab -U /mnt > /mnt/etc/fstab生成 fstab 文件

最后执行arch-chroot /mnt进入新系统环境

系统初始化设置

设置时区为中国:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,你也可以设置为所在的时区,完整的时区列表:https://twiki.org/cgi-bin/xtra/tzdatepick.html

同步硬件时钟:hwclock -w

务必将下列命令中的${hostname}替换为你的主机名(例如:kanto)。主机名建议使用小写字母组成,最多 64 个字符,你可以使用下面的输入框验证主机名是否符合规则。

设置系统主机名:echo ${hostname} > /etc/hostname

执行nano /etc/hosts编辑 hosts 文件并添加以下行:

127.0.0.1 localhost
127.0.0.1 ${hostname}
::1 ip6-localhost ip6-loopback
::1 ${hostname}

执行nano /etc/locale.gen编辑本地化配置文件,删除以下行前面的#,可以使用Page UpPage Down健来快速翻页上下滚动。

#en_US.UTF-8 UTF-8
#zh_CN.UTF-8 UTF-8
#zh_HK.UTF-8 UTF-8
#zh_SG.UTF-8 UTF-8
#zh_TW.UTF-8 UTF-8

如果你需要其他本地化,删除其他行前的#,行末尾务必是 UTF-8。最后保存退出,执行locale-gen生成本地化环境。

设置默认本地化环境:echo LANG=en_US.UTF-8 > /etc/locale.conf,为了确保兼容性,默认本地化环境最好是英语。

执行SUDO_EDITOR=nano visudo编辑 sudo 配置文件,删除# %wheel ALL=(ALL) ALL行前面的#以便让 wheel 用户组可以使用sudo获取 root 权限。

务必将下列命令中的${username}替换为你的用户名(例如:pikachu)。用户名建议使用小写字母组成(不能包含大写字母、不能以数字开头),最多 32 个字符,你可以使用下面的输入框验证用户名是否符合规则。

创建一个新用户并加入 wheel 用户组:useradd -m -G wheel -s /bin/bash ${username}

设置新用户密码:passwd ${username}

PS:输入密码时不会有任何显示

安装引导管理程序(重要):

如果你不喜欢 GRUB,或者喜欢简单的引导管理程序,可以尝试下 systemd-boot

安装 GRUB 软件包:pacman -S grub

安装 GRUB 至 ESP 分区:grub-install --removable --target=x86_64-efi --efi-directory=/boot,出现Installation finished. No error reported.字样表示安装成功。

生成 GRUB 配置文件:grub-mkconfig -o /boot/grub/grub.cfg

PS: 如果你电脑的 UEFI 固件不支持 64 位 UEFI 文件,则需要安装 32 位 UEFI 文件才能成功引导:grub-install --removable --target=i386-efi --efi-directory=/boot


退出新系统环境:exit

执行umount -R /mnt卸载分区,如果没有错误,就可以拔掉U盘并重启系统了。

执行reboot重启系统,没有意外的话,应该成功启动至新系统并看到以下界面,login前面的是主机名。输入刚刚创建的新用户名和密码登陆系统。

成功启动

PS:如果你安装了多个系统,可能重启后并不会进入 ArchLinux。

进阶设置

root 权限小贴士

sudo 是临时获取 root 权限的工具,如果需要 root 权限执行某个命令,可以使用 sudo 执行它。sudo 提供了细粒化的控制,使它更加的安全。

虽然su也可以获取 root 权限,但是正常情况下你不应该使用它,相较 sudo,它太暴力了。如果没有设置 root 密码,su也将无法工作。

一些命令内置了独立的提权实现,比如systemctl命令,当这些命令需要 root 权限,但是没有以 root 身份允许时,它们就会使用自己的提权实现进行提权操作。

可以使用sudo -i临时登陆到 root 用户的 Shell。

root 虽好,但不要滥用,使用之前应该先了解当前命令的操作是否真的需要 root 权限,滥用 root 权限轻则会导致一些程序无法正常工作,重则会危及系统安全。

PS:ArchLinux 的 root 用户默认处于无密码锁定状态,除非你清楚自己在做什么,否则不建议解锁或设置密码。

启用网络管理器(注意大小写):sudo systemctl enable --now NetworkManager

如果是无线网络,执行nmtui使用图形界面进行配置,选择「Activate a connection」连接无线网络。

如果你还想继续使用 SSH 远程控制,执行sudo pacman -S openssh安装 OpenSSH,然后执行sudo systemctl start sshd启动 SSH 服务器。

禁用网络管理器的连接等待(注意大小写):sudo systemctl disable NetworkManager-wait-online

禁用后可以加快系统启动,不会有副作用,除非某些自动启动的服务需要互联网。

启用 NTP 同步时间服务:sudo timedatectl set-ntp true

启用每周自动清理不需要的 Pacman 软件包缓存(可选,建议启用):sudo systemctl enable paccache.timer

如果你使用的硬盘支持 TRIM 特性(大多数固态硬盘都支持),建议启用定时执行 TRIM:sudo systemctl enable fstrim.timer

如果你需要使用 Wine、Steam 或其他的 32 位程序,执行sudo nano /etc/pacman.conf编辑 Pacman 配置文件,删除以下行前面的#以启用 32 位系统库支持。

#[multilib] 
#Include = /etc/pacman.d/mirrorlist

保存后执行sudo pacman -Sy更新软件数据库

添加 ArchLinuxCN 存储库(推荐):

Arch Linux 中文社区仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。一部分软件包的打包脚本来源于 AUR,但也有许多包与 AUR 不一样。(关于 AUR 的介绍请见下面的章节)

ArchLinuxCN 依靠镜像加速可以在国内提供比 AUR 更好的体验,而且还省去了部分软件的编译过程。如果你的网络环境导致无法顺利从 AUR 安装某些软件包,推荐添加。

执行sudo nano /etc/pacman.conf编辑 Pacman 配置文件,在底部添加以下行。

[archlinuxcn]
Server = https://opentuna.cn/archlinuxcn/$arch

保存后执行sudo pacman -Sy archlinuxcn-keyring更新软件数据库并安装 ArchLinuxCN GPG 密钥

上面的配置使用了 OpenTuna 的 ArchLinuxCN 镜像,你也可以前往镜像列表查看并使用其他镜像。

安装显卡驱动、Vulkan 和硬件加速支持:

如果不知道该装那个,可以加入 QQ 群向我询问。

小山只实际测试过 AMD 和 Intel 的显卡驱动安装,Nvidia 显卡驱动安装尚未测试。

Vulkan 是跨平台图形接口,目前主要用途是在 Linux 下运行 Windows 游戏以及部分 Linux 游戏(详见:Linux 运行 Windows 游戏指南),但并不是所有显卡都支持它,你可以前往 https://vulkan.gpuinfo.org/listreports.php?platform=linux 查询你的显卡是否支持 Vulkan。

如果你没有启用 32 位系统库支持,执行下列命令时务必删除lib32开头的软件包。

AMD

显卡驱动(GCN 1 及以上架构):sudo pacman -S mesa mesa-vdpau libva-mesa-driver opencl-mesa ocl-icd xf86-video-amdgpu lib32-mesa lib32-mesa-vdpau lib32-libva-mesa-driver lib32-opencl-mesa

显卡驱动(TeraScale 1 2 3 架构):sudo pacman -S mesa mesa-vdpau libva-mesa-driver opencl-mesa ocl-icd xf86-video-ati lib32-mesa lib32-mesa-vdpau lib32-libva-mesa-driver lib32-opencl-mesa

Vulkan:sudo pacman -S vulkan-icd-loader vulkan-radeon lib32-vulkan-icd-loader lib32-vulkan-radeon

andvlk 是由 AMD 开源的 AMD GPU Vulkan 实现,这个实现比 Mesa 的 RADV 在大多数场景下性能要好一些,并且系统允许安装多个 Vulkan 实现并让软件自行选择,推荐游戏玩家安装。

Intel

显卡驱动:sudo pacman -S mesa xf86-video-intel lib32-mesa

硬件视频加速:如果你的 Intel CPU 架构是 Broadwell (6代) 或以上的安装intel-media-driver,反之则安装libva-intel-driver lib32-libva-intel-driver

OpenCL:如果你的 Intel CPU 架构是 Broadwell (6代) 或以上的安装intel-compute-runtime ocl-icd,反之则安装beignet ocl-icd,也可以选择不安装。

Vulkan:sudo pacman -S vulkan-icd-loader vulkan-intel lib32-vulkan-icd-loader lib32-vulkan-intel

Nvidia

前往 https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ 查看 Nvidia 私有驱动最新版本不支持的显卡列表,如果你的显卡不在这个列表里,那么你可以使用最新的 Nvidia 私有驱动,反之则需要使用开源驱动或旧版私有驱动(通过 AUR 安装)。

最新私有驱动:sudo pacman -S nvidia nvidia-settings cuda opencl-nvidia ocl-icd xorg-server-devel lib32-nvidia-utils lib32-opencl-nvidia

开源驱动:sudo pacman -S mesa mesa-vdpau libva-mesa-driver xf86-video-nouveau lib32-mesa lib32-mesa-vdpau lib32-libva-mesa-driver

某些 Nvidia 显卡型号使用开源驱动可能无法完全发挥性能,或者是某些功能无法正常工作。

PS:如果是双显卡的笔记本,运行软件时可以选择使用的显卡(默认是集成显卡)。参见:https://wiki.archlinux.org/title/PRIME

如果你不需要桌面环境,那么你的安装到这里就可以结束了,也可以看看下面的 AUR 介绍和推荐阅读。

安装桌面环境、字体和实用工具:

本指南以 KDE Plasma 桌面环境为例,Plasma 是功能全面且对新手友好的桌面环境,具有高度可定制性,并且它在最近的更新中,性能提升了很多。

安装桌面环境(Plasma)、终端(Konsole)以及字体:sudo pacman -S --noconfirm plasma konsole noto-fonts noto-fonts-cjk noto-fonts-emoji

安装 Plasma 可选依赖:sudo pacman -S --asdeps gst-plugins-good packagekit-qt5 pulseaudio-alsa xsettingsd

如果你是笔记本用户,推荐安装fwupd以便通过 LVFS 接受来自厂商的固件更新(需要厂商支持)。

可能无用的软件包

plasma 是个软件包组,里面可能会有一些用不上的软件包。

以下软件包根据需求决定是否需要卸载

bluedevil: 蓝牙集成

drkonqi: KDE crash 处理程序

kgamma5: 用于调整显示器的伽玛设置

ksshaskpass: ssh-add 密码助手

plasma-browser-integration: Plasma 的浏览器集成,支持 Chrome 和 Firefox,推荐保留。

plasma-firewall: 防火墙管理界面

plasma-sdk: Plasma 开发工具包

plasma-thunderbolt: Thunderbolt(雷电)设备管理界面

plasma-vault: 创建加密的保险库(需要额外的可选依赖)

plasma-workspace-wallpapers: Plasma 额外的壁纸

卸载无用软件包:sudo pacman -Rns bluedevil drkonqi kgamma5 ksshaskpass plasma-browser-integration plasma-firewall plasma-sdk plasma-thunderbolt plasma-vault plasma-workspace-wallpapers

安装蓝牙支持(可选):

安装:sudo pacman -S bluedevil bluez

安装可选依赖:sudo pacman -S --asdeps pulseaudio-bluetooth

启用:sudo systemctl enable bluetooth

设置交换空间(可选)

交换空间(Swap)是硬盘上的一块区域,通俗的讲就是虚拟内存,跟 Windows 下的虚拟内存(分页文件)是一样的,当物理内存不够用时内核会把部分物理内存数据转移到交换空间,从而使需要更多内存的程序可以运行。

交换空间是可选的,如果你的物理内存不够大,那么你可以使用交换空间使内存利用更高效,如果你的物理内存足够使用,也可以不需要使用交换空间。

由于交换空间是使用硬盘作为存储介质,所以它无法达到像物理内存的速度,特别是在机械硬盘或 SATA 固态硬盘上面,如果硬盘速度太慢,会使交换空间弊大于利。

可能某些人会告诉你虚拟内存的大小务必是物理内存的两倍,无论是 Windows 还是 Linux,这种说法是完全错误的,虚拟内存的大小完全根据需求决定(Windows 默认会自动管理虚拟内存大小)。

如果要使用交换空间,你也可以尝试一下 ZswapZRAM,两者皆在物理内存中提供压缩的交换空间,从而使物理内存可以容纳更多的数据,减少硬盘上的交换空间的 I/O 操作,有效延长固态硬盘寿命,代价是使用更多的 CPU。

注意:当你启用了交换空间,部分桌面的电源菜单会出现「休眠」选项,但是它并不会工作,因为休眠需要配置内核参数以及 initramfs hook。参见:https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation

交换分区 VS 交换文件:

交换空间用硬盘上的一块区域作为虚拟内存,这块区域既可以是一个文件,也可以是一个完整的分区。

以前 Linux 安装会建议为交换空间创建一个单独的分区,以确保交换空间的最佳性能。这种做法是因为在当时大多数电脑还是机械硬盘,机械硬盘起始扇区的速度可能会更快,完整的分区还可以避免碎片等问题。但是缺点也很明显,一旦建立分区,调整大小会非常麻烦,自由度较低。

现在的电脑大多数都使用固态硬盘,没有了机械硬盘的一些限制,所以更推荐使用交换文件,可以使交换空间更加灵活。


推荐使用 systemd-swap 来管理交换空间、Zswap 或 ZRAM,它可以根据当前内存和交换空间的使用情况自动创建新的交换空间,同时也可以比较方便的管理 Zswap 和 ZRAM,不过由他创建的交换文件并不能用于系统休眠,如果你有系统休眠需求,建议手动创建。

安装:sudo pacman -S systemd-swap

启用:sudo systemctl enable systemd-swap

默认它只会启用 Zswap,并不会自动创建交换空间。要想让它自动管理交换空间,只需要编辑配置文件/etc/systemd/swap.conf,将swapfc_enabled=0改为swapfc_enabled=1,或者你也可以启用 ZRAM,重新启动systemd-swap使其生效。

优化交换空间:

执行sudo nano /etc/sysctl.d/99-swap-optimization.conf创建并编辑交换空间优化策略文件

文件内容:

vm.swappiness = 5
vm.vfs_cache_pressure = 50

执行sudo systemctl enable sddm启用显示管理器(用于管理桌面环境)

更改显示管理器(SSDM)本地化环境(可选):

如果要让 SDDM 的本地化环境为非英文,可以执行以下更改。

PS:本地化环境除了影响语言显示,还有时间格式。

执行sudo SYSTEMD_EDITOR=nano systemctl edit sddm编辑 SDDM 服务单元,在文件底部添加:

[Service]
Environment=LANG=zh_CN.UTF-8

如果是其他语言用户,可以把zh_CN替换为你需要的本地化。


执行sudo reboot重启系统,重启后应该会看到如下图所示的界面,输入密码登陆桌面环境。

如果没有看到如下图所示的界面,可能是显卡驱动的安装有问题。

SSDM

 

Plasma 桌面环境配置

点击屏幕左下角的按钮打开应用启动器,点击「System Settings」打开系统设置。

点击「Regional Setting」,点击系统设置界面右下角的「Add languages...」添加简体中文和繁体中文,并把英文排到最后,简繁排第一和第二,然后点击右下角的「Apply」。点击左侧的「Formats」,选择「Regional」为「中国 - 简体中文 (zh_CN)」,或者选择你所在的区域,然后点击右下角的「Apply」。

PS:简繁的优先级顺序取决于个人,因为有些程序可能没有简体或繁体翻译,简繁同时存在可以在没有其中一种翻译的情况下使用另一种翻译,如果两个都没有再使用英文。

按下Ctrl + Alt + Delete,选择「Log Out」注销会话并重新登录使其生效。

在应用启动器里找到「Konsole」,也可以通过快捷键Ctrl + Alt + T打开,这是 Plasma 桌面下的终端。

字体配置优化:fd=$HOME/.config/fontconfig/conf.d && mkdir -p $fd && curl -L -o $fd/70-noto-fonts.conf https://cdn.mivm.cn/www.mivm.cn/archives/archlinux-installation-guide-simple/noto-fonts.conf,这个字体预设来自 openSUSE,可以自动根据语言选择对应的 Noto Fonts CJK 字体。

安装输入法、浏览器和其他实用工具

安装:sudo pacman -S dolphin ark kwrite gwenview fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki firefox firefox-i18n-zh-cn firefox-i18n-zh-tw

安装 dolphin 可选依赖(视频缩略图支持):sudo pacman -S --asdeps ffmpegthumbs

安装 ark 可选依赖(更多压缩包格式支持):sudo pacman -S --asdeps lrzip lzop p7zip unrar

安装 gwenview 可选依赖(更多图片格式支持):sudo pacman -S --asdeps kimageformats qt5-imageformats

软件包介绍

dolphin = 文件管理器、ark = 压缩工具、kwrite = 文本编辑器、gwenview = 图片浏览器,这些软件都属于 KDE 家族,可以根据自己的需要进行安装,或者用别的软件代替。

fcitx5-im: Fcitx5 输入法框架的软件包组(或许你喜欢 IBus?

fcitx5-chinese-addons: Fcitx5 中文插件集合,包含拼音输入法等插件。

fcitx5-pinyin-zhwiki: 来自 zh.wikipedia.org 的 Fcitx5 拼音输入法字典

更多基于 Fcitx5 的中文输入法:https://wiki.archlinux.org/title/Fcitx5#Chinese

firefox firefox-i18n-zh-cn firefox-i18n-zh-tw: FireFox 浏览器和简繁中文语言包

如果你更喜欢使用 Chromium / Google Chrome,可以安装chromium软件包。

PS:Chromium 是开源版的 Google Chrome,它们的区别:https://en.wikipedia.org/wiki/Chromium_(web_browser)#Differences_from_Google_Chrome。Google Chrome 需要通过 AUR 安装,参见下方关于 AUR 的介绍。

PPS:2021年3月15日起 Chromium 不再支持与 Google API 相关的功能,包括 Google 账户登陆和同步等。如果你需要使用这些功能,最佳方法是安装 Google Chrome,还有一种另类方法可以使 Chromium 恢复这些功能支持,你可以前往 ArchWiki 了解或加入 QQ 群向我询问。

更多 KDE 家族应用:apps.kde.org

执行nano ~/.xprofile配置输入法环境变量,添加以下行:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export [email protected]=fcitx
export SDL_IM_MODULE=fcitx

PS:输入法需要重启系统或重新登录才会生效

输入法默认激活快捷键:Ctrl + 空格

输入法的设置可以在 「系统设置」→「区域设置」→「输入法」界面修改,默认启用了很多个输入法,推荐只保留一个。

Plasma 设置优化

打开「系统设置」

外观 → 字体:除了等宽字体,其余字体修改为 [Sans Serif](无衬线)。如果你觉得字体看起来不正常(对比下图),可以加入 QQ 群与我交流。

工作空间行为 → 常规行为:修改为 [双击打开文件和文件夹]

开机和关机 → 登陆屏幕 (SDDM): 主题更改为「微风」


Discover 可以用于安装/更新/卸载系统软件包和 Plasma 插件/主题,还有来自 LVFS 的固件更新。

重启系统开启 Linux 之旅

ArchLinux For Plamsa

安装 AUR 软件包管理器(可选)

什么是 AUR?

AUR 是 Arch 用户软件仓库(Arch User Repository),AUR 软件包由来自社区的用户进行维护,他们上传编写好的软件包构建脚本,其他用户可以使用这些构建脚本自动生成软件包并安装。

AUR 介绍:https://wiki.archlinux.org/title/Arch_User_Repository

PS:AUR 的软件包大多数都没有经过测试,使用风险需要自己承担。

AUR 软件包的安装和更新需要手动操作,并不能像使用 pacman 那样一键安装和更新,不过一些优秀的 AUR 包管理工具可以让你像使用 pacman 那样安装 AUR 包。

推荐使用 yay 作为 AUR 包管理工具,因为它的使用方法和 pacman 基本一致,可以大幅度降低学习成本。

不过还是推荐大家学习如何手动安装 AUR 软件包,以备不时之需,下面安装 yay 的操作就是安装大多数 AUR 软件包的步骤。

如果是第一次安装 AUR 软件包,需要安装所需依赖:sudo pacman -S --noconfirm --needed base-devel git

安装 yay 步骤:

克隆 yay 的 AUR 存储库:git clone https://aur.archlinux.org/yay.git /var/tmp/yay

转到 yay 存储库目录:pushd /var/tmp/yay

构建软件包并安装:makepkg -i -r -s

清理工作:pushd && rm -rf /var/tmp/yay


现在可以使用 yay 来管理系统软件包和 AUR 软件包了,如果官方软件仓库不存在对应的包,它会自动从 AUR 仓库中搜索。

比如安装 Google Chrome:yay -S google-chrome

yay 更多用法参考:https://github.com/Jguer/yay/blob/next/README.md

注意:不能使用 root 权限执行yay或其他和 AUR 相关的命令,这些命令会在需要 root 权限时自动请求。

AUR 软件包仓库:aur.archlinux.org

关于多系统启动

如果你的系统分别安装在不同的硬盘,那么只需要在电脑启动的时候引导不同的硬盘就可以了。

建议阅读

建议阅读以下 Wiki 以便更好的使用和管理 ArchLinux:

应用程序列表:https://wiki.archlinux.org/title/List_of_applications,你可以在这里按照用途类型找到大部分软件。

系统维护:https://wiki.archlinux.org/title/System_maintenance

systemctl 基本用法:https://wiki.archlinux.org/title/Systemd#Basic_systemctl_usage

pacman 软件包管理器:https://wiki.archlinux.org/title/Pacman,安装/卸载/更新软件全靠它。

AUR 存储库:https://wiki.archlinux.org/title/Arch_User_Repository

CPU 调频:https://wiki.archlinux.org/title/CPU_frequency_scaling

蓝牙:https://wiki.archlinux.org/title/Bluetooth

Synaptics 触摸板:https://wiki.archlinux.org/title/Touchpad_Synaptics,建议 Synaptics 触摸板的笔记本用户阅读。

Bash:https://wiki.archlinux.org/title/Bash,你输入的命令实际上是先传递到 Shell,由 Shell 传递给系统执行,而 Bash 是 Shell 的一种,也是系统安装后的默认 Shell,重点是命令自动补全和技巧。

腾讯 QQ:https://wiki.archlinux.org/title/Tencent_QQ

中国大陆用户的推荐解决方案:https://wiki.archlinux.org/title/General_recommendations#中国大陆用户的推荐解决方案

建议阅读 时选择英文,看不懂的地方可以使用在线翻译。

如果阅读中文版本的 Wiki,建议阅读之前注意下页面顶部提示的最后翻译更新时间,如果时间超过几个月,那么翻译可能没有更新到最新的原文。

如果你有能力,可以把对你有帮助的 Wiki 翻译成中文,以帮助更多的中文用户。


欢迎加入 QQ 群小山交流 ArchLinux 的使用经验/感受,我以后也会推出更多关于 Linux 的文章。

微信公众号二维码

微信扫描二维码关注我们

如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。

小山

一个什么都不会但要装作很厉害的人

文章评论

  • xxyangyoulin

    较新的好文,准备Manjaro换Arch试试

    2020-12-25
  • GAEGO

    老哥给力,看了这么多教程,终于在你这里成功安装了

    2020-09-20
  • lss

    为什么一会/boot 一会/efi啊,是不是有问题

    2020-05-07
    • 小山

      @lss 没有问题,安装好的系统不需要再改动任何了,我改动后的教程都是针对新安装的用户。
      更改 ESP 分区的挂载路径是为了以后如果想更换引导程序比较方便

      2020-05-07
      • lss

        @小山 你创建的是/boot目录,后面实例却把引导装在了efi目录

        2020-05-07
        • 小山

          @lss 感谢指正,示例命令是我大意了。

          2020-05-07
  • NOEYE

    为什么我虚拟机装arch按照步骤完成后,重启还是在选择安装系统界面,步骤不报错。

    2020-04-26
    • 小山

      @NOEYE 把虚拟机的安装光盘移出,如果移出后无法启动,可能是你没有安装引导程序。

      2020-04-26
      • NOEYE

        @小山 不是选择ISO映像文件安装吗?

        2020-04-26
        • 小山

          @NOEYE 安装完就不需要了啊

          2020-04-26
      • NOEYE

        @小山 应该是/dev/sda1 分区类型改EFI System失败,怎么办?

        2020-04-26
        • 小山

          @NOEYE 你加 QQ 群吧,交流方便。

          2020-04-26
  • 66666

    作者在吗??我,安装过程装不上 linux-firmware 镜像源里好像都没有,外国的慢的直接取消了求助!! :persevering:

    2020-03-30
    • 小山

      @66666 我都写了安装之前先下载国内的镜像源了,有其他问题加群交流。

      2020-03-30
  • ???

    太赞了,一次成功!! :biggrin:

    2020-03-27
  • Lzzz

    感谢感谢。。终于装上了输入法

    2020-03-06
  • LOGI

    🐂🍺就完事了

    2020-03-04
  • 此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据