专栏/Arch Linux 完全安装教程 2025.1

Arch Linux 完全安装教程 2025.1

2024年10月26日 15:26--浏览 · --点赞 · --评论
粉丝:381文章:1

本文根据官方 Wiki 的内容结合个人经验写成,由广大网友监督并改进,持续更新中。

(2024.7.13)本文离线PDF:https://www.123pan.com/s/qzORVv-xMS3v.html

含少量讲解的演示视频:

视频加载失败

开学啦,感谢各位大佬的支持与指导。

授人以鱼不如授人以渔,本文包含对作用和原理的详细描述,并适量加入拓展资料加深理解。使用虚拟机演练一遍为妙,最后祝你一路顺风。

进入 Live 环境

Arch Linux 官方每月初发布一次由 archiso 生成的镜像文件,其中包含了安装所需的工具。

在镜像站获取最新的 Arch Linux 镜像文件:

(最新)https://mirrors.ustc.edu.cn/archlinux/iso/latest/archlinux-x86_64.iso

之后将镜像文件使用 Etcher、软碟通或Rufus 等工具刷写到 U 盘或其他设备之中。

重启进入 BIOS,关闭 vt-d 和安全启动,并选择刷写后的设备作为第一启动项,再次重启电脑进入 Live 环境。

Live 环境

使用 Ventoy 可以免去全盘刻录的步骤,减少闪存损耗,如果有多块硬盘(或者不同分区)甚至不需要将镜像文件复制到 U 盘即可直接自 iso 文件启动,详见 Ventoy文档。

若在引导界面后黑屏,请检查显示器相关连接线缆,再上网查询自己的显卡是否能被原生驱动,再检查 BIOS 相关设置。

进入 Live 环境后关闭 reflector:

# systemctl stop reflector

reflector 会根据速度自动修改镜像源,但是由于只考虑最新的20个镜像站,其结果大多数时候都不怎么好用。


联网

Arch Linux 的安装需要良好的网络连接,有线网络由 systemd-networkd 自动配置,无线网络请使用 wpa_supplicant 连接:

首先使用以下命令寻找无线网卡:

# ip link

一般无线网卡的名称都包含 wlan 字段。

再用以下命令连接 wifi:

# wpa_supplicant -D wext -B -i <设备名> -c <(wpa_passphrase <wifi 名称> <wifi 密码>)

根据实际情况替换括号内的内容,例如:# wpa_supplicant -D wext -B -i wlan0 -c <(wpa_passphrase TP-LINK_home Kc0ver)

-D wext 指定驱动,-B 后台运行,-i 指定设备,-c 指定配置文件,wpa_passphrase 根据 SSID 和密码生成配置文件。

还可以使用 iwctl 联网,其操作十分简单直观,不做讲解。

校对时间

timedatectl 修改时区:

# timedatectl set-timezone Asia/Shanghai

date 验证时间:

# date

输出样例:

Sun Dec 25 20:45:32 CST 2022

本机时间匹配北京时间即可进行下一步。

分区

数据无价,近视的戴好眼镜,多看几遍,别格错了盘!

数据无价,近视的戴好眼镜,多看几遍,别格错了盘!

数据无价,近视的戴好眼镜,多看几遍,别格错了盘!

fdisk 列出硬盘和分区情况:

# fdisk -l

之后使用以下命令进入图形化的分区修改界面:

# cfdisk <硬盘编号>

编号可能不同,举个例子:cfdisk /dev/sda,如果是空盘可能会要求选择分区表格式,UEFI 选择 gpt,传统引导选择 dos(mbr)。

Dump 是转储不是脚本

如上图所示进行分区操作,基本为以下步骤:

如果是传统引导,别忘了标记为可引导
作者的配置,2G交换分区剩下的是主分区

UEFI 引导需要额外的分区,如下:

注意看type的配置

设置好分区后记住编号,再格式化:

系统分区:

# mkfs.ext4 <分区编号>

EFI 分区(如果有):

# mkfs.fat -F 32 <分区编号>

交换分区(如果有):

# mkswap <分区编号>

启动交换分区(如果有):

# swapon <分区编号>

挂载即将安装系统的分区:

# mount <分区编号> /mnt

视频演示:https://www.bilibili.com/video/BV1gG411o7g3/

先挂载将要安装系统的分区到 /mnt,稍后挂载 EFI 分区。

图中演示的是传统引导的分区情况。

看好分区编号,不要在分区中“分区”。

NVMe 接口的硬盘,其硬盘号略显复杂,简单的解释如下:

