arch安装教程

准备

下载安装镜像


配置启动盘

  • Ventory
  • Rufus
    以上选一个下载工具下载格式化U盘作为安装U盘即可

配置空闲分区大小

双系统或多系统安装

window压缩空间

右键开始菜单,点击磁盘管理,选择你要压缩的分区点击压缩卷,输入压缩空间量(MB),作为需要分给archlinux的空闲硬盘空间大小,点击压缩,完成之后关闭

diskgenius压缩空间

也可以使用diskgenius工具或者PE系统盘自带的diskgenius来压缩硬盘空间作为archlinux的硬盘

注:如果win硬盘采用了 Bitlocker 加密,在安装双系统压缩空间之前还需要解密一下。


虚拟化安装

创建虚拟机一直默认下一步即可,版本选择其他Linux 6.x 内核 64位,分配你需要的硬盘空间大小,最后设置引导为UEFI,选择镜像为archlinux镜像即可。

启动archlinux安装镜像

多系统

在启动安装镜像之前,需要项关闭BIOS设置中的Secure Boot模式

  • window电脑保持按住shift键同时点击重启,直到进入选项界面,选择疑难解答,选择UEFI固件设置,重启以更改UEFI固件设置,重启进入BIOS界面进行修改
  • 插入U盘并开机。在开机的时候,按下 F2 / F8 / F10 / DEL 等(取决与你的主板型号,具体请查阅你主板的相关信息)按键,进入主板的 BIOS 设置界面修改。

插入archlinux安装U盘,重启电脑,按下F12切换启动顺序,上下光标移动到U盘启动顺序,enter进入即可进入安装镜像

虚拟机

直接启动虚拟机即可

基础安装

进入安装环境

多系统或者是虚拟机都是选择第一个,Arch Linux install mediume,在第一个选项回车进入,进入安装环境即可通过命令进行安装archlinux了。

注:虚拟机的话可以开启sshd服务通过ssh进行配置安装,相比在虚拟机内复制粘贴修改等更便捷
以下任性ssh工具选择其一即可

虚拟机设置root密码进行ssh连接

1
passwd

虚拟机启用sshd服务

1
systemctl start sshd

查看sshd服务是否启动成功

1
systemctl status sshd

查看虚拟机ip

1
ip -br a s

然后利用以上任意ssh连接工具输入主机ip、用户名、密码连接即可


禁用reflector服务

reflector服务,它会自己更新mirrorlist,容易对某些有用的源信息造成影响,这里不需要

1
systemctl stop reflector.service

查看服务是否被禁用,按下 q 退出结果输出

1
systemctl status reflector.service

确认是否为UEFI模式

现在基本都是UEFI模式,如果是老电脑是BIOS的话在分区安装引导的时候就会有一些区别,这里默认都是UEFI模式

1
ls /sys/firmware/efi/efivars

如果输出了一堆东西(efi 变量),则说明已在 UEFI 模式

连接网络

虚拟机

只要宿主机连接了网络,虚拟机正常都是能连接网络的,一般默认都是NAT或者网桥模式,无需配置,一般都不会有问题

多系统

若使用有线连接,正常来说,只要插上一个已经联网的路由器分出的网线(DHCP),直接就能联网。

若使用无线连接,则需要配置以下操作,可以使用iwctl工具连接wifi

1
2
3
4
5
6
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描无线网卡下的网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出

测试网络是否联通

1
ping -c3 baidu.com

更新系统时钟

部分程序对系统时钟有要求

1
2
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态

更换国内镜像源加快下载速度

使用nanovim编辑器编辑

1
2
3
nano /etc/pacman.d/mirrorlist
# 或
vim /etc/pacman.d/mirrorlist

推荐的有

1
2
3
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch # 阿里云镜像

任选以上其一或者…添加最上面,因为最上面是会使用到的软件仓库镜像源。

分区和格式化

选择适合自己的分区工具,cfdiskpartedfdiskgdisk哪个用的顺手用那个
一般新手推荐cfdisk,图形化分区操作

基础知识

