尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Arch Linux 安装操作指南

发布时间:2026/9/28 19:20:00

资讯中心
01
ARTICLE

Arch Linux 安装操作指南

Arch Linux 安装操作指南
Arch Linux 安装操作指南本指南整体方案为UEFI LUKS2 全盘加密 Btrfs 子卷 systemd-boot UKI Secure Boot TPM2.0 自动解锁 交换文件 Snapper快照工具。关于占位符文中/dev/nvme0n1为示例磁盘实际请用lsblk确认后替换。UUID、设备名、用户名等带或注释的地方都要按你的真实情况填写。执行环境分三种每步开头会标注[Live ISO]Arch 安装镜像的 live 环境[chroot]arch-chroot /mnt之后[系统内]首次重启、进入已安装系统后0. 前置准备备份硬盘上所有重要数据。全盘加密会清空目标磁盘。到 archlinux.org/download 下载 ISO用 Rufus、Ventoy 或dd写入 U 盘。关机后进入固件UEFI设置关闭 Secure Boot安装阶段需要后面用 sbctl 重新启用关闭 RST / RAIDSATA/NVMe 模式设为 AHCI确认启动模式为 UEFI非 Legacy/CSM从 U 盘启动进入 live 环境。# [Live ISO] 确认处于 UEFI 模式应输出 64cat/sys/firmware/efi/fw_platform_size# 确认能访问网络ping-c3archlinux.org# 若使用无线网络iwctl# 交互式输入# station wlan0 scan# station wlan0 get-networks# station wlan0 connect SSID# exit# 同步系统时间影响 TLS 与密钥校验timedatectl set-ntptruetimedatectl status若主板固件只支持 32 位 UEFIfw_platform_size输出 32本指南的 systemd-boot 方案不适用需要换其它引导方式。1. 磁盘分区按计划划三个分区GPT序号用途大小文件系统说明p1BOOT1Gext4独立 /boot存放内核与 cmdlinep2ESP1Gfat32EFI 系统分区存放引导器与 UKIp3ROOT剩余全部先 LUKS内部 Btrfs加密根# [Live ISO] 查看磁盘lsblk-ffdisk-l# 用 gdisk/fdisk 建立 GPT 与三个分区示例/dev/nvme0n1fdisk/dev/nvme0n1# g 新建 GPT# n - 1 - 默认起始 - 1G 建 p1# t - 1 - 1 (EFI System 也可用这里保持简单)# n - 2 - 默认起始 - 1G 建 p2# t - 2 - 1 (EFI System)# n - 3 - 默认起始 - 回车用满 建 p3# t - 3 - 20 (Linux filesystem此处保持默认即可)# w 写盘# 格式化非加密分区mkfs.ext4-LBOOT /dev/nvme0n1p1 mkfs.fat-F32-nESP /dev/nvme0n1p2分区类型代码按你的工具选择即可关键是 p2 标记为 EFI System。p1、p2 未加密是计划的既定安排注意未加密的 /boot 在双系统场景下可被其它系统或启动盘改动。2. 加密根分区LUKS2# [Live ISO] 加密 p3会要求设置一个较强的 passphrasecryptsetup luksFormat /dev/nvme0n1p3# 打开映射命名为 rootcryptsetupopen/dev/nvme0n1p3 root# 确认映射存在ls/dev/mapper/root记录将来要用的 LUKS 分区 UUID后面 cmdline 与 enroll 都要用blkid-sUUID-ovalue /dev/nvme0n1p3|tee/tmp/luks-uuid3. 创建 Btrfs 子卷# [Live ISO] 在映射设备上建 Btrfsmkfs.btrfs-LARCH /dev/mapper/root# 先临时挂到 /mnt 才能创建子卷mount/dev/mapper/root /mnt# 创建计划的全部子卷btrfs subvolume create /mnt/ btrfs subvolume create /mnt/home btrfs subvolume create /mnt/var_log btrfs subvolume create /mnt/var_cache btrfs subvolume create /mnt/var_tmp btrfs subvolume create /mnt/swap btrfs subvolume create /mnt/tmp# 查看确认btrfs subvolume list /mnt# 卸载准备按子卷重新挂载umount/mnt创建那么多子卷是因为有些其实不用被快照比如日志和缓存文件所以把它们排除当然你也可以用Timeshift。4. 按子卷挂载# [Live ISO] 根子卷使用计划中的挂载选项mount-tbtrfs-osubvol/,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt其余子卷挂到对应位置# 目录先建好mkdir-p/mnt/{home,var/log,var/cache,var/tmp,swap,tmp,boot,efi}# 各子卷挂载mount-tbtrfs-osubvol/home,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/homemount-tbtrfs-osubvol/var_log,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/var/logmount-tbtrfs-osubvol/var_cache,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/var/cachemount-tbtrfs-osubvol/var_tmp,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/var/tmpmount-tbtrfs-osubvol/swap,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/swapmount-tbtrfs-osubvol/tmp,compresszstd:1,noatime,space_cachev2,ssd /dev/mapper/root /mnt/tmp# /var/tmp 与 /tmp 语义上不压缩更稳妥也可改为 compressno# 非加密分区mount/dev/nvme0n1p2 /mnt/efi# ESP - /efimount/dev/nvme0n1p1 /mnt/boot# BOOT - /bootESP 挂/efi、独立 BOOT 挂/boot是本指南采用的约定UKI 与引导器放 ESP内核与 cmdline 放 /boot。若你更想把 ESP 直接挂/boot请同步调整第 8、9 步里的路径。检查挂载层级lsblk-ffindmnt-R/mnt5. 镜像源与基础系统# [Live ISO] 挑选国内快速镜像写入 mirrorlistreflector--save/etc/pacman.d/mirrorlist--threads8-ccn--sortrate# 安装基础系统pacstrap-K/mnt\base base-devel linux linux-firmware linux-headers\sudonanovimlessmoresystemd-ukify btrfs-progs networkmanager\intel-ucode noto-fonts noto-fonts-cjk noto-fonts-emoji\apparmor audit apparmor-profiles tmux fish# 生成 fstab-U 用 UUIDgenfstab-U/mnt/mnt/etc/fstablinux-firmware自 2025 年起已拆分为多个厂商子包主包变为元包安装它仍会拉入全部固件行为与原来一致。若只想装所需固件可换成如linux-firmware-nvidia、linux-firmware-amdgpu等子包。进入新系统arch-chroot /mnt6. chroot 内基础配置以下均为[chroot]。# 时区timedatectl set-timezone Asia/Shanghailn-sf/usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 硬件时钟hwclock--systohc# 本地化编辑 /etc/locale.gen取消以下两行注释# en_US.UTF-8 UTF-8# zh_CN.UTF-8 UTF-8locale-genechoLANGen_US.UTF-8/etc/locale.conf# 主机名echoPC/etc/hostname# root 密码passwd# 网络systemctlenableNetworkManager/etc/hosts建议补上非必需可跳过127.0.0.1 localhost ::1 localhost 127.0.1.1 PC.localdomain PC7. 配置 initramfs 钩子编辑/etc/mkinitcpio.conf把HOOKS一行改为HOOKS(base systemd autodetect microcode modconf kms keyboard sd-vconsole block sd-encrypt filesystems)要点用systemd基础钩子替代udevsd-encrypt才能读取 TPM2 与rd.luks.*参数。microcode钩子在autodetect之后配合已安装的intel-ucode。若使用中文控制台/etc/vconsole.conf里可设KEYMAPcn、FONT。使用systemd钩子后initramfs 由 systemd 驱动TPM2 自动解锁依赖它。8. 配置 UKI8.1 内核命令行创建/etc/kernel/cmdline把UUIDroot换成第 2 步记录的 LUKS 分区 UUIDrw quiet splash rd.luks.nameLUKS-UUIDroot root/dev/mapper/root rootfstypebtrfs rootflagssubvol lsmlandlock,lockdown,yama,integrity,apparmor,bpf apparmor1 rd.luks.optionstpm2-measure-pcryes,tpm2-deviceauto要点rd.luks.nameUUIDroot告诉 initramfs 把该 LUKS 卷映射为rootUUID 用blkid得到的那个。rootflagssubvol根挂到子卷。lsm...与apparmor1启用 AppArmor配合后面apparmor-profiles。rd.luks.optionstpm2-...允许用 TPM2 自动解锁PCR 与第 12 步 enroll 时保持一致。8.2 mkinitcpio 预设编辑/etc/mkinitcpio.d/linux.preset启用 UKI 输出路径中的efi对应 ESP 挂载点# mkinitcpio preset file for the linux package ALL_config/etc/mkinitcpio.conf ALL_kver/boot/vmlinuz-linux PRESETS(default fallback) #default_config/etc/mkinitcpio.conf #default_image/boot/initramfs-linux.img default_ukiefi/EFI/Linux/arch-linux.efi default_options--splash/usr/share/systemd/bootctl/splash-arch.bmp #fallback_config/etc/mkinitcpio.conf #fallback_image/boot/initramfs-linux-fallback.img fallback_ukiefi/EFI/Linux/arch-linux-fallback.efi fallback_options-S autodetect说明取消default_uki/fallback_uki的注释后即可生成 UKI注释掉*_image可不再生成冗余的initramfs-*.img。ALL_kver保持指向/boot/vmlinuz-linux内核在独立 BOOT 分区。已安装systemd-ukifymkinitcpio 会把 UKI 组装工作交给它无需额外配置。9. 安装 systemd-boot# [chroot] 安装引导器到 ESPbootctl --esp-path/efiinstallbootctl会自动在 ESP 上放置 systemd-boot并在启动时自动发现ESP/EFI/Linux/下的 UKI无需手写 loader 条目。10. 生成 UKI 并首次重启# [chroot] 确保输出目录存在mkdir-p/efi/EFI/Linux# 生成全部预设的 UKImkinitcpio-P# 确认产出ls-l/efi/EFI/Linux/检查无误后退出并重启# [chroot]exit# [Live ISO]umount-R/mnt cryptsetup close rootreboot重启时拔出安装 U 盘从硬盘引导应看到 systemd-boot 菜单并进入系统。首次进入会要求输入 LUKS passphrase。启用 AppArmor# [系统内]systemctlenable--nowapparmor aa-status11. 配置 Secure Bootsbctlsbctl不在基础包列表里先补充安装# [系统内]pacman-Ssbctl流程如下注意 enroll 之前必须让固件进入Setup Mode。重启进固件设置把 Secure Boot 设为 Setup Mode不同主板叫法不同Clear Secure Boot keys / Restore Factory Keys 后再关闭或直接选 Setup Mode使平台密钥被清空。回到系统确认状态sbctl status# Secure Boot: Disabled / Setup Mode: Enabled建密钥并登记sbctl create-keys sbctl enroll-keys-m# -m 一并登记 Microsoft 密钥供双系统/部分固件使用给引导相关文件签名并加入数据库之后 pacman 升级自动重签# 查看哪些文件未签名sbctl verify# 逐个登记签名路径按实际sbctl sign-s/efi/EFI/Linux/arch-linux.efi sbctl sign-s/efi/EFI/Linux/arch-linux-fallback.efi sbctl sign-s/efi/EFI/systemd/systemd-bootx64.efi sbctl sign-s/efi/EFI/BOOT/BOOTX64.EFI# 再次核对应全部为 signedsbctl verify重启进固件开启 Secure Boot回到系统确认# [系统内]sbctl status# Secure Boot: Enabled / Setup Mode: Disabled若使用双系统sbctl enroll-keys -m很重要能把 Microsoft 证书一并写入避免 Windows 无法启动。操作 Secure Boot 密钥属于较敏感动作请确认已理解后再执行。12. TPM2 自动解锁systemd-cryptenroll需要 TPM 工具支撑建议安装# [系统内]pacman-Stpm2-tools先导出恢复密钥并妥善保存离线保管TPM 失效时靠它开锁systemd-cryptenroll --recovery-key /dev/nvme0n1p3/root/recovery-keycat/root/recovery-key# 记录后请转移保存并删除本地明文再登记 TPM2systemd-cryptenroll --tpm2-deviceauto --tpm2-pcrs71115 /dev/nvme0n1p3PCR 说明PCR 7Secure Boot 状态PCR 11UKI / 内核度量PCR 15systemd 的系统标识这些与第 8.1 步 cmdline 里的tpm2-measure-pcryes相呼应。登记完成后poweroff重新开机应无需手输 passphrase 即自动解锁。若提示失败说明 PCR 值发生变化例如升级内核、改动 Secure Boot此时仍需手输 passphrase并重新执行 enroll。13. 安装之后以下均为[系统内]。13.1 全局环境变量编辑/etc/environment按需填写示例EDITOR/usr/bin/vim13.2 创建普通用户useradd-mGwheel用户名passwd用户名# 允许 wheel 组使用 sudoEDITORvim visudo# 取消注释这一行# %wheel ALL(ALL:ALL) ALL13.3 启用 multilib 仓库编辑/etc/pacman.conf取消这两行注释[multilib] Include /etc/pacman.d/mirrorlist然后pacman-Syu13.4 安装常用软件pacman-Sfastfetch snapper snap-pac btrfs-assistant\nvidia-open-dkms nvidia-utils lib32-nvidia-utils mesa\wine intel-media-driver libva-nvidia-driver\sof-firmware alsa-ucm-conf alsa-firmware\pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jack\bluez power-profiles-daemon flatpak firefox\nvidia-prime qemu-full virt-manager dkms说明nvidia-open-dkms依赖 DKMS会随内核升级重编译linux-headers已在基础包里。intel-media-driver面向 Intel 核显libva-nvidia-driver用于 NVIDIA 的 VA-API 硬件解码。qemu-fullvirt-manager供后面的虚拟机使用。13.5 启用系统服务systemctlenable--nowbluetooth systemctlenable--nowpower-profiles-daemon systemctlenable--nowlibvirtd部分新版本 libvirt 采用模块化守护进程virtqemud等。若libvirtd不存在或异常检查是否需启用对应模块化服务。13.6 配置 libvirt 默认网络virshnet-start defaultvirshnet-autostart defaultusermod-aGlibvirt用户名13.7 配置 snapper 快照可选随时都能创建快照snapper-croot create-config / snapper-croot create-dSystem Installation Completesnapper-croot list13.8 配置交换文件计划用/swap子卷承载交换文件且不需要休眠支持。# [系统内] 确认 /swap 子卷已挂载findmnt /swap# Btrfs 上创建 swapfile自动处理 no-COWbtrfs filesystem mkswapfile--size8G /swap/swapfileswapon/swap/swapfile# 写入 fstab 以便开机启用grep-q/swap/swapfile/etc/fstab||echo/swap/swapfile none swap defaults 0 0/etc/fstab# 确认swapon--showfree-h13.9 用户级音频服务systemctl--userenable--nowpipewire systemctl--userenable--nowpipewire-pulse systemctl--userenable--nowwireplumber13.10 安装桌面环境按需选择示例为 KDE Plasmapacman-Splasma-meta kde-applications-meta sddm systemctlenablesddm也可换成 GNOMEgnomegdm或其它组合。安装后重启进入图形界面。14. Windows 虚拟机与显卡直通要点这一步涉及较多硬件相关配置按以下流程推进确认硬件支持CPU 开启 VT-d / AMD-ViIOMMUBIOS 中打开。确认至少有两块显卡或核显 独显供宿主机与虚拟机分开使用。启用 IOMMUIntel在内核参数加intel_iommuon iommuptAMD加amd_iommuon iommupt修改/etc/kernel/cmdline后重新mkinitcpio -P重启。绑定 vfio-pci找到要直通设备GPU、显卡声卡的 vendor:device ID。在/etc/modprobe.d/vfio.conf写options vfio-pci idsxxxx:xxxx,xxxx:xxxx。在 initramfs 中按需加载vfio_pci通过/etc/mkinitcpio.conf的MODULES或内核参数。virt-manager 配置虚拟机新建虚拟机安装 Windows。添加 PCI Host Device显卡及其音频设备。固件选择 UEFI OVMF勾选开启 Secure Boot 视需要。若为单显卡直通需要额外的 GPU 解除绑定脚本。验证虚拟机内装 NVIDIA 驱动观察是否报Code 43。检查lspci -nnk中目标设备已由vfio-pci接管。这部分硬件强相关出错多与 IOMMU 分组、驱动加载顺序、是否使用 OVMF 有关。建议先把前面的系统稳定运行再单独调试直通。附阶段检查清单UEFI 模式、Secure Boot 已关闭三个分区建立并格式化正确LUKS 加密 p3 并成功 openBtrfs 七个子卷创建完成各子卷与 /boot、/efi 挂载层级正确pacstrap 完成、fstab 生成时区、locale、hostname、密码、NetworkManager 就绪HOOKS 含 systemd / sd-encryptcmdline 中 UUID 与 LUKS 分区一致UKI 生成且位于 ESP首次重启成功进系统Secure Boot 签名并启用TPM2 自动解锁可用恢复密钥已另存普通用户、sudo、multilib、软件包、服务、snapper、swap 完成桌面环境可用虚拟机与直通可选附常见问题重启后提示找不到内核 / 直接进固件检查 ESP 挂载点与default_uki路径是否一致确认bootctl install成功/efi/EFI/Linux/下有.efi文件。开机仍要求输密码TPM2 未生效通常是 PCR 值变化重新执行systemd-cryptenroll --tpm2-deviceauto --tpm2-pcrs71115 分区。升级后无法开机Secure Boot 拦截确认sbctl verify全部 signed必要时sbctl sign-all重签。reflector 未命中国内镜像手动编辑/etc/pacman.d/mirrorlist把快的源放到最前。Btrfs swapfile 报错确认它建在swap子卷内、未被压缩、且使用btrfs filesystem mkswapfile或chattr C处理。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。