安装系统

接下来的教程以这样的分区模式进行演示:

小白经典安装:mbr 单分区

Arch Linux 的优势在于可以自由选择系统的每个部分,安装之前要先更换软件镜像源,使用以下命令编辑源列表:

# nano /etc/pacman.d/mirrorlist

在第一行加入:

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

这是清华大学的软件源。

中国科学技术大学的源:

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

如图在第一行

接下来使用 ctrl + o 回车保存,ctrl + x 退出编辑器,并刷新软件包列表:

# pacman -Syy

重新安装 archlinux-keyring 包:

# pacman -S archlinux-keyring

使用以下指令安装基本系统:

# pacstrap /mnt base base-devel linux linux-firmware linux-headers

base 和 base-devel 包组内含一套基本的系统软件,必须安装,linux 是内核,linux-firmware 是一些驱动,linux-headers 是内核头文件。

Arch Linux 本质上是许许多多软件包的组合。举个不太恰当的例子,它好似一幢高楼,有地基(Linux 内核)、钢筋框架(base 包组)和框架中的墙体(桌面环境,浏览器以及其他一切)。最终建造起的大楼完全取决于你的意愿。

pacstrap 以及下文提到的 genfstab、arch-chroot 等命令都来自 arch-install-scripts 包,其并不包含在 base 或 base-devel 中。

除了 Arch Linux,某些发行版也有 arch-install-scripts 包。

关于内核的选择,Arch Linux提供了以下内核:

  1. linux - 原版的 Linux 内核和模块,采用了一些补丁。

  2. linux-hardened - 注重安全的 Linux 内核,采用一系列加固补丁以缓解内核和用户空间漏洞。和 linux包 相比,它启用了上游更多的内核加固功能。

  3. linux-zen - 一些内核黑客合作的结果,提供了最适合日常使用的内核。可在 https://liquorix.net 上找到一些细节(他们为 Debian 提供基于 Zen 的内核二进制文件)。

  4. linux-lts - 受长期支持(LTS)的 Linux 内核和模块。

  5. linux-rt 和 linux-rt-lts - 由Ingo Molnar领导的一小群核心开发人员维护。这个补丁允许几乎所有的内核被抢占,除了少数非常小的代码区域(“原始自旋锁关键区域”)。这是通过将大多数内核自旋锁替换为支持优先级继承的互斥锁,以及将所有中断和软件中断移动到内核线程来实现的。

是不是眼花缭乱了?我建议安装 linux-zen 内核,那么命令就变成了下面的样子:

# pacstrap /mnt base base-devel linux-zen linux-firmware linux-zen-headers

/mnt 是系统盘挂载点。

虚拟机下 linux-zen 内核可能会出现问题。@红客路上

这样只是最基本的系统,还需要更多的软件来支持系统运行,以下是作者认为需要安装的

  1. networkmanager - 连接互联网

  2. openssh - ssh服务

  3. cups - 打印机

  4. nano 和 micro - 都是好用的命令行文本编辑器,micro 的快捷键更接近 Windows 自带的记事本。

  5. git - 100%会用到的,现在不装以后也会被当作依赖安装

  6. grub - 必须安装,引导系统用

  7. os-prober - 双系统必须安装

  8.  efibootmgr - UEFI 必须安装

  9. intel-ucode 或 amd-ucode - CPU 微码必须安装

  10. man-dbman-pages - 查看软件包的文档

  11. firefox  - 浏览器

  12. noto-fonts-cjknoto-fonts-emoji - 谷歌设计的字体(包含中文和 emoji)

删除 NTFS-3g @迪迪尼卡吧

删除 dhcpcd 相关软件包及操作 @Senaruk

设置系统

挂载 EFI 分区(如果有):

# mkdir /mnt/boot/efi

# mount <EFI 分区编号> /mnt/boot/efi

创建 fstab 文件:

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

系统启动时会根据生成的 fstab 文件自动挂载分区。

chroot 进入新系统:

# arch-chroot /mnt

chroot 可以理解为不重启进入位于挂载点 /mnt 的新系统中,可以在安装设置与急救系统方面发挥作用。

如果使用 pacstrap 安装基本系统的步骤没有做好,chroot 时就会出现报错,包括找不到各种基本命令(如 ls、cat 或 bash),需要重新操作硬盘再安装一次。

设置时区:

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

生成 /etc/adjtime

# hwclock --systohc

编辑 locale.genlocale.conf

# nano /etc/locale.gen

locale.gen 和 locale.conf 有关系统的语言,是本地化的步骤。