linux的/(包括/home等)文件系统一般为ext4btrfsxfs这三种

  • ext4 :较为常用的一种,是目前绝大多数 Linux 发行版的标配,稳定性较高,无 快照和克隆功能,无法快速备份/恢复数据,timeshift快照是rsync完整克隆
  • btrfs :适用企业级服务器,需快照克隆功能的,稳定性一般,小文件频繁写入,写时复制是双刃剑,timeshift快照是btrfs,就是快照恢复方便
  • xfs :适合服务器,性能高一点点,但不能缩小空间大小

linux的的EFI系统分区通常采用FAT32格式,这使得EFI能够与VFAT兼容,从而在启动过程中读取和执行EFI引导程序

  • VFAT(虚拟文件分配表)是一种文件系统,主要用于支持长文件名,兼容Windows系统。它是FAT文件系统的一个变体,广泛用于跨平台的数据存储和交换,但在Linux中不支持权限控制,存在安全性风险。
  • EFI(可扩展固件接口)是取代传统BIOS的固件接口,通常用于启动操作系统。EFI系统分区通常采用FAT32格式,这使得EFI能够与VFAT兼容,从而在启动过程中读取和执行EFI引导程序。

注:/boot存放内核efi/efi/boot/efi)存放引导EFI目录是你grub-install生成的引导文件,位置取决与你,一般存放位置基本就是/efi/EFI或者/boot/efi/EFI

  • 若将 EFI 分区直接挂载为/boot,则内核文件会直接存放在该 EFI 分区中(而非根文件系统的/boot目录),系统引导也完全基于这个挂载为/boot的 EFI 分区实现。
  • 若将 EFI 分区挂载为/efi,则内核文件会正常存放在根文件系统的/boot目录中,而挂载为/efi的 EFI 分区仅承担引导功能。
  • 单独划分/boot分区(作为内核专用分区,与/、/home等分区分离,可使用相同文件系统),同时单独划分 EFI 分区并将其挂载到/boot/efi。这种方式下,内核存储与引导分区完全独立,既能避免内核文件与其他系统文件相互影响,又能最大程度降低 Windows 系统更新对 Linux 引导的干扰,稳定性最佳。

swap交换空间大小分配

RAM Suspend support? Hibernation support?
2 GB or less 2 * RAM 3 * RAM
2 to 8 GB RAM amount 2 * RAM
8 to 64 GB 8 GB minimum, 16 maximum 1.5 * RAM
64 GB or greater 8 GB minimum Hibernation not recommended!

基础分区配置

1
2
3
4
sda      8:0    0    30G  0 disk 
├─sda1 8:1 0 1G 0 part
├─sda2 8:2 0 4G 0 part
└─sda3 8:3 0 25G 0 part

这边以30G为例,/home,/boot就不单独分了

分区 大小
EFI 1G
swap 4G
/ 25G

格式化EFI分区

1
mkfs.fat -F 32 /dev/sda1

格式化swap分区

1
mkswap /dev/sda2
配置ext4文件系统

格式化/分区

1
mkfs.ext4 /dev/sda3
配置btrfs文件系统

格式化btrfs分区,并设置该分区的自定义LABLEmyArch

1
mkfs.btrfs -L myArch /dev/sda3

为了创建子卷,先挂载btrfs分区到/mnt

1
mount -t btrfs -o compress=zstd /dev/sda3 /mnt

查看挂载情况

1
df -h 

创建btrfs子卷

1
2
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷

查看子卷情况

1
btrfs subvolume list -p /mnt

子卷创建好后取消挂载

1
umount /mnt

挂载

示例这里:sda1EFI分区,sda2swap分区,sda3/分区

1
2
3
4
sda      8:0    0    30G  0 disk 
├─sda1 8:1 0 1G 0 part
├─sda2 8:2 0 4G 0 part
└─sda3 8:3 0 25G 0 part

ext4文件系统挂载

1
2
3
4
5
mount /dev/sda3 /mnt # 挂载 / 目录

mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sda1 /mnt/boot # 挂载 /boot 目录
swapon /dev/sda2 # 挂载交换分区

btrfs文件系统挂载

1
2
3
4
5
6
7
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda3 /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda3 /mnt/home # 挂载 /home 目录

mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sda1 /mnt/boot # 挂载 /boot 目录
swapon /dev/sda2 # 挂载交换分区

查看挂载和swap启用情况

1
2
df -h # 查看挂载情况
swapon -s #查看swap分区启用情况

安装系统

