当前教程更新日期:2025/03/17

笔者在入门学习linux时选择了ArchLinux开始传教,翻阅了很多教程,踩了很多新手的坑。零零散散Obsidian中存下很多自己需要注意的事项。遂写成一篇针对性的安装方案,以供大家参考。
NS论坛中的大佬自然不少,有纰漏的地方还请大家指教。

安装时遇到报错请首先在ArchWiki上寻找解决方案。

参考网页:

ArchWiki Install guide(官方) 请首先参考官方安装文档
arch_icekylin的博客(常见教程,基于btrfs)
archlinuxstudio.github.io(国内不可达)
unixchad全盘加密安装Archlinux_bilibili

笔记本配置如下:

机革 耀世15pro i7-14650HX/RTX4060 32G/4T 网卡AX211

采用系统配置如下:

systemd-boot作为bootloader
BIOS (UEFI): N.1.07MRO11 (5.27)
Bootmgr: UEFI OS – BOOTX64.EFI
Init System: systemd 259.1-1-arch

xfs文件系统(采用home单独分区,单系统共三个分区)——不采用加密
Archlinux做主体但采用linux-cachyos作为内核
nvidia-open-dkms驱动(cachyos仓库版本 595.45.04-2)
KDE桌面环境(plasma-6.6.2)


安装详细过程

安装前准备

ArchLinux 官方iso源
中科大镜像源(ustc)

!!请注意,首次安装时一定要在BIOS中关闭安全启动(secure boot)!!
!!机型与bios版本各异,如无加密配置,开启安全启动可能导致安装完成后无法启动引导!!

!!下载iso后务必校对sha256!!

  • 建议使用ventoy来dd一个新的安装u盘,自带多iso选择,u盘空间>=2GB
  • 使用ventoy格式化u盘并直接复制archlinux.iso文件到iso盘中。将iso复制进大的盘中即可
  • 开机后自动进入ventoy选择界面中,分辨率默认较低但不影响使用,选择archlinux的iso文件后会自动装载initramfs。

1.网络环境配置(针对国内网络)

禁用镜像选择,防止镜像不可达

systemctl stop reflector.service
systemctl status reflector.service

确认进入UEFI安装模式:

ls /sys/firmware/efi/efivars
  • 验证启动模式为UEFI,需要有一系列变量输出

连接网络并矫时

ip ad 
# 无线网络
iwctl 
device list 
station wlan0 scan 
station wlan0 get-networks 
station wlan0 connect "Your-WiFi-SSID"

# 有线网络直接插入网线即可
exit 
  • 注意此处检查网卡以及设备,尝试ping查看联网情况
ping www.bilibili.com
## 校准时间
timedatectl status 
timedatectl set-ntp true 
timedatectl set-timezone Asia/Shanghai # 注意此处仅有Shanghai而没有beijing

timedatectl status 
date ## 查看时间

换源

vim /etc/pacman.d/mirrorlist
  • 找到China相关镜像源,移动到镜像列表顶端。(所在地广州深圳所以选了SusTech)
  • 可自行添加sustech镜像源,更改ustc镜像源名称即可
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.sustech.edu.cn/archlinux/$repo/os/$arch
## 软件包密钥初始化
pacman -Sy archlinux-keyring
pacman-key --init
pacman-key --populate

## 选择性更新
pacman -Su

此处可能由于密钥验证问题报错,回车跳过内容即可。

## 文本编辑器,vim系与nano系,建议优先使用micro,命令较易,如报错可采用vim
## 不一定能进行剪切,建议手动输入
## micro: [ctrl+s]保存 [ctrl+q]退出 [ctrl+x/c/v]剪切/复制/粘贴 
## vim: [:i enter]进入编辑模式 [esc]退出编辑模式 [:wq!]保存并退出 
pacman -Sy vim micro

2.分区、格式化与挂载
lsblk -lf
df -hT       ## 以人类可读方式输出挂载情况
fdisk -l     ## 查看当前磁盘分区与挂载结构

分区

## 请根据上述fdisk中的挂载情况,打开调整磁盘空间的TUI界面
cfdisk /dev/nvme0n1 
## cfdisk /dev/sdax ## 此处x为磁盘序号,请根据实际情况进行调整!!可参考笔者的fdisk -l输出
fdisk -l

