CelestialCosmic / themeblog

blog articles by Celestial_Cosmic,source code by chanshiyucx
0 stars 0 forks source link

Archlinux+Sway+Windows11完全配置记录 #22

Open CelestialCosmic opened 2 years ago

CelestialCosmic commented 2 years ago

archlinux with btrfs and sway

初试 sway

第一个尝试是在虚拟机上尝试的,然而因为 nvidia 显卡和虚拟机都对 sway 存在严重不良影响,转到物理机上还导致 KDE 亮度调节莫名奇妙地消失,我决定彻底重装整个电脑

安装 archlinux

经过一年多与 archlinux 的打磨和数次独立安装 archlinux,这篇安装记录达到了可以食用的程度 但它依旧基于Y7n05h 的安装引导,部分内容也会引用其中提供的内容。 在此感谢 Y7n05h ,他不仅在安装 archlinux 中为我提供了不少帮助,在配置 sway 时也提供了非常多的帮助,耐心回答我提出的一个个问题。可以说没有他的帮助就没有这篇文章。

准备镜像

首先去下载一个 archlinux 镜像rufus,archlinux 在每个月的 1 号都会发布一个最新版的镜像,按需下载,并用 rufus 将其安装到 U 盘中。

在备份完你现有的数据后(重要!),重启电脑并引导启动 archlinux 安装介质。进入 livecd 环境,准备安装。

配置硬盘分区

根据你手中硬盘的现有情况进行分区,此处默认各位都是彻底格式化整个硬盘的情况,按照个人需求进行分区。 archlinux 一般只需要 10G 即可容纳整个系统还能有余量,而 windows11 单系统就需要至少 50G。

lsblk
fdisk /dev/YourDisk

fdisk 使用简单的字母指令,具体可在 fdisk 中输入 m 来查看

使用 n 来创建新的分区,输入数字指定分区、起始扇区、结束扇区

指定分区和输入起始扇区可以用 enter 键使用默认选项

结束扇区处也可以用形如 +500M+10G 的方式来分区

分区表如下

分区 大小 备注
/boot 500M 不用太大,不超过500M
/ linux 所占硬盘大小的 40% 不一定要这样
/home linux 所占硬盘大小的 60% 不一定要这样
/swap 最高为真实内存的 2 倍 大内存设备可以不要

可以只分 /,但是这样不利于备份。

完成分区后输入 t 改变分区类型(重要!),如果是 EFI/UEFI 设备,/boot 要指定为 EFI system;如果是 BIOS 设备,则需要输入 a/boot 转为可启动分区;也可以将硬盘类型转为 HPFS/NTFS/exfat ,然后将整个 / 标记为可启动分区(不建议)

如果使用 btrfs,只需要分 /swap(如果有需求)、/boot/ 就行,接下来会详细说明

格式化硬盘分区并挂载

格式化 /boot

mkfs.fat -F32 /dev/YourDiskParts

格式化 /为 ext4 或 btrfs

# 格式化为 ext4
mkfs.ext4 /dev/YourDiskParts

# 格式化为 btrfs
mkfs.btrfs /dev/YourDiskParts

挂载 ext4

mount /dev/YourDiskParts /mnt
mkdir /mnt/boot
mount /dev/YourDiskParts /mnt/boot
swapon /dev/YourDiskParts

# 如果有 /home 的话,执行以下操作
mkdir /mnt/home
mount /dev/YourDiskParts /mnt/home

挂载 btrfs

如果使用 btrfs ,通过以下方式划分子卷并挂载

先挂载 btrfs 分区

mount /dev/YourDiskParts /mnt

创建 //home 子卷

btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home

取消原来的挂载,挂载新划分的两个子卷并开启透明压缩

umount /mnt
mount -o compress=zstd:7,subvol=@ /dev/nvmen0nxpy /mnt
mkdir /mnt/home
mount -o compress=zstd:7,subvol=@home /dev/nvmen0nxpy /mnt/home

安装 archlinux 基础组件

此处开始,之后需要从镜像站下载内容,请确保网络畅通。 最简单的方式是手机开启热点,并用线连接电脑,随后手机在热点和网络共享中开启“USB 网络共享” 还有一个方法是让电脑连接网线。