重新安装密钥

1
pacman -S archlinux-keyring

pacstrap 脚本安装基础包

1
2
# 如果使用btrfs文件系统,额外安装一个btrfs-progs包
pacstrap /mnt base base-devel linux linux-headers linux-firmware btrfs-progs
  • base :基础系统
  • base-devel : 工具包
  • linux : 标准内核
  • linux-headers : 标准内核头文件
  • linux-lts : 长期支持版内核
  • linux-lts-headers : 长期支持版内核头文件
  • linux-zen : 高性能内核,当然功耗更高
  • linux-zen : 高性能内核头文件
  • linux-firmware : linux固件
  • btrfs-progs : 管理 Btrfs 文件系统的用户空间工具

安装其他必要的功能性软件

1
pacstrap /mnt networkmanager vim sudo zsh zsh-completions grub os-prober ntfs-3g bluez bluez-utils intel-ucode openssh
  • networkmanager : 网络
  • vim : vim编辑器
  • nano : nano编辑器
  • sudo : 提权工具,没有这个提不了权,至少gentoo是这样的
  • zsh : zsh作为shell,例如:/bin/zsh
  • zsh-completions : zsh提供智能补全支持的工具
  • bash : bash作为shell,例如:/bin/bash,不习惯zsh可以改为这个,zsh美化方便
  • bash-completions : bash提供智能补全支持的工具
  • grub : grub引导
  • os-prober : 多系统检测
  • efibootmgr : efi启动项管理工具,管理和编辑可用的启动目标和逻辑启动顺序。
  • ntfs-3g : ntfs可读写
  • bluez : 实现蓝牙协议栈的官方开源框架
  • bluez-utils : 基于 bluez 框架开发的用户级命令行工具
  • intel-ucode : 英特尔的cpu微码,CPU 制造商(Intel/AMD)提供的底层指令集,我的intel
  • amd-ucode : amd的cpu微码,CPU 制造商(Intel/AMD)提供的底层指令集
  • openssh : ssh远程连接服务

生成fstab文件

使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件,-U是指以UUID方式挂载配置

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

检查一下配置情况

1
cat /mnt/etc/fstab

chroot切换根硬盘

把系统环境切换到新安装的系统

1
arch-chroot /mnt

设置主机名和时区

配置主机名

1
2
3
vim /etc/hostname # 编辑hostname文件,输入你要起的主机名
# 或
echo myhost > /etc/hostname # 这里我起主机名myhost

配置host文件

1
2
3
4
5
6
vim /etc/hosts

# 加入
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhost.localdomain myhost

设置时区

/etc/localtime 下用 /usr/share/zoneinfo/ 中合适的时区创建符号链接

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

硬件时间设置

将系统时间同步到硬件

1
hwclock --systohc

设置locale

Locale 决定了软件使用的语言、书写习惯和字符集。