Disk /dev/nvme0n1:3.73 TiB,4096805658624 字节,8001573552 个扇区
磁盘型号:ZHITAI TiPlus7100 4TB                   
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:E7C8BF28-59BD-49D0-818F-A6B9CF592DB3
设备                 起点       末尾       扇区      大小  类型
/dev/nvme0n1p1       2048    2099199    2097152   1G    EFI 系统
/dev/nvme0n1p2    2099200 6444550143 6442450944   xxxG  Linux 文件系统
/dev/nvme0n1p3 6444550144 8001572863 1557022720   xxxG  Linux 文件系统

此处需要注意,nvme及sd为磁盘类型标识。

  • 对nvme硬盘而言,n1、n2表示硬盘位,生成的分区使用p1、p2等按照顺序表示.例如笔者本人的硬盘标识与分区情况
    图片为使用cfdisk /dev/nvme0n1命令后的结果
    image
  • 对ssd硬盘而言(虚拟机同理),使用sda、sdb、sdc等表示硬盘位,数字表示分区(例如sda1等)
  • 建议操作顺序:
    1 先完全删除所有分区,再新建新的分区
    2 新建分区时,注意设置好分区类型
    3 最后退出前,一定要“WRITE”写入自己的分区操作

磁盘分区建议大小

分区名 挂载点 大小 GPT类型 文件系统
/dev/nvme0n1p1 /boot 2G EFI System FAT32
/dev/nvme0n1p2 / 256G Linux filesystem XFS
/dev/nvme0n1p3 /home remains Linux filesystem XFS
  • 空间大小根据需求调整,/boot分区最好大于512M,根分区大于80G

格式化

mkfs.fat -F32 -n BOOT /dev/nvme0n1p1
mkfs.xfs -L ROOT /dev/nvme0n1p2
mkfs.xfs -L HOME /dev/nvme0n1p3
  • 如格式化错或提示已有文件系统,可采用 -f 标签来强制执行
mkfs.fat -F32 -nf BOOT /dev/nvme0n1p1
## xfs文件系统同理
  • 对ext4,可使用 -n 来为分区命名并添加标签
  • 对xfs,可使用 -L 来为分区命名并添加标签

挂载

mount /dev/nvme0n1p2 /mnt
## 一定要先将根分区挂载到/mnt中!

mkdir -p /mnt/home /mnt/boot
mount /dev/nvme0n1p3 /mnt/home
mount /dev/nvme0n1p1 /mnt/boot

可以在此处思考多分区情况下挂载的拓扑结构,使用fdisk -l查看挂载情况


3.系统前期准备(更换为cachyos内核及v3/v4编译版本)

1. 密钥初始化

pacman-key --init
pacman-key --populate
pacman -Syy
curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos.tar.xz
tar xvf cachyos.tar.xz
cd cachyos-repo
./cachyos-repo.sh
  • 在这一步只需要更新密钥及镜像列表

2. 检查CPU架构及支持情况,根据支持情况修改仓库列表

/lib/ld-linux-x86-64.so.2 --help | grep 'supported'
## 会得到:
  x86-64-v4 (supported, searched)
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)
## 根据最高等级的来确定仓库选择
micro /etc/pacman.d/cachyos-mirrorlist 
micro /etc/pacman.d/cachyos-v3-mirrorlist 
## 在此处确定仓库,选择v3或v4
  • 更改镜像列表内镜像站的顺序,以便快速下载软件包

3. 需要安装的包

base base-devel 				   ## 基本组件
linux-firmware linux-cachyos linux-cachyos-headers ## 内核与固件
dkms mkinitcpio intel-ucode(或者 amd-ucode) 	   ## 为显卡驱动模块做准备
xfsprogs exfatprogs 				   ## 文件系统包
neovim micro bash-completion networkmanager 	   ## 网络与文本编辑、补全
haveged ## 加解密性能优化
  • 注意微码(ucode)的选择与文件系统的选择
  • neovim 与 micro为建议使用的两类编辑器
  • 此处已经选择了cachyos优化后的内核
pacstrap -K /mnt “上述软件包”
## 请按照实机情况选择

此处为第一次安装相关组件包

4. 生成fstab挂载表

genfstab -U /mnt >> /mnt/etc/fstab
  • -U参数可确保系统通过 UUID 来识别分区,比通过设备名挂载更稳定可靠
cat /mnt/etc/fstab
## 最后一定记得检查fstab文件是否被正确生成!!