修改镜像源

首先,我们需要编辑/set/pacman.d/mirrorlist,里面默认携带镜像发布的那个月的 1 号生成的镜像站的地址,将其中里我们最近的镜像站的注释取消掉就好。也可以去 archlinux 镜像列表生成器去要一份,生成的时候记得先取消 All 再选地区。

随后执行

pacman -Syy
pacstrap /mnt base base-devel linux linux-firmware linux-headers nano

其他编辑器也可以替代 nano 。

等待安装完成,随后生成 fstab

genfstab -U /mnt > /mnt/etc/fstab

最后检查还有什么没做的,我们即将进入 chroot 环境

arch-chroot /mnt

chroot 后的工作

本地化

时间

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc --utc
timedatectl set-ntp true

安装 windows 后还需要进一步的处理,现在暂时就这样

文字

编辑 nano /etc/locale.gen ,并取消如下三处的注释:

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

然后执行

locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf

设置主机名与用户

设置主机名

echo myhostname > /etc/hostname

设置用户

修改 root 密码

passwd

创建拥有 root 权限的普通用户

可以用别的编辑器,这里用 nano

EDITOR=nano visudo

删除 %wheel ALL=(ALL) ALL 前的注释,然后保存退出

创建一个有家文件夹的普通用户,并为其设置密码

useradd -m -G wheel username
passwd username

安装引导

windows 的引导之后再来。

pacman -S grub efibootmgr dosfstools os-prober ntfs-3g

安装完这五个包后,编辑 /etc/default/grub,添加 GRUB_DISABLE_OS_PROBER=false(一般已经添加了,在最后一行,但依旧建议检查一下)

然后 EFI/UEFI 设备执行以下命令

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck  
grub-mkconfig -o /boot/grub/grub.cfg

如果是 BIOS 设备,执行以下命令

grub-install --target=i386-pc --force /dev/BootDiskPart
grub-mkconfig -o /boot/grub/grub.cfg

如果是 BIOS 设备,而且是分区类型是 HPFS/NTFS/exfat,执行以下命令

grub-install --target=i386-pc --force /dev/YourDiskPart
grub-mkconfig -o /boot/grub/grub.cfg

理论上这时候可以启动 archlinux 了,但还有很多事可以这个时候做,软件包都可以现在装上,现在暂时不装。

但是 ssh 和一个顺手的 shell 、一个好用的终端模拟器一定要先装上,字体包也是可选项。

pacman -S openssh alacritty fish
systemctl enable sshd

关机,移除安装介质,开机,进入 archlinux。

archlinux 中的配置

输入登入的用户名与密码后,我们完成了 archlinux 的安装!

我们获得了一个阶段性胜利,但现在面前的 tty 还只是个简单的 bash,也没有图形界面,还需要一段时间的调整才能让它变得顺手和好用。

配置默认终端

sudo chsh -s /bin/fish username

这应该是这个帐号第一次使用 sudo,会出现一个君子协议:


We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility

输密码就行,然后输入 fish 使用新 shell,如果要用 zsh 之类的 shell ,步骤大致相同,具体请查看相关文档。

配置网络

现在 archlinux 是没有网络的,我们需要配置网络。

有线网络

有线网络,包括联网的虚拟机、服务器、连接了网线的PC,都可以通过 systemd-networkd 配置:

首先执行 ip addr 看看自己的网卡类型,以enp1s0为例:

打开 /etc/systemd/network,并创建形如 enp1s0.network 的文件,随后写入如下内容:

[Match]
Name=enp1s0

[Network]
Address=10.1.10.9/24
Gateway=10.1.10.1
DNS=10.1.10.1

无线网络

无线网络环境可能会经常变更,这时候有 GUI 的 networkmanager 会更有优势。

sudo pacman -S networkmanager

无线网络可以通过 nmtui 配置,nmcli 也不是不行...,只是 nmtui 更方便。

配置镜像和 archlinuxCN

编辑 /etc/pacman.conf,加入如下内容

[archlinuxcn]  
Server = https://repo.archlinuxcn.org/$arch

保存后执行如下指令

sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring  
sudo pacman -S archlinuxcn-mirrorlist-git

然后替换 /etc/pacman.conf 为如下内容

[archlinuxcn]
Include = /etc/pacman.d/archlinuxcn-mirrorlist

保存,并编辑 /etc/pacman.d/archlinuxcn-mirrorlist ,取消镜像地址的注释。

开启蓝牙

sudo pacman -S bluez bluez-utils blueman
sudo modprobe btusb
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service

配置 sway 及其配套环境

此处的方式不一定适用于所有人

至此 archlinux 大概能正常运行了,又一个阶段性胜利,可以开始配置 sway 了!

sudo pacman -S sway xwayland

nvidia 显卡驱动安装时也要用 amd 的驱动或开源通用驱动!

因为 sway 加入了检测 N 卡驱动的代码,若使用的驱动为闭源驱动,sway 将拒绝启动。

如果你要使用的应用都不依赖 x11,可以不装 xwayland

配置

开机启动 sway

如果使用 fish,可以创建 ~/.config/fish/conf.d/sway.fish,并加入如下内容

set TTY1 (tty)
[ "$TTY1" = "/dev/tty1" ] && exec sway

其他的终端可以在这里看到。

配置文件准备

复制一份配置文件到自己的默认路径

cp /etc/sway/config ~/.config/sway/config

然后打开新的配置文件,按照自己的习惯配置,在此解释一些我配置过的东西

配置项详解

Your preferred terminal emulator

指定终端模拟器,默认为 alacritty。

Key bindings

这里的按键绑定是最重要的,它们从窗口操作到工作区切换等等都在这,建议熟悉和微调而不是自己造一套新的

Status Bar:

状态栏,之后有详细配置。

进入 sway

此处的 sway 配置全部指代位于 ~/.config/sway/config 的配置文件

熟悉完键位后(也可以边用边熟悉),输入 sway 进入桌面环境,如果发现无法操作可以使用 ctrl + alt + 任意数字键 进入其他 tty 补救/配置。

配置程序启动器

sudo pacman -S wofi

然后在 sway 配置中添加一行:set $menu wofi -I -m --show drun,如果先前已经有菜单项的话,注释/删除之。

配置输入法

安装 fcitx5

sudo pacman -S fcitx5

fcitx5 自带英文(废话)

中文

sudo pacman -S fcitx5-chinese-addons fcitx5-pinyin-zhwiki

fcitx5-chinese-addons 的输入法已经十分优秀了,如果有繁体中文的需求还可以额外安装 fcitx5-rime

日本語

sudo pacman -S fcitx5-mozc

安装完毕后,召出程序启动器,配置输入法

对于部分应用无法使用中文输入法的,可以编辑~/.pam_environment,加入如下三行后重新登入

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx

配置背光

sudo pacman -S light
sudo gpasswd -a username video

此处配置完之后需要重启才能生效。

笔记本电脑携带 Fn 键,在 sway 配置中加入如下内容可以使用 Fn + F5Fn + F6 来调整亮度(代码来自 Y7n05h)

bindsym XF86MonBrightnessUp         exec light -A 10 && light -G | cut -d'.' -f1 > $XDG_RUNTIME_DIR/wobpipe
bindsym XF86MonBrightnessDown       exec light -U 10 && light -G | cut -d'.' -f1 > $XDG_RUNTIME_DIR/wobpipe

笔记本电脑使用 XFree86 键盘,一个详尽的按键列表在下面可以看到 XF86keysym.h

配置音频

这里使用了 pipewire

sudo pacman -S pipewire pipewire-pulse pipewire-alsa
systemctl enable pipewire-pulse.service
systemctl start --user pipewire-pulse.service

如需要图形化界面控制音频,可以安装 pavucontrol

配置通知

sudo pacman -S mako

然后在 sway 配置中添加一行:exec mako

配置状态栏

sudo pacman -S waybar otf-font-awesome

在 sway 配置中寻找Status Bar条目,在随后的bar{}中添加如下内容

swaybar_command waybar

截屏

sudo pacman -S grim

安装后在终端输入 grim 即可截全屏

如果需要更加多样的功能,后面还有 flameshot 的安装方式。

蓝牙

如果设备可以通过硬件控制蓝牙开关的,首先使用rfkill list检查硬件是否存在软硬件锁,如果有,请参照archwiki的内容来解锁

sudo pacman -S bluez bluez-utils blueman
sudo systemctl enable bluetooth

重启或在sudo systemctl start bluetooth之后应该就可以正常使用了

安装 windows 11

安装不会有要讲的吧(笑)

时间校准

管理员模式的 terminal 让 windows 用 UTC 时间

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

随后把 windows 的自动对时关了。

windows 只需要做这一件事就行了。重启,换引导回 archlinux!

配置 grub

用 grub 引导 windows

再次执行grub-mkconfig -o /boot/grub/grub.cfg,然后用编辑器打开检查一下就行了。

自定义 grub

如果想加长 grub 的等待时间,可以修改这部分:

if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=120
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=120
fi

如果还想修改在 grub 引导界面中看到的引导项的名称,在等待时间下面的配置中寻找形如 menuentry '******' 的东西改就行了。

修改 grub 主题

如果需要修改 grub 主题,首先需要获取主题,一般获取到的 grub 主题都会携带安装脚本,给予权限执行即可

联动 archlinux 与 windows

系统准备好了,现在我们需要让它们结合为一体,让两个系统能够共享存储、文件、甚至是配置和拓展!

存储共享

archlinux 挂载 NTFS 分区

首先输入 id 查看自己的 uid 和 gid,输入 lsblk 查看 windows 分区的 uuid ,最好通过复制或拍照的方式记下来。

然后编辑 fstab ,按照如下格式写配置:

UUID=... /mountpoint ntfs-3g uid=...,gid=...,dmask=022,fmask=133   0 0

如果需求不高,也可以通过使用指令 ntfs-3g /dev/YourDiskParts /mountpoint 来手动挂载

如上述指令在执行后无法挂载分区或分区只读,尝试清除 NTFS 分区中的缓存

即使用指令:sudo ntfs-3g -o remove_hiberfile /dev/YourDiskParts ~/mountpoint

windows 挂载 btrfs 分区

有人开发了可以在 windows 下挂载 btrfs 的驱动:maharmstone

下载后右键菜单安装autorun.inf

注意,其会像 U 盘一样自动按顺序安装在一个新的驱动器号,且不可修改,即便将驱动卸载并重装驱动,也依旧不可修改。

插件共享

vscode 拓展、文件的共享

在一次风波后,archlinuxCN 社区删除了所有未获得分发许可的软件包,vscode 也包含在内。因此,archlinux 中的 vscode 实际为 code-oss,也有 codeium 等开源 visual studio code 可用。

sudo pacman -S code

在成功挂载分区后,只要指定的文件夹相同,编译、解释的配置就是共享的。

因为微软屏蔽了开源的 vscode 的部分官方拓展的搜索,所以需要额外的包解除该限制(此处的为 code-oss 的)

yay -S code-marketplace

下面讲插件共享

在archlinux中安装插件后,进入 windows,安装 vscode,然后在快捷方式属性中的目标后添加如下内容:

--extensions-dir "RouteOfExtensions"

这样就完成了插件的共享

有个缺点是这样的 windows 在以其他方式启动 vscode 时会复原,回到没有拓展的状态。

obsidian 拓展、主题共享

在成功挂载分区后,只要指定的文件夹相同,插件和主题就是共享的。

只是安全模式需要分别关闭

chrome 拓展共享

拓展

先在其中一个浏览器上安装插件,另一个浏览器则开启开发者模式,并通过直接导入整个文件夹的方式来获得拓展

linux 的路径为 ~/.config/chromium/default/extensions

windows 的路径为 Users/User/Appdata/Local/Chrome/User Data/Default/extensions

这样做看起来浏览器说有错误,其实是可以正常使用的,可能存在个别密钥出错的例外,这个是玄学问题,可能某次重启之后再次导入又可以导入了。

油猴脚本共享

暂时只能利用导出功能,因为其通过 sql 存储, 不可直接编辑和引用(来源

个性化 sway

锁屏

swaylock

我认为使用 swaylock-effects-git (aur)是个更好的选择。如果介意的话直接用 swaylock 也是没有问题的。

yay -S swaylock-effects-git

之后在 sway 的配置中修改超时指令

我是这样配置的:

exec swayidle -w \
timeout 60 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
timeout 90 'swaylock --screenshots \
--clock \
--indicator \
--indicator-radius 100 \
--indicator-thickness 7 \
--effect-blur 7x5 \
--effect-vignette 0.5:0.5 \
--text-color db03d0 \
--ring-color f185ff \
--line-color f185ff \
--inside-color 00000000 \
--key-hl-color db03d0 \
--separator-color ffaffb \
--grace 0 \
--fade-in 0.2' \
before-sleep 'swaylock -f -c 000000'

如果需要自定义样式,终端中输入 swayidle -h 可以看到,按自己的喜好修改就好

只有退出 sway 再重新登录,swayidle 的新样式才会被应用,如果想测试可以直接在终端输指令

sddm

曾经试过 swaylock,但是它完全不显示输入内容令我十分不满,最终在某次多次输错密码导致普通用户被临时禁止登入之后,我把它移除了。(虽然后来还是用回来了)

sudo pacman -S sddm
sudo systemctl enable sddm
sudo syetemctl start sddm

接下来是美化了

我使用了这个主题

克隆了整个库之后,按着 readme 把文件移动到了 /usr/share/sddm/themes/ 下。

git clone https://framagit.org/MarianArlt/sddm-sugar-candy.git
sudo mv sddm-sugar-candy/ /usr/share/sddm/themes/

输入 sudo sddm --example-config > /etc/sddm.conf 获得默认配置文件

如果提示没有权限,作为替代方法,手动在 /etc 下创建 sddm.conf,输入 sudo sddm --example-config 将默认配置文件打印出来然后复制到配置文件里面

然后修改 [themes] 下的 current主题文件夹的名字

readme 指出这个主题需要一些依赖,指令已在下面列出

sudo pacman -S --needed sddm qt5-graphicaleffects qt5-quickcontrols2 qt5-svg

这两个包不安装是无法使用这个主题的

greetd

因为使用了 flameshot ,使用 sddm 出现了环境问题,所以又换成了 greetd。

yay -S greetd-git greetd-gtkgreet-git

sudo systemctl enable greetd

剩下的部分可以依据 archwiki 和官方提供的注释写入即可。

也就是写入/etc/greetd/sway-config/etc/greetd/environments以及/etc/greetd/config.toml

如果还需要自定义背景的话,还需要创建在同文件夹下创建gtkgreet.css

特别提一下,应用主题的时候,需要将sway-config中的第二行修改为exec "gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit"

来源

指针、图标

配置应用

sudo pacman -S lxappearance-gtk3

更换图标在 ~/.icons,鼠标指针也可以直接扔进去,都是需要手动导入的,导入后 apply 就行。

主题位于~/.themes,获得的主题包需要解压才能使用。

可能存在的问题

lxappearance 无法启动

针对应用无法启动/崩溃的情况,尝试在终端中使用如下方式启动(来源)

DK_BACKEND=x11 lxappearance

若还是不行,安装 lxappearance

设置了主题但是应用程序并不会使用

共享文件夹

将主题装在/usr/share/themes/usr/share/icons下,并修改settings.ini基本可以解决问题。如果不能,再尝试个人文件夹的方式

个人文件夹

针对使用 lxappearance 却只能改变应用本身主题的情况,有两种可能的解决方法(第一种适合使用 gtk 和 gtk2 的,第二种适合使用 gtk3 的)

  1. ~/.config/gtk-2.0/gtkfilechooser.ini~/.config/gtk-3.0/settings.ini,如果没有lxappearance 会自动修改的提示,可以考虑不使用 lxappearance 并手动编辑这两个文件

    这里有一些可供手动配置的参考

    1. 如果还是无法解决问题,或者只在部分应用中生效,在 sway 的配置中添加如下内容(来源)
set $gnome-schema org.gnome.desktop.interface

exec_always {
    gsettings set $gnome-schema gtk-theme 'Your theme'
    gsettings set $gnome-schema icon-theme 'Your icon theme'
    gsettings set $gnome-schema cursor-theme 'Your cursor Theme'
    gsettings set $gnome-schema font-name 'Your font name'

状态栏(waybar)

~/.config/waybar 中创建 style.css ,随后自定义即可

会 css 的可以自己搞,同时,这里有更为详细的说明以及一些现成的轮子

如果需要自定义状态栏的显示,包括显示顺序、自定义显示的内容和图标,在同位置创建 config ,然后在 waybar wiki 摸一份配置文件改就好

alacritty 自定义

配置文件位于 ~/.config/alacritty/alacritty.yml,主题可以找到,也可以在 这里 获取示例文件。

程序启动器(wofi)

css 文件在 ~/.config/wofi/style.css,需要手动创建,可以在 github 找到一些能用的轮子,比如我的就是在这个主题的基础上进行了三次修改,添加了圆角,并将部分选项依旧保持原样式的问题解决了。

如果想自己改,wofi(5) 里面有关于主题的一些信息

额外的软件包

图片查看

windows 我最爱用 imageglass,但很可惜它没有 linux 的,所以用了 Geeqie。

截图

sudo pacman -S grim xdg-desktop-portal xdg-desktop-portal-wlr flameshot

但是它在 sway 中运行是有一些问题的。如果需要使用 flameshot,需要像下面那样修改启动环境,如果使用了sddm,请更换成其他的,如 gtkgreetd

[ "$TTY1" = "/dev/tty1" ] && exec env XDG_CURRENT_DESKTOP=sway sway

音频

linux 用 ffmpeg + vlc 几乎没有什么大问题,windows 则可以用 mcool + vlc 来达到非常棒的体验。windows 如果不需要 scrcpy + sndcpy,potplayer 也是不错的选择。

文件管理

p7zip(命令行压缩工具) thunar(图形化文件管理器)

thunar 需要依赖 gvfs 来发挥完整功能(如远程文件管理、回收站等),可选择是否安装。

部分参考依据

Y7n05h —— Arch Linux 安装指引 ch4ser —— 反璞归真 -- Sway上手和配置 systemd-network (archwiki) Network configuration (archwiki) System time(archwiki) sway 的 github wiki

MIracleyin commented 2 years ago

mark一下,找到了arch wayland nvidia的方案!

kpzhao commented 2 years ago

请问一下怎么自动连接WiFi和蓝牙鼠标啊

CelestialCosmic commented 2 years ago

请问一下怎么自动连接WiFi和蓝牙鼠标啊

wifi 使用的 network manager 本来就会自动连接

如果是 waybar 显示没有网的话,检查一下 waybar 的设置,有时侯设备没有被分配到 ipv6 的话就是显示没有网,把 ipv6 改成 ipv4 就没有这个问题

蓝牙则是安装 blueman ,它有一个 auto connect 的插件,默认开启

kpzhao commented 2 years ago

谢谢啦,还可以再问一下中文字体修改是在~/.config/fontconfig/conts.conf这里吗

CelestialCosmic commented 2 years ago

谢谢啦,还可以再问一下中文字体修改是在~/.config/fontconfig/conts.conf这里吗

是的,请不要动/etc/fonts/fonts.conf

kpzhao commented 2 years ago

谢谢啦,还可以再问一下中文字体修改是在~/.config/fontconfig/conts.conf这里吗

是的,请不要动/etc/fonts/fonts.conf

感谢大佬🙇

kpzhao commented 1 year ago

请问一下你是先安装的arch再安装的windows吗?

CelestialCosmic commented 1 year ago

请问一下你是先安装的arch再安装的windows吗?

我那次是先装的 arch,但是两种顺序都是可行的,区别只在于 grub-mkconfig 要做几次

还有就是 windows 安装自动分的 EFI 分区经常无法容下双系统的启动。要么手动在 windows 安装的时候先用 diskpart 把 EFI 分区分好再进行安装,要么先装 archlinux ,然后交给 windows 全自动安装