编辑 /etc/locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号(#)

1
vim /etc/locale.gen

生成locale

1
locale-gen

/etc/locale.conf 输入内容

1
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf

设置root密码

1
passwd root

安装引导程序

安装 GRUB 到 EFI 分区

1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH

因为这里用的是/boot作为EFI分区,所以–efi-directory=/boot,–bootloader-id=ARCH是名称,会安装到/boot/EFI/ARCH/grubx64.efi

编辑/etc/default/grub配置

1
vim /etc/default/grub
  • 去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数,quiet隐藏详细信息
  • loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错
  • 加入 nowatchdog 参数,看门狗是 Linux 里的监测机制,会持续监控系统运转状态,关闭可以显著提高开关机速度
  • 多系统引导需要在底部添加GRUB_DISABLE_OS_PROBER=false来启用os-prober功能

生成grub所需要的配置文件

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

完成安装

创建普通用户

1
useradd -m -G wheel 用户名

创建用户密码

1
passwd 用户名

开放wheel组管理权限以赋予用户root权限

1
2
visudo
# 删除%wheel ALL=(ALL:ALL) ALL前的#,启用

启用安装的服务

1
2
3
systemctl enable NetworkManager
systemctl enable bluetooth
systemctl enable sshd

基础安装退出

1
2
3
exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启

桌面环境安装

显示层级关系

  1. 显示管理器(gdm3/lightDM/sddm)
  2. 桌面环境(GNOME/XFCE4/KDE)
  3. 显示协议层(X11/Wayland)
  4. 显示实现层(Xserver/Weston(桌面合成器)+ 图形驱动)
  5. 硬件底层(GPU、显存、显示器)

显示管理器

  • gdm3 : gnome系列的图形管理器
  • sddm : kde系列的图像管理器
  • LightDM : 显示管理器的规范解决方案,轻量级的

kde桌面环境安装

简化安装

1
pacman -S plasma-desktop ssdm
  • plasma-desktop : Plasma 的最小安装
  • plasma-meta : 自动依赖并安装 plasma 包组 + 一系列 KDE 官方推荐的附加工具
  • plasma : KDE Plasma 桌面环境所必需的 最基础组件,确保能启动并使用完整的桌面功能。
  • sddm : sddm图形管理器

启动sddm启动管理器

1
systemctl enable sddm

gnome桌面环境安装

简化安装

1
pacman -S gnome gnome-tweaks
  • gnome : 包含基本的桌面环境和一些集成良好的应用
  • gnome-tweaks : 系统设置增强工具,如果你想自定义桌面,建议下载
  • gnome-extra : 包含其它GNOME应用,包含gnome-tweaks

启动gdm图形管理器

1
systemctl enable gdm

xfce桌面环境安装

1
pacman -S xfce4  xfce4-goodies sddm
  • xfce : Xfce 桌面环境的核心组件
  • xfce4-goodies : Xfce 桌面的扩展工具集
  • sddm : sddm图形管理器

启动sddm图形管理器

1
systemctl enable sddm

Cinnamon桌面环境安装

简化安装

1
pacman -S cinnamon sddm
  • cinnamon : Cinnamon 桌面环境
  • sddm : sddm图形管理器

启动sddm图形管理器

1
systemctl enable sddm

常用软件安装

换软件源

下载国内软件源

1
curl -L 'https://archlinux.org/mirrorlist/?country=CN&protocol=https' -o /etc/pacman.d/mirrorlist

配置源文件,取消链接最前面的#号

1
vim /etc/pacman.d/mirrorlist

生效应用软件源

1
sudo pacman -Sy

开始32位支持库与ArchLinux中文社区

编辑/etc/pacman.conf文件

1
vim /etc/pacman.conf
  • 去掉 [multilib] 一节中两行的注释,来开启 32 位库支持
  • 添加archlinuxcn源
1
2
3
4
5
[archlinuxcn]
# 清华大学开源软件镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
# 中国科学技术大学开源镜像站
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

刷新pacman数据库并更新

1
2
sudo pacman -S archlinuxcn-keyring # cn 源中的签名
sudo pacman -Syy # 刷新软件包

安装软件

1
sudo pacman -S konsole dolphin ark sof-firmware alsa-firmware alsa-ucm-conf adobe-source-han-serif-cn-fonts firefox chromium gwenview
  • konsole : 终端模拟器
  • dolphin : 文件管理器
  • ark : 压缩文件
  • sof-firmware : 现代声卡的固件支持
  • alsa-firmware : 传统声卡的固件补充
  • alsa-ucm-conf : 音频设备的配置文件
  • adobe-source-han-serif-cn-fonts : 开源的中文字体
  • firefox : 火狐浏览器
  • chromium : chromium浏览器
  • gwenview : 图片查看器
  • steam : steam游戏商城
  • 下面这四个是确保kde桌面环境Discover(软件中心)可用的
  • packagekit :跨桌面环境的软件包管理服务
  • packagekit-qt6 : packagekit的Qt6 绑定库
  • appstream : 软件元数据标准和处理工具
  • appstream-qt : appstream 的 Qt 绑定库

安装输入法

安装

1
2
3
4
5
sudo pacman -S fcitx5-im # 输入法基础包组
sudo pacman -S fcitx5-chinese-addons # 官方中文输入引擎
sudo pacman -S fcitx5-anthy # 日文输入引擎
sudo pacman -S fcitx5-pinyin-moegirl # 萌娘百科词库。二刺猿必备(archlinuxcn)
sudo pacman -S fcitx5-material-color # 输入法主题

配置环境变量

1
2
3
4
5
6
7
8
vim /etc/environment

# 添加以下内容
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus