『ArchLinux』简明安装指南(Laptop+Nvidia+Cachyos Kernel +xfs+KDE)

『ArchLinux』简明安装指南(Laptop+Nvidia+Cachyos Kernel +xfs+KDE)
『ArchLinux』简明安装指南(Laptop+Nvidia+Cachyos Kernel +xfs+KDE)

原创性声明:

本文转载自本人在 Nodeseek原创ArchLinux 安装帖,这份教程是我在初步学习 Linux 并积极开荒后得到的经验,在此向大家分享。


  • 笔者在入门学习 linux 时选择了 ArchLinux开始传教,翻阅了很多教程,踩了很多新手的坑。零零散散 Obsidian 中存下很多自己需要注意的事项。遂写成一篇针对性的安装方案,以供大家参考。
  • 有纰漏或者勘误的地方还请大家多多指点。
  • 安装时遇到报错请首先在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 260.2-2-arch

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

安装详细过程

安装前准备

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 		## 列出已有的引导加载条目

(1) 默认引导项设置

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

(2) 引导项文件创建

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)_ 相对于 32GB 内存的选择,可自行调整

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 神教
来源: V2EX - 技术查看原文