# archlinux **Repository Path**: kimux/archlinux ## Basic Information - **Project Name**: archlinux - **Description**: archlinux安装 + 配置文件 - **Primary Language**: Rust - **License**: 0BSD - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-18 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README @[TOC](单EFI分区Archlinux + Windows 10 双启动安装记录) --- 2025.1.19 , 修改部分内容 2024.1.11,增加部分安装后的设置内容,修改部分BUG 2024.1.10, 修改EFI分区挂载点 2024.1.1 ,修改部分内容 2023.1.29 , 更新部分内容,加入了fcitx5安装 2023.2.1,换了块硬盘,测试了一下全新安装,半个小时完成,发现并修改一处错误 2023.2.2 , 修改部分内容 2023.2.9 , 最后加入hyprland桌面环境的安装过程链接 2023.2.28,修复了桌面安装的链接 2023.3.5,修改swapfile创建方式,修改部分内容 --- # 前言 本次安装是在一块1TB SATA3 接口的SSD硬盘独立安装,WIN11是在另一块硬盘,计划单独为ARCH分配1个EFI分区,1个BTRFS分区,与WIN11隔离 安装方式为使用手动分区,然后使用ARCHINSTALL进行安装 本文使用archlinux官方镜像,如果使用其他镜像,可能有部分命令无法运行 --- # 一、安装前准备 ## 1.下载ISO 在[官方页面](https://archlinux.org/download/)找一个镜像站下载最新的ISO文件 使用[ventoy](https://www.ventoy.net/cn/download.html )创建启动U盘,并把ISO文件复制到U盘 ## 2.用USB启动 前2步没什么好说的......安装系统的常规操作 # 二、开始安装 ## 1.检查是否是UEFI启动 ```bash efivars --list ``` 如果命令结果显示了内容且没有报告错误,则系统是以 UEFI 模式引导,那么就可以继续往下看, 否则就不是UEFI引导,本文不适合非UEFI引导的安装,如果强行按照本文继续安装,发生任何损失本人概不负责 ## 2.检查网络 本文不包括无线连接的内容,如有需要,请参考官方安装教程 ```bash ping -c3 baidu.com ``` --- 如果启动模式和网络都没有问题,那么就可以开始安装了 --- ## 3.更新系统时间 ```bash timedatectl set-ntp true ``` ## 4.更新mirrorlist ```bash # 备份原镜像源 cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak # 筛选国内高质量HTTPS镜像,取前10按速度排序保存 -c China:仅中国大陆镜像 -p https:只保留 HTTPS 协议 --delay 3:超时 3 秒丢弃慢速节点 --completion-percent 95:同步完整度≥95% --latest 10:只保留测速最优前 10 个 --sort score:按镜像稳定性 + 速度综合评分排序 --save:直接覆盖写入镜像配置文件 reflector -c China -p https --delay 3 --completion-percent 95 --latest 10 --sort score --save /etc/pacman.d/mirrorlist # 校验是否生效 head /etc/pacman.d/mirrorlist ``` 然后停止 reflector 后台服务,避免系统自动覆盖我们刚刚配置好的国内镜像源,保证安装速度稳定。 ```bash systemctl stop reflector ``` ## 5.硬盘分区 **这是比较重要的部分** 首先,查看硬盘设备 ```bash lsblk -f ``` 以我本人为例 只列出了本次安装需要用到的分区,与安装无关的硬盘就不列出来了 |硬盘|分区|格式| |--|--|--| |sdb | sdb1 | vfat(EFI分区, archlinux官方推荐limine引导大小为4G) | |sdb|sdb2|btrfs(硬盘剩余大小) 注意,这里要谨慎操作,我安装的时候就把U盘给格了...幸好不影响安装 ### (1)清空硬盘 这一步是可选的,如果你和我一样,在单独的一块硬盘安装linux,可以这么操作 **如果你是在某个硬盘其中的一个分区安装,那么千万不要执行这个命令** ```bash 作用:彻底清除硬盘的所有分区表,恢复到完全空白状态。 sgdisk --zap-all /dev/sdb ``` ### (2)分区 关于cfdisk或者其他分区工具,请自行查找使用方法,这里只是简单的单硬盘分一个区 **如果你是在某个硬盘其中的一个分区安装,那么千万不要加 -z 参数** ```bash 作用:忽略任何残留分区信息,从 0 开始创建新的 GPT 分区。 cfdisk -z /dev/sdb ``` 进入界面后,选择 gpt 分区表类型,回车确认; 选中空闲空间,选择 New 新建分区: 分区大小输入:4G 选中该 4G 分区,选择 Type,设置类型为 EFI System (注意如果你使用其他分区工具,也一定要设置这个分区为EFI SYSTEM,不然ARCHINSTALL会找不到BOOT,导致无法安装) 剩下全部空闲空间,再次选择 New 新建第二个分区,默认占用全部剩余空间即可,不用改类型(默认 Linux filesystem 就行); 选择 Write,输入 yes 确认写入分区表; 选择 Quit 退出分区工具。 ### (3)格式化 ```bash mkfs.fat -F32 /dev/sdb1 mkfs.btrfs -f /dev/sdb2 ``` ## 6.BTRFS创建子卷并挂载 ### (1)挂载btrfs分区 ```bash mount /dev/sdb2 /mnt ``` ### (2)创建子卷 我的个人习惯创建子卷,可以根据你自己的需要增加和减少子卷 ```bash btrfs su cr /mnt/@ // 挂载到 root,必需 btrfs su cr /mnt/@home // home ,可选 btrfs su cr /mnt/@var // 创建一个var,这个目录不必进行快照 btrfs su cr /mnt/@snapshots // 快照文件, 可选 btrfs su cr /mnt/@swap // 交换文件放在这个目录 ``` 创建完成后查检一下,注意查看@子卷的编号,通常是256 ,如果要设置默认子卷,需要记住这个数字 ```bash btrfs su li /mnt ``` 如果一切正常,那就开始挂载子卷吧 ### (3)挂载子卷 首先先取消(1)部分对btrfs分区的挂载 ```bash umount /mnt ``` ```bash # 1. 挂载根子卷 mount -t btrfs -o defaults,noatime,compress=zstd:3,space_cache=v2,subvol=@ /dev/sdb2 /mnt # 2. 创建并挂载其他子卷 mkdir -pv /mnt/{boot,home,var,.snapshots,swap} mount -o noatime,compress=zstd:3,subvol=@home /dev/sdb2 /mnt/home mount -o noatime,subvol=@var /dev/sdb2 /mnt/var mount -o noatime,subvol=@snapshots /dev/sdb2 /mnt/.snapshots mount -o noatime,subvol=@swap /dev/sdb2 /mnt/swap # 3. 关键:禁用特定目录的 CoW (必须在写入任何文件前) chattr +C /mnt/var chattr +C /mnt/swap # 4. 创建交换文件 (Btrfs 专用命令) btrfs filesystem mkswapfile -s 8g /mnt/swap/swapfile swapon /mnt/swap/swapfile # 5. 挂载 EFI mount /dev/sdb1 /mnt/boot ``` ## 7.安装基本系统 这时,硬盘已经装备就绪,现在开始使用archinstall安装系统 首先更新一下archinstall,保证这是最新版 ```bash pacman -Sy archinstall ``` 然后运行 ```bash archinstall ``` 进入archinstall界面 核心配置项目 (必看) |选项|设置|备注| |--|--|--| |Disk configuration| Pre-mounted configuration | 输入/mnt 回车 | |Bootloader|Limine (或按需选择)| 如果选择limine,安装后需要手动运行efibootmgr添加引导记录| |Profile|Minimal| 我在这里不安装任何桌面,因为我计划使用DMS,同时也可以避免在这里安装显卡驱动,我的1080TI显卡只能安装580XX版本| |Audio|Pipewire|现代 Wayland 系统的标准配置,比 PulseAudio 更纯净| |Kernels|linux-zen (或 linux)|linux 最稳定,linux-zen 对游戏响应略好| |Network configuration|networkmanager|| 其他选项 |选项|备注| |--|--| |Additional packages| 进入选择页面后输入 "/包名"搜索要额外安装的包,回车,在要安装的包上按空格进行选择,然后继续"/包名",建议:linux-zen-headers,btrfs-progs,neovim,git,intel-ucode,base-devel,curl,wget| |Locales|默认| |User configuration|设置ROOT密码和创建用户| |Timezone|Asia/Shanghai| 各项都配置好后,检查一下,如果没有问题,选择Insttall ,等待安装结束 不要重启, 选择chroot 进入新系统 ## 11.Limine 引导(ArchWiki 官方版,UEFI + Btrfs) ```bash # 1. 在 ESP 中创建目录 mkdir -p /boot/EFI/limine # 复制 Limine UEFI 引导文件到 ESP,和官方例句完全一致 cp /usr/share/limine/BOOTX64.EFI /boot/EFI/limine/ # 3. 创建 UEFI 启动项(efibootmgr) efibootmgr \ --create \ --disk /dev/sdb \ --part 1 \ --label "Arch Linux Limine Boot Loader" \ --loader '\EFI\limine\BOOTX64.EFI' \ --unicode # 4. 编辑配置文件,加入windows引导 nvim /boot/EFI/limine/limine.conf timeout: 5 /Arch Linux (Zen) protocol: linux path: boot():/vmlinuz-linux-zen cmdline: root=UUID=替换为你的Btrfs根分区UUID rw rootflags=subvol=@ intel_ucode /Windows protocol: efi # 使用 guid(参数) 来锁定另一块硬盘的分区 # blkid /dev/sda1 # 假设 Windows 在 sda1,请根据实际修改 path: guid(这里替换成刚才查到的UUID):/EFI/Microsoft/Boot/bootmgfw.efi 把 UUID=... 替换成你 btrfs 根分区 /dev/sdb2 的 UUID(blkid /dev/sdb2 查看) ``` # 三、安装完成重启 ```bvash exit swapoff /mnt/swap/swapfile umount -R /mnt reboot ``` 双系统时间问题 百度:Windows 系统使用 UTC ```bash timedatectl set-ntp true ``` --- 设置archlinuxcn ```bash nvim /etc/pacman.conf ``` 取消Color和ParallelDownloads = 5 两行的注释,添加一行ILoveCandy(下载包时使用吃豆人动画) >Color >ParallelDownloads = 5 >ILoveCandy 在文件最后加入archlinuxcn仓库 [全部仓库地址在这里](https://github.com/archlinuxcn/mirrorlist-repo) >[archlinuxcn] >Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch ```bash pacman -Sy archlinuxcn-keyring ``` --- 安装paru,管理AUR软件 ,也可以用yay ,我个人比较喜欢paru,因为它是用rust写的,仅此而已,反正我是~~不喜欢python~~ :( ```bash pacman -S paru ``` 修改一下paru配置文件,具体项目根据自己需求设置 ```bash nvim /etc/paru.conf ``` 这是我的paru配置文件 >[options] >PgpFetch >Devel >Provides >DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil >BottomUp >RemoveMake >SudoLoop = true >CleanAfter AUR编译优化 ```bash nvim /etc/makepkg.conf ``` >CFLAGS="-march=native -O2 ..." # 先将 -march 和 -mtune 删除,再添加 -march=native MAKEFLAGS="-j$(nproc)" # 不要忘记去掉“#”,多核处理器可以启用并行编译,缩短编译时间 BUILDDIR=/tmp/makepkg # 去掉“#”,使用内存文件系统进行编译 COMPRESSZST=(zstd -c -z -q --threads=0 -) # 在压缩时使用多个 CPU 核心 注意: 在 tmpfs 中构建大型软件包时可能会内存不足。 tmpfs 目录挂载时不能使用 noexec 选项,否则编译命令无法执行。 在 tmpfs 中编译的文件重启后会消失,设置 PKGDEST 选项可以将构建结果保存到其它目录。 OK,基本系统安装完毕 # 五 安装桌面 ```bash paru -S nvidia-580xx-dkms nvidia-580xx-utils ``` ```bash curl -fsSL https://install.danklinux.com | sh ``` ```matlab $ sudo pacman -S noto-fonts-cjk ttf-firacode-nerd ttf-hack-nerd ``` 打开字体引擎 ```matlab $ sudo vi /etc/profile.d/freetype2.sh 取消最后一行的注释 ``` 安装输入法 ```matlab $ sudo pacman -S fcitx5-im fcitx5-chinese-addons ```