安装 Arch + Win11 双系统过程记录

参考自:
https://blog.linioi.com/posts/18/
https://zhuanlan.zhihu.com/p/9780381446
本篇文章仅为过程记录, 并非详细教程, 仅供参考.
准备工作
环境
原来的硬盘爆满了, 所以我另外买了一块 SSD, 分了一块空间给 Windows
堆杂文件, 剩下的空间想拿来装一个双系统.
软硬件参数如下:
软/硬件 | 配置 |
---|---|
OS | Windows 11 |
引导 | UEFI |
CPU | i9-14900HX |
GPU | RTX 4070 Laptop |
RAM | 32GB |
最终选择了 Arch Linux
(如标题所见).
制作 Arch Live USB 并启动
到官网找一个国内的镜像站下载 ISO 文件, 我选择的是清华源
使用Rufus烧录 ISO 镜像到 USB 中.
我已经预留了一个大的空闲空间, 所以不用再去折腾分区了 (记住这句话), 直接重启电脑, 进入 BIOS, 关掉 Fast Boot
和 Secure Boot
, 选择 U 盘为第一启动项, 启动.
启动之后, Boot Menu 选择第一项 Arch Linux install medium (x86_64, UEFI)
, 回车之后, 正常应该进入到终端了, 没想到黑屏了.
第一反应是独显惹的祸, 进入 BIOS, 在高级选项里找到 显示模式
, 将其从 dGPU Only
改为 动态
, 重启.
这次就成功进入到终端界面了.
连接网络并同步时间
输入 iwctl
进入 iwd 的控制台, 然后依次键入如下命令:
device list # 列出可用无线网卡, 我这里输出的是 wlan0 |
然后, 输入 ping www.baidu.com
测试是否成功联网.
联网后, 输入如下命令设置时间为 UTC
并完成 NTP 时间同步
:
hwclock --systohc --utc |
分区
分区的时候, 才发现我的 SSD 是 MBR (DOS) 分区表, 但 UEFI 引导 不支持 MBR 硬盘启动 Linux 内核, 所以, 我还得把分区表转为 GPT (GUID) …
于是, 我切换到 Windows, 启动 DiskGenius, 以为转换可以一把梭, 没想到报错了: GPT 分区表需要更多的扇区…
于是 xjb 改扇区位置, 然后把盘改损坏了… 花了好长的时间恢复…
总之, 要 确保安装 Arch 的磁盘是 GPT 分区表.
在 Arch Live 终端输入 lsblk -f
, 确定要安装系统的磁盘, 我这里是 /dev/nvme1n1
.
使用 fdisk /dev/nvme1n1
进行分区. ( fdisk
的使用方式, 随便一搜就有)
这是我的分区:
分区 | 挂载点 | 大小 | 类型 | 文件系统 |
---|---|---|---|---|
ESP | /boot | 512MB | EFI System | FAT32 |
Root | / | 剩余所有 | Linux FS | btrfs |
这是我的子卷:
子卷名 | 挂载点 | 作用说明 |
---|---|---|
@ | / | 系统 (除了 /home /var 等) |
@home | /home | 用户目录 (独立于系统) |
@root | /root | root目录 (独立于系统) |
@log | /var/log | 运行时的缓存和日志无需留存 |
@cache | /var/cache | 运行时的缓存和日志无需留存 |
@tmp | /var/tmp | 运行时的缓存和日志无需留存 |
@swap | /swap | 存放 swap 文件的目录 (用于休眠) |
@snapshots | /.snapshots | Snapper 或 Timeshift 的快照存储目录 |
分区后, 键入以下命令, 格式化与挂载分区:
格式化 |
安装
在安装各个包之前, 需要先换源.
这里我本来想使用 reflector
来换源:
reflector --country China --age 24 --sort rate --protocol https --latest 10 --save /etc/pacman.d/mirrorlist |
参数解释 (可使用 reflector --help
查看):
参数 | 作用 |
---|---|
--country China | 指定国家和区域 |
--age 24 | 指定最后更新/同步时间, 过滤掉某些已经停止维护的镜像地址 (单位: 小时) |
--sort rate | 指定排序方式, 可选 {age,rate,score,delay} |
--protocol https | 指定协议, 可选 {http,https} |
--latest 10 | 指定要使用的镜像数量 |
--save /etc/pacman.d/mirrorlist | 覆盖默认源 |
但是, 执行的时候报错了: error: failed to retrieve mirrorstatus data: TimeoutError: The read operation timed out
那就手搓 mirrorlist
.
编辑 /etc/pacman.d/mirrorlist
, 在最顶部添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch |
然后, 输入以下命令更新软件源.
pacman -Syy |
然后添加 archlinuxcn
源, 具体操作参考这里.
换源之后, 就可以开始安装系统了.
pacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs nano sudo intel-ucode |
然后生成 fstab
:
genfstab -U /mnt >> /mnt/etc/fstab |
配置系统 (1)
设置基本系统信息
arch-chroot /mnt # 进入本地系统环境 |
必备应用
pacman -S networkmanager dhcpcd neovim git |
网络
systemctl enable dhcpcd |
Pacman
启用颜色和多进程下载.
编辑 /etc/pacman.conf
, 取消 Color
和 ParallelDownloads
的注释.
... |
Initramfs
编辑 /etc/mkinitcpio.conf
, 在 HOOKS
中加入 btrfs
.
保存后, 输入:
mkinitcpio -P |
添加用户
添加用户 |
安装并配置引导加载器 (systemd-boot)
我没有使用 grub
, 而是用 systemd-boot
, 因为觉得它更简单稳定.
使用 bootctl
安装 systemd-boot
:
bootctl install |
然后, 创建 /boot/loader/loader.conf
:
default arch |
Arch Linux 引导
获取 root 分区的 UUID:
blkid /dev/nvme1n1p3 # 改成你的 root 分区 |
创建 /boot/loader/entries/arch.conf
:
title Arch Linux |
注意, 上面的 PARTUUID
一定要抄对, 不然无法进入系统.
Windows 引导
arch-chroot /mnt # 进入安装的系统环境 |
通过 lsblk -f
确定 Windows 系统的 EFI 分区, 我这里是 nvme0n1p1
.
mkdir -p /mnt/win-efi |
然后, create /boot/loader/entries/windows.conf
:
title Windows 11 |
我执行到这里, 发现了 bug, UEFI 菜单有两个 Windows 11 选项… 暂未解决.
配置系统 (2)
重启, 进入安装的 Arch Linux 系统 (把装有 Arch Linux 的硬盘设为第一启动项), 继续配置.
如果前面一切顺利, 这里应该会进入 tty
终端.
通过以下命令连接 WiFi:
nmcli device wifi list |
显卡
参考自 wiki.
lspci -k | grep -A 2 -E "(VGA|3D)" # 查看显卡 |
为了避免在 NVIDIA 驱动程序升级后忘记更新 initramfs 的可能性, 可能需要使用 pacman HOOK.
编辑 /etc/pacman.d/hooks/nvidia.hook
, 写入如下内容:
[Trigger] |
hyprland
sudo pacman -S hyprland |
(注: 我原来安装了 sddm
, 但后面发现这玩意又丑又难用, 遂放弃, 选择在 tty
上启动 hypa land
)
创建 ~/.config/hypr
文件夹, 然后把 /usr/share/hypr
复制到 ~/.config/hypr
下.
编辑 ~/.config/hypr/hyprland.conf
, 添加如下变量:
env = LIBVA_DRIVER_NAME,nvidia |
然后 reboot
重启.
重启后, 在 tty
中输入 hyprland
即可进入桌面. 不过先别急, 等安装 kitty
后再进入 hyprland
. 在 hyprland
中, 打开终端的默认快捷键是 [Super] + Q
(Super
是 Win
键).
kitty
sudo pacman -S kitty |
编辑 ~/.config/kitty/kitty.conf
(如果路径不存在, 就创建):
font_family CaskaydiaMono Nerd Font Mono |
zsh
我不喜欢 oh-my-zsh
, zsh
加几个插件就能满足我的需求.
sudo pacman -S zsh zsh-autosuggestions zsh-completions zsh-history-substring-search zsh-syntax-highlighting |
下载 powerlevel10k
主题:
mkdir -p /usr/share/zsh/themes/powerlevel10k |
编辑 ~/.zshrc
, 添加以下内容:
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |
然后输入:
chsh -s /usr/bin/zsh |
重启或重新登录, 然后配置 zsh
和 powerlevel10k
即可.
rofi
我使用 rofi
作为我的应用启动器.
安装配置过程参考了这篇文章.
安装:
sudo pacman -S rofi-wayland |
配置主题:
创建配置目录 |
启用应用图标, 在 ~/.config/rofi/config.rasi
中添加:
configuration { |
在 ~/.config/hypr/hyprland.conf
中添加:
$menu = rofi --show drun |
就可以通过 [Super] + R
打开 rofi
了.
字体
sudo pacman -S ttf-cascadia-mono-nerd |
中文输入法
我使用 fcitx5
, 使用最广泛的中文输入法.
本部分参考了这篇文章.
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki |
在 /etc/environment
中添加:
GTK_IM_MODULE=fcitx |
然后在 ~/.config/hypr/hyprland.conf
中设置自启动:
exec-once = fcitx5 --replace -d |
这个时候还用不了, 需要进一步配置.
用 rofi
启动 或 在终端输入 fcitx5-configtool
, 进入配置界面.
右半部分窗口, 取消 Only Show Current Language
, 然后搜索 pin
, 启用这个 Pinyin
选项.
之后, 就可以按 [Ctrl] + [Space]
切换中文输入法了.
不过, 默认的 UI 实在太丑了, 我另外安装了 fcitx5-material-color
主题.
sudo pacman -S fcitx5-material-color |
然后, 在 fcitx5-configtool
的界面中, Addons
→ Classic User Interface (Configure)
-> Theme
中选择主题, 我选择的是 Material-Color-Blue
.
waybar
sudo pacman -S waybar |
在 Hyprland 的配置文件 ~/.config/hypr/hyprland.conf
中添加:
exec-once = waybar |
美化等以后再说.
mako
通知守护程序.
sudo pacman -S mako |
然后在 hyprland 配置文件中添加 exec-once = mako
.
截图与录屏
截图使用 grim
+ slurp
, 录屏直接用 obs-studio
.
sudo pacman -S grim slurp obs-studio |
然后配置一下截图快捷键 ([Super] + [PrtSc]
).
在 ~/.config/hypr/hyprland.conf
中添加:
$screenshot = grim -g "$(slurp)" |
Chrome
浏览器.
sudo pacman -S google-chrome-stable |
分辨率设置
本部分参考了这篇文章
缩放比例不为 1 时, 如 Chrome
,VSCode
等 xwayland
上的软件会出现模糊的情况, 解决方法如下.
需要先安装 xorg-xrdb
.
sudo pacman -S xorg-xrdb |
编辑 ~/.config/hypr/hyprland.conf
文件, 添加:
xwayland { |
上述配置用于禁止 xwayland
缩放.
添加:
exec-once = echo 'Xft.dpi:144' | xrdb -merge |
原 dpi
是 96
, 144
是 1.5
倍缩放, 具体 dpi
请根据实际情况调整.
启用 swap
本部分参考了这篇文章.
cd /swap |
暂时先写这么多吧.
- 标题: 安装 Arch + Win11 双系统过程记录
- 作者: Coast23
- 创建于 : 2025-04-29 21:52:26
- 更新于 : 2025-05-03 01:49:23
- 链接: https://coast23.github.io/2025/04/29/安装-Arch-Win11-双系统过程记录/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。