4.Chroot配置基本环境
arch-chroot /mnt ## 进入挂载好的系统

1. 时区与语言信息

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ## 创建时区软链接
hwclock --systohc 					## 将硬件时间同步至系统时钟
  • 注意时区信息没有北京,只有上海
timedatectl status 
timedatectl set-ntp true 
timedatectl set-timezone Asia/Shanghai
timedatectl status 
date

## 同理,设置系统时间 

2. locale.gen

micro /etc/locale.gen

找到自己所在地的语言并取消掉注释(即删除前面的#号)
en_US.UTF-8 UTF-8(英文,此处必须使用!!
zh_CN.UTF-8 UTF-8(简体中文)
es_ES.UTF-8 UTF-8(西班牙语)
zh_HK.UTF-8 UTF-8(繁体中文)

  • 语言按需取消注释
locale-gen 				   ## 生成语言配置文件
echo 'LANG=en_US.UTF-8' > /etc/locale.conf ## 将语言配置文件导入至conf
cat  /etc/locale.conf 			   ## 查看是否导入成功

3. 主机名与本地回环地址

micro /etc/hostname

此处填写自定义主机名,例如
MyArch

micro /etc/hosts ## 编辑本地回环地址
127.0.0.1	localhost
::1		localhost
127.0.1.1	MyArch.localdomain	MyArch

4. 换源

micro /etc/pacman.d/mirrorlist
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.sustech.edu.cn/archlinux/$repo/os/$arch
pacman -Sy archlinux-keyring
pacman-key --init
pacman-key --populate

5. 软件包仓库配置

curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos.tar.xz
tar xvf cachyos.tar.xz
cd cachyos-repo
./cachyos-repo.sh
## 同理,在这一步只需要更新密钥及镜像列表
## 不必完全更新所有包,因为镜像源顺序未调整
micro /etc/pacman.d/cachyos-mirrorlist 
micro /etc/pacman.d/cachyos-v3-mirrorlist 
## 更改镜像列表内镜像站的顺序,将china列表的镜像源移动至开头(注意仓库版本号)
./cachyos-repo.sh
## 再执行一次以便更新所有包
micro /etc/pacman.conf
  • 取消注释color (ILOVECADDY)等进度条项目,笔者的配置:
# Misc options
UseSyslog
Color
#NoProgressBar
PrettyProgressBar
#ILoveCandy
CheckSpace
VerbosePkgLists
ParallelDownloads = 9
DownloadUser = alpm
#DisableSandbox

5.配置Bootloader(systemd-boot方案)
bootctl install 	## 检索已安装的内核,生成boot加载项
bootctl update 		## 更新内核的加载项
bootctl list 		## 列出已有的引导加载条目

默认引导项设置

micro /boot/loader/loader.conf
  • 编辑config文件为:
default Arch_Cachyos.conf
timeout 5
console-mode keep
editor yes
  • 注意default 处的文件名,按照内核的信息进行配置。可自定义,但需要匹配
  • timeout 指加载项等待时间
  • console-mode 指分辨率模式,建议keep

引导项文件创建

blkid -s UUID
## 此命令查看UUID号
micro /boot/loader/entries/Arch_Cachyos.conf
## 注意此处文件名,要与loader.conf中的文件名相匹配
  • 文件中的内容如下
title Arch CachyOS ## 可自定义
linux /vmlinuz-linux-cachyos
initrd /intel-ucode.img
initrd /initramfs-linux-cachyos.img
options root=UUID=<UUID> rw nvidia_drm.modeset=1 nvidia_drm.fbdev=1 ibt=off zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=30  loglevel=5 

注意<UUID>需要按照实际根分区UUID号填写!!!!

  • 并且请注意“options”这一项,单词不要拼写错误!!
  • nvidia_drm.modeset=1 必需。启用 DRM (Direct Rendering Manager) 内核模式设置,这是 Wayland 会话的先决条件。
  • nvidia_drm.fbdev=1 强制 Nvidia 驱动接管帧缓冲设备 (framebuffer)。在较新内核中,可以解决 simpledrm 与 Nvidia 驱动冲突导致的启动挂起或黑屏问题 。
  • ibt=off 关闭间接分支跟踪 (Indirect Branch Tracking)。这是一个针对较新 Intel CPU 的常见兼容性修复,可解决 Nvidia 驱动加载失败的问题。
  • zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=30 开启ZSWAP,略微增加CPU功耗与占用,提升RAM利用率与性能。
  • loglevel=5 设置日志记录登记,5表示info级别的记录,有利于debug.
bootctl install 	
bootctl update 		
bootctl list 		
再执行一遍以确保boot分区中存在加载项
6.重启进入系统前的准备

1. 用户配置

passwd root					## 设置root密码
useradd -m -G wheel -s /bin/zsh Username	## 设置普通用户名,自定义
passwd Username					## 为普通用户设置密码
EDITOR=vim visudo				## 编辑普通用户的权限

取消注释 %wheel ALL=(ALL:ALL) ALL NOPASSWD:ALL(一机一用户使用懒得输密码)
或者%wheel ALL=(ALL:ALL) ALL ALL (安全性高一些)

2. 显卡驱动装载

pacman -Syyu nvidia-open-dkms nvidia-settings nvtop nvidia-utils \  ##这一行必须安装
libva-nvidia-driver libvdpau opencl-nvidia ##这一行选择性安装

micro /etc/mkinitcpio.conf

确保文件中MODULES包含以下部分:
MODULES=(nvidia nvidia_drm nvidia_uvm nvidia_modeset)

确认钩子完整性
HOOKS=(base systemd udev microcode autodetect modconf kms keyboard keymap block filesystems fsck)

mkinitcpio -P 		## 重新编译模块进入内核

3. 基本运行组件

pacman -Syyu paru fastfetch htop yazi fd git foot networkmanager  emptty

paru 为AUR助手,可用于帮助安装仓库中的软件包(RUST)
fastfetch 可展示当前系统概况
htop 展示当前系统CPU、RAM等占用情况
yazi 为TUI文件管理器,可以在终端管理器中展示当前文件夹下的情况 (RUST)
foot C语言编写的wayland下的终端模拟器,完全基于CPU进行运算与渲染
emptty CLI登陆会话管理器,相比于sddm更加轻量简洁。

systemctl enable emptty.service
systemctl enable NetworkManager
systemctl enable haveged
systemctl status NetworkManager
## 打开常用服务的开机自启

4. 软件仓库支持(如果不想长期挂代理的话可加入,追求至高隐私与安全建议不加)

micro /etc/pacman.conf
## 在文末加入
[archlinuxcn]
Server = https://mirrors.sustech.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
pacman -Syy archlinuxcn-keyring
pacman-key --init
pacman-key --populate
## 加入仓库后需重新初始化密钥,并且签入archlinuxcn仓库的密钥

5.创建交换文件 (28G)_ 自行调整

cd /
dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress ## 创建16GB的交换文件
chmod 600 /swapfile				## 修改swapfile文件权限
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap defaults 0 0' >> /etc/fstab

free -h
swapon --show
cat /etc/fstab
## 确认fstab文件中有swapfile的相关信息
7.基本桌面组件安装与配置:(KDE桌面)——可以等重启后安装
pacman -S plasma-desktop dolphin power-profiles-daemon ark plasma-nm kscreen kwallet-pam spectacle
## 	(建议的)基本桌面组件
pacman -Sy pipewire pipewire-audio pipewire-pulse wireplumber  plasma-pa alsa-firmware
## 基本音频套件
pacman -Sy bluez bluez-utils bluedevil blueman
## 蓝牙套件
## 包括个人推荐的基于GTK的GUI蓝牙管理软件 blueman
systemctl enable bluetooth.service
systemctl enable power-profiles-daemon.service
## 套件自启动
8. 卸载磁盘,准备进入桌面系统进一步配置
  • 在此之前,请记得删除之前为了引入cachyos仓库而下载的cachyos.tar.xz等包
cd /
rm -fr cachyos.tar.xz cachyos-repo
exit
umount -R /mnt ## 或者umount -Rl /mnt 
reboot

此处如果显示target is busy,可以采用 -l 标签实现“惰性卸载”
执行reboot指令时需要记得拔出启动盘,以进入引导界面

后记

  • 上述内容只是我曾经在参阅了众多安装教程后整理出来的一份适合笔者自己硬件设备的安装指南,以便于我后期进行重装系统等操作,不一定适合大家的设备,执行相关操作前请充分考虑后果!!
  • 纯手搓,后续会听取大家的意见及时修改更新,还希望大家多多指点。欢迎加入Arch神教
    要不要考虑加个精 xhj003