如图

前面教过如何保存与退出,不再赘述。

运行 locale-gen:

# locale-gen

只有运行该命令后,locale.gen 中取消注释的地区和语言选项才可以使用。

编辑 /etc/locale.conf:

如图

LANG 变量如果设置为中文会导致控制台乱码,安装中文字体后图形界面不乱码。

编辑主机名:

# nano /etc/hostname

DESKTOP-N81325

随便写你喜欢的

设置 root 密码:

# passwd root

注意小键盘锁的开闭。

没有输入提示:

如图

安装 grub 引导系统:

如果是双系统,需要启用 os-prober 发现其他操作系统(比如 Windows)。

编辑 grub 配置文件:

# nano /etc/default/grub
如图

接下来便可以安装 grub 到硬盘,

传统引导:

# grub-install --target=i386-pc <硬盘号>

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

注意硬盘号不要写成分区号。样例:正确的:/dev/sda,错误的:/dev/sda1 @NightArc__

UEFI 引导:

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

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

引导安装完毕。

UEFI 还可以使用 systemd-boot 引导,本教程不做讲解。

服务自启动:

打印机(如果需要):

# systemctl enable cups

ssh 服务:

# systemctl enable sshd

网络服务:

# systemctl enable NetworkManager

systemctl 用于启动服务等操作,将 “enable” 换为 “start” 或 “stop” 可以立即操作服务的开与关。

默认情况下不允许以 root 用户登录 ssh。

创建普通用户:

# useradd -m -G wheel <用户名>

编辑 sudoers 文件赋予用户管理员权限:

# nano /etc/sudoers
如图

如果想无密码使用 sudo 就把下面的 NOPASSWD: ALL 一行也取消注释。

设置用户密码:

# passwd <用户名>

安装 Gnome 桌面:

# pacman -S gnome gnome-tweaks gnome-extra gdm

不用 Gnome 请跳过该部分,桌面环境可选 KDE 详见下文。

gnome-extra 包组包含一大堆实用工具,但是也有一些用处不大的包,比如地图,联系人,以及一些游戏,可以在安装后手动删除他们。@呔平

开机启动 gdm 界面:

# systemctl enable gdm

gdm 是一个 Display Manager(可以理解为锁屏)。

安装完毕,退出 chroot 环境:

# exit

现在你又回到了 Live 环境,重启系统:

# reboot

正常重启系统会自动卸载分区,强行断电可能会造成数据丢失。

这时把第一启动项的位置还给系统盘,首先应该看见的是 grub 的启动项选择界面。

grub

如果选择下面的高级选项,grub 会展示出 fallback 启动镜像,如果更换了硬件无法启动可以尝试 fallback,进入系统后再对系统进行修复。

选择第一个条目进入 Arch Linux 后,如果安装了 gdm 应该可以看见图形化的登陆界面。

gdm 的界面

gdm 启动的时候可能要多等一会。

Gnome 本地化

不用 Gnome 请跳过本章节。

图形化设置

图形化设置,设置完成后登出再登入。

如图
中文

更多软件仓库

Arch Linux 会继承 Live 环境中配置的 /etc/pacman.d/mirrorlist 源列表,因此官方源不需要再配置,我们现在来添加更多的软件源。

Arch Linux 中文社区仓库:

Arch Linux 中文社区仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。

修改  /etc/pacman.conf:

$ sudo nano /etc/pacman.conf

这里开始默认使用普通用户($)。

在文件的最下面加入以下内容:

[archlinuxcn]

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

中国科学技术大学的源:

[archlinuxcn]

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

之后安装 archlinuxcn-keyring 导入密钥。

有部分人反映按照上述步骤配置后不能正常安装 Arch Linux CN 源内的软件包,必须要加上一行 SigLevel = Optional TrustAll 才能正常使用。如果你也在配置完成后无法使用,不妨将 pacman.conf 中添加的内容改为如下:

[archlinuxcn]

SigLevel = Optional TrustAll

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

之后尝试重新安装 archlinux-keyring 和 archlinuxcn-keyring 两个软件包,安装完毕后删除 SigLevel = Optional TrustAll 再尝试安装 CN 源内其他软件包。

32 位仓库:

修改  /etc/pacman.conf,删除 # ,修改过后的效果如下图:

如图

multilib 是 32 位软件源,里面有 wine 所需的包。

AUR 助手

Arch 用户软件仓库(Arch User Repository,AUR)是为用户而建、由用户主导的 Arch 软件仓库。AUR 中的软件包以软件包生成脚本(PKGBUILD)的形式提供,用户自己通过 makepkg 生成包,再由 pacman 安装。创建 AUR 的初衷是方便用户维护和分享新软件包,并由官方定期从中挑选软件包进入 community 仓库。

AUR 助手

安装 paru:

$ sudo pacman -S paru

paru 的用法与 pacman 大体相同。

之后为了在搜索时优先显示软件源内的结果,编辑 paru 配置文件 /etc/paru.conf:

取消这一项前面的注释

例子:安装Microsoft Edge:

$ paru -S microsoft-edge-stable-bin
搜索软件包

显卡驱动

下图是官方维基关于 Xorg 显卡驱动的表格:

官方维基的表格

大多数驱动是开源的,英伟达的显卡还在 AUR 中提供了闭源驱动,建议安装开源驱动,未来有需求再安装闭源驱动。

假设我的显卡品牌是 ATI,我应该这样安装:

$ sudo pacman -S xf86-video-ati mesa lib32-mesa

右上角有 “包” 角标的为软件包,可以通过 yay 或 pacman 安装,右上角带有 “AUR” 角标的是 AUR 包,只能使用 AUR 助手安装。

lib32-mesa 只有在开启了 32 位源之后才可安装。

任何 Intel 显卡包括核显都不建议安装 xf86-video-intel,有可能出现图形界面的故障。@LCア @Senaruk

AUR 安装闭源驱动示例:

$ paru -S nvidia

闭源驱动的配置又繁琐又充满了未知因素,配置一定要参阅官方文档,建议新手在安装前做好系统的备份,还要做好图形界面崩溃的心理准备。

其他驱动

触摸板:

$ sudo pacman -S xf86-input-libinput libinput

Linux 下触控板的体验不太好。

蓝牙:

$ sudo pacman -S bluez bluez-utils

$ sudo systemctl enable bluetooth

$ sudo systemctl start bluetooth

一部分蓝牙模块比如作者的 CSR8510 默认情况下是用不了的,这是因为没有安装合适的驱动,建议到 aur 软件库中搜索有无驱动,无线网卡等硬件同理,只要在 aur 软件库搜索你的硬件型号就可以了。

Gnome 的图形化设置,作者的蓝牙无法驱动就不演示了

中国大陆本地化

中文字体:

  • wqy-microhei

  • wqy-microhei-lite

  • wqy-bitmapfont

  • wqy-zenhei

  • ttf-arphic-ukai

  • ttf-arphic-uming

  • adobe-source-han-sans-cn-fonts

  • adobe-source-han-serif-cn-fonts

  • noto-fonts-cjk

手动安装 ibus 输入法:

$ sudo pacman -S ibus ibus-libpinyin

ibus-libpinyin 是中文输入法引擎。

$ ibus-setup

只需要执行一次,后续需要 ibus 开自启动在 gnome-tweaks (优化)中添加启动项。

接下来要修改 .bashrc 文件:

$ nano ~/.bashrc

或者 .zshrc

在最下面添加如下内容:

export GTK_IM_MODULE=ibus

export XMODIFIERS=@im=ibus

export QT_IM_MODULE=ibus

上面的内容在运行 ibus-setup 后输出,修改完毕之后重新登陆或重启系统。如果桌面环境使用 gnome,还需要在设置 → 输入源中进行相关设置,详见下文图片

使用 tmoe 安装 ibus:

安装 tmoe:

$ sudo pacman -S wget

$ wget l.tmoe.me/2.awk

启动 tmoe:

$ gawk -f 2.awk

选择中文:

如图

选择 tools:

选择 tools


自动安装依赖:

如图

打开 “秘密花园”:

如图

打开 “input method:输入法”:

如图

三个都可以选择,如果安装了 gnome,建议选择 ibus:

选择

选择 “libpinyin”:

如图

安装完毕:

如图

ibus 的候选字排列默认是竖直的,如果需要调成横向排列应该安装 gnome 拓展:Ibus-Tweaker 来设置,详细设置方式见下文 “Gnome 优化” 章节。

按下 ctrl + c 退出,重启系统。

在系统设置添加输入法:

不用 Gnome 请跳该部分。

如图
如图
如图

使用 win + 空格 切换输入法。

微信,QQ 等国产软件的安装和更多中国化设置见:

https://wiki.archlinuxcn.org/wiki/建议阅读#中国大陆用户的推荐解决方案

Gnome 优化

不用 Gnome 请跳过本章节。

Gnome 默认不带系统托盘与桌面图标还有 dock 栏,我们要安装拓展以支持这些功能:

先安装支持库:

$ sudo pacman -S gnome-browser-connector

用 firefox 打开 gnome 拓展网站并如图操作:

如图

安装以下拓展:

自定义主题
桌面图标
系统托盘

TopiconsFix 插件适配新版本的 Gnome 比较慢。

dock 栏
华丽的 alt + tab
ibus 设置
拓展管理与设置

上文提到的 ibus 设置:

用以上方式打开 ibus 的设置界面,将第二项修改为“水平”
优化
最终的样子

至此你的 gnome 差不多可以使用了。

附加:安装基本 KDE Plasma 桌面环境 

使用以下命令安装 plasma 和 sddm:

$ sudo pacman -S plasma sddm

plasma 包提供桌面环境,sddm 功能类似 gdm。

sddm 开机自启:

$ sudo systemctl enable sddm

如果是从 gnome 切换到 kde plasma,你可能会卸载 gdm 转而使用 sddm,一定要在卸载之前先关闭 gdm 的开机自启,也就是:

$ sudo systemctl disable gdm

kde 社区提供的应用程序:

$ sudo pacman -S kde-applications

这个包组包含所有的 kde 应用程序,安装与否不影响桌面的正常使用,如果不安装 kde-applications 也要安装 kde-utilities 包组(组内的软件包都包含在 kde-applications 中)。

经过简单美化的 Plasma

附加:更新系统(软件包)

Arch Linux 采取滚动式更新,这意味着它不会像 Windows 一样发布大版本,使用以下命令查找软件包更新:

$ sudo pacman -Syyu

前文提到 -Syy 为强制刷新软件源缓存,小写的 u 为更新系统,pacman 的参数区分大小写,例如 -r 和 -R 意味着不同的操作,更新完成后重启。

以滚动方式更新系统有一定风险,尤其是更新内核和更新大量软件包的时候。更新前先看一看即将更新的都有哪些包,做好心理准备,即使遇到故障也不要慌,仔细检查报错以及输出,上网查询相应解决方式,进入 Live 系统修复。

AUR 助手 paru 也可以更新系统,只要在终端中输入“paru”,其就会自动更新软件源与 AUR 的软件包。

如图

附加:微信

安装 deepin-wine 微信:

$ paru -S deepin-wine-wechat
如图

附加:中文 tty

tty 也就是安装过程中我们进行各种操作的控制台,它本身不支持中文,我们通过安装经修改的内核(cjktty 模块)可以实现显示中文的功能,如下图所示:

如图

安装 lily 内核:

$ sudo pacman -S linux-lily

这个包在 archlinuxcn 仓库提供,安装前先配置 archlinuxcn 源。

lily 内核在我的电脑上会导致系统卡死,慎用。

重新生成 grub 配置文件:

$ sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old

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

之后重启到 grub 引导界面,如图选择:

第二项
第三项

启动后 tty 即可显示中文。

一些问题

  1. UEFI 模式分区:我一直感觉本文对 UEFI 引导的分区方式的讲解模糊不清,因此贴上官方的教程作为参考资料:

    https://wiki.archlinuxcn.org/wiki/安装指南#建立硬盘分区

    这里有 UEFI 模式分区的视频演示:

    https://www.bilibili.com/video/BV1ve4y1N7Vs/

  2. 网络无法连接:文中的两个办法如果都不起作用,可能是因为你的网卡没有被驱动,网卡千千万,不可能每一个都顾及,有问题请到 GitHub 搜索你的网卡型号,一般都会有的。

  3. 改了 pacman 源还是下载很慢:请再次查看是否更改为 tuna 源,Live 系统的 reflector 在检测到网络后会自动修改源文件,这时就需要再次修改。

  4. 显卡驱动问题:作者手里就一张 HD7750,敬请阅读:

    https://wiki.archlinuxcn.org/wiki/Xorg#驱动安装

  5. 我要安装其他的桌面环境:桌面环境有很多,敬请阅读:

    https://wiki.archlinuxcn.org/wiki/桌面环境

  6. AUR 很慢很慢:可能是因为 git 仓库克隆速度慢,请自行寻找加速 github 与其他途径下载速度的办法。还有就是 build 过程很慢,这取决于硬件。

  7. 关于 wine:wine 是兼容层不是虚拟机,从头开始配置 wine 非常繁琐困难,而且会有很多的小问题(比如文字发虚、乱码,窗口闪烁、错位,输入框无法使用),使用 deepin-wine 就好。





投诉或建议