Windows+archlinux双系统指导

尽量阅读英文版的维基

前提条件

  • 在Windows下关闭BitLocker快速启动休眠,在BIOS关闭Secure Boot,调整启动方式为UEFI
  • 准备好安装镜像
  • 准备好安装了Ventoy的U盘,并把镜像放入U盘根目录
  • 进入安装界面

禁用reflector服务,我们自己修改镜像源

1
systemctl stop reflector.service

确保是否为 UEFI 模式

1
ls /sys/firmware/efi/efivars

看到输出一堆东西即可

连接无线网络

1
2
3
4
5
6
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出

测试是否连接成功ping www.bing.com

更新系统时钟

1
2
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态

更换国内软件仓库镜像源加快下载速度

1
vim /etc/pacman.d/mirrorlist

任选下列其一并放入mirrorlist的最上面

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站

退出vim,刷新软件包并导入密钥

1
2
pacman -Sy
pacman -S archlinux-keyring

分区和格式化(使用ext4文件系统)

更详细的说明请参考另一篇文章

本文分区方案:详细文章里的情况一:两系统在不同硬盘,使用GRUB引导

  • EFI系统分区:500M
  • 交换分区(Swap分区):等于电脑自身物理内存(比如16G)
  • 根目录分区:剩余全部空间

archlinux的wiki上说如果要从中启动的磁盘 已经有一个EFI分区,请不要创建另一个磁盘,而是使用现有分区。但这里我们假设有两块硬盘,/dev/sda可以看到windows的efi分区,我们选择/dev/sdb安装archlinux,这时我们最好新建efi分区。这个链接还说明了为什么建议使用/efi挂载点而不是传统的/boot/efi

  1. 转换为GPT磁盘
1
2
3
4
5
lsblk                       #显示分区情况 找到你想安装的磁盘名称
parted /dev/sdx #执行parted,进入交互式命令行,进行磁盘类型变更
mktable #在交互式界面输入mktable
gpt #询问New disk label type? 输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
quit #最后quit退出parted命令行交互
  1. 接下来使用 cfdisk 命令对磁盘分区。
  • 进入 cfdisk 后的操作很直观,用键盘的方向键、Tab 键、回车键配合即可操作分配各个分区的大小与格式。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。其中 EFI 分区选择EFI System类型,根目录分区选择Linux filesystem类型,交换分区选择Linux Swap类型。
  • 记得只有写入了操作分区表才会更改,操作完进行写入(Write操作)
  1. 分区时,使用
1
2
3
fdisk -l                     #查看磁盘情况
cfdisk /dev/sdx #来执行分区操作,分配各个分区大小,类型
fdisk -l #分区结束后, 复查磁盘情况
  1. 建立好分区后,需要对分区用合适的文件系统进行格式化。
  • 这里用mkfs.ext4命令格式化根分区与 home 分区,用mkfs.vfat命令格式化 EFI 分区。如下命令中的 sdax 中,x 代表分区的序号。格式化命令要与上一步分区中生成的分区名字对应才可以。

  • 磁盘若事先有数据,会提示你: ‘proceed any way?’ 按 y 回车继续即可。

1
2
3
4
mkfs.ext4  /dev/sdax            #格式化根目录(和home目录)的分区
mkfs.vfat /dev/sdax #格式化efi分区
# mkfs.fat -F32 /dev/sdxn #格式化efi分区(另一种方式)
mkswap /dev/sdxn #初始化 Swap 分区

挂载分区

根据具体系统sdanvme0n输入下列命令

1
2
3
4
5
mount /dev/sda1  /mnt
mkdir /mnt/efi
mount /dev/sda2 /mnt/efi
swapon /dev/sda2
df -h #复查分区挂载情况

安装基本系统

请根据具体CPU情况选择amd或intel的微核

ntfs-3g可以不装

1
2
pacstrap -K /mnt base base-devel linux-zen linux-firmware linux-zen-headers networkmanager nano vim grub os-prober efibootmgr ntfs-3g intel-ucode bluez bluez-utils bash-completion zsh zsh-completions sudo fish man-db man-pages texinfo sof-firmware 
# pacstrap /mnt base base-devel linux linux-firmware linux-headers networkmanager nano vim grub os-prober efibootmgr ntfs-3g amd-ucode bluez bluez-utils bash-completion zsh zsh-completions sudo fish man-db man-pages texinfo sof-firmware

生成 fstab 文件

1
2
genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab #复查fstab情况

切换到新系统

1
arch-chroot /mnt

设置时区和硬件时间

1
2
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

设置 Locale 进行本地化

1
vim /etc/locale.gen

去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)

重新生成locale

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

更多操作,进入桌面后请参考简体中文本地化

设置主机名

首先在/etc/hostname设置主机名

1
vim /etc/hostname

加入你想为主机取的主机名,这里比如叫 myarch

接下来在/etc/hosts设置与其匹配的条目。

1
vim /etc/hosts

加入如下内容

1
2
3
127.0.0.1   localhost
::1 localhost
127.0.1.1 myarch

root 用户设置密码

1
passwd root

创建普通账户

1
2
useradd -m -G wheel [用户名]
passwd [用户名]

编辑sudoers赋予用户root权限

1
vim /etc/sudoers

删除%wheel ALL=(ALL:ALL) ALL前的注释符号(#)

启动必要服务

1
2
systemctl enable NetworkManager  # 网络服务
systemctl enable bluetooth # 蓝牙服务

双系统使用GRUB引导

1
2
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ARCH --removable
vim /etc/default/grub

进入编辑界面
去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数

为了引导windows,则还需要添加新的一行
GRUB_DISABLE_OS_PROBER=false
或者在最后一行去掉GRUB_DISABLE_OS_PROBER=false前的”#”

1
grub-mkconfig -o /boot/grub/grub.cfg

如果重启界面看不到Windows,则进入系统后挂载windwos硬盘并重新执行该命令

如果重启后看不到GRUB,请到UEFI固件设置更改启动顺序

安装KDE桌面环境

1
2
3
4
pacman -S xorg plasma kde-applications plasma-workspace xdg-desktop-portal egl-wayland
pacman -S sddm
systemctl enable sddm.service
# systemctl enable sddm

完成安装

1
2
3
exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启

恢复windows引导

1
2
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot

配置镜像源

1
sudo vim /etc/pacman.conf

添加以下内容

1
2
3
[archlinuxcn]
# SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

开启32位支持库
去掉[multilib]及下一行前的注释,一共去掉了两个

刷新软件包并导入密钥

1
2
3
sudo pacman -Sy
sudo pacman -S archlinux-keyring
sudo pacman -S archlinuxcn-keyring

更新系统

1
2
sudo pacman -Syu
reboot

初始化KDE商店(不推荐干这种事)

1
sudo pacman -S appstream-qt appstream archlinux-appstream-data packagekit-qt5 fwupd

安装显卡驱动

尽量阅读英文版的维基

Wayland工作在NVIDIA需要开启内核级显示模式。方法如下:

1
sudo vim /etc/default/grub

在打开的文件开头添加一行

1
2
GRUB_CMDLINE_LINUX="nvidia_drm.modeset=1"
# GRUB_CMDLINE_LINUX_DEFAULT="nvidia_drm.modeset=1"

接下来保存退出

1
2
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot

还有一种KMS早启动方法,编辑/etc/mkinitcpio.conf文件,向模块部分添加项如下所示

1
MODULES=(... nvidia nvidia_modeset nvidia_uvm nvidia_drm ...)

接下来重新生成镜像

1
sudo mkinitcpio -p linux-zen
  • Intel: sudo pacman -S --needed lib32-mesa vulkan-intel lib32-vulkan-intel vulkan-icd-loader lib32-vulkan-icd-loader sudo pacman -Rsn xf86-video-intel
  • NVIDIA: sudo pacman -S --needed nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings vulkan-icd-loader lib32-vulkan-icd-loader
  • AMD: sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader
1
2
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot
1
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

简单配置

  • 屏幕刷新率
  • 分辨率
  • 屏幕缩放
  • 设置夜间模式
  • 以空会话启动(进入KDE设置系统设置 > 点击侧栏 开机与关机 > 桌面会话,将 登入时 的选项改为 以空会话启动
  • Dophin可以设置为启动时固定打开家目录

设置双系统时间(Windows 系统使用 UTC)

进入Windows,在设置里关闭自动获取时间,打开管理员终端,输入

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

再重启即可

简体中文本地化

安装中文字体

1
sudo pacman -S adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts noto-fonts-cjk wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-jetbrains-mono-nerd ttf-arphic-uming ttf-indic-otf gnu-free-fonts noto-fonts noto-fonts-emoji noto-fonts-extra

在KDE的设置里更改语言,重启

修正简体中文显示为异体(日文)字形

手动调整优先级,将中文字形调整到日文字形之前。在 /etc/fonts/conf.d//etc/fonts/conf.avail/ 下创建文件,例如 64-language-selector-prefer.conf,也可以修改或创建 ~/.fonts.conf或在~/.config/fontconfig/conf.d/创建后缀为.conf的文件(仅对该用户生效)。写成一个文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- sans-serif alias -->
<alias>
<family>sans-serif</family>
<prefer>
<!-- Noto Sans CJK family -->
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
<!-- Source Han Sans family -->
<family>Source Han Sans SC</family>
<family>Source Han Sans TC</family>
<family>Source Han Sans HW</family>
<family>Source Han Sans K</family>
</prefer>
</alias>

<!-- monospace alias -->
<alias>
<family>monospace</family>
<prefer>
<!-- Noto Sans Mono CJK family -->
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK JP</family>
<!-- Source Han Sans family -->
<family>Source Han Sans SC</family>
<family>Source Han Sans TC</family>
<family>Source Han Sans HW</family>
<family>Source Han Sans K</family>
</prefer>
</alias>
</fontconfig>

然后更新字体缓存即可生效:fc-cache -fv
执行以下命令检查,如果出现 NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular" 则表示设置成功:

1
fc-match -s | grep 'Noto Sans CJK'

安装Windows字体

挂载Windows分区

请把/windows/Windows/Fonts/*改成Windows实际挂载的目录

1
2
3
4
5
6
7
sudo mkdir /usr/local/share/fonts
sudo mkdir /usr/local/share/fonts/WindowsFonts
sudo cp /windows/Windows/Fonts/* /usr/local/share/fonts/WindowsFonts/
sudo chmod 644 /usr/local/share/fonts/WindowsFonts/*

fc-cache --force
# fc-cache-32 --force

安装中文输入法

1
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-rime 

配置环境变量,编辑 /etc/environment 并添加以下几行,然后重新登录

1
2
3
4
5
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

要使用 Wayland 输入法协议,首先退出正在运行的 Fcitx 5 进程,前往系统设置 > 输入设备 > 虚拟键盘,选择 Fcitx 5

配置开机自启(通常不必要执行此步骤)

1
cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

添加词库(在此处安装了yay助手)

1
2
sudo pacman -Syyu yay
yay -S fcitx5-pinyin-zhwiki fcitx5-pinyin-sougou rime-pinyin-zhwiki fcitx5-pinyin-moegirl-rime fcitx5-pinyin-moegirl

重启后在fcitx设置里配置云拼音等

安装软件(自行解决代理问题)

应用程序列表

Applications

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf
sudo pacman -S p7zip unrar unarchiver lzop lrzip
sudo pacman -S power-profiles-daemon
sudo pacman -S wget go bind
sudo pacman -S firewalld
sudo pacman -S zenity
sudo pacman -S papirus-icon-theme
sudo pacman -Syu libxcrypt-compat
sudo pacman -S qt6-base qt6-tools
sudo pacman -S qemu-full
sudo pacman -S vainfo vdpauinfo libva-utils
sudo pacman -S yt-dlp
sudo pacman -S bleachbit
sudo pacman -S sshfs
sudo pacman -S texlive-lang
sudo pacman -S biber
sudo pacman -S pandoc
sudo pacman -S ffmpeg
sudo pacman -S neovim
sudo pacman -S gnome-extra
sudo pacman -S gnuchess
sudo pacman -S devtools
sudo pacman -S imagemagick
sudo pacman -S mpv
sudo pacman -S bibata-cursor-theme
sudo pacman -S lutris
sudo pacman -S kio-admin
sudo pacman -S gparted
sudo pacman -S python-pip
sudo pacman -S xorg-xhost
sudo pacman -S git openssh openssl
sudo pacman -S git-lfs
sudo pacman -S timeshift
sudo pacman -S steam
sudo pacman -S meson systemd git dbus libinih gamemode lib32-gamemode
sudo pacman -S jdk21-openjdk
sudo pacman -S hplip
sudo pacman -S cups
sudo pacman -S system-config-printer
sudo pacman -Qtdq | sudo pacman -Rns -
yay -S v2ray v2raya
yay -S clash-verge-rev-bin
yay -S codelldb
yay -S octopi
yay -S kholidays5-cn
yay -S onlyoffice-bin
yay -S wps-office-365
yay -S motrix
yay -S linuxqq
yay -S bluez-obex
yay -S dh-autoreconf
yay -S github-desktop-bin
yay -S fsearch
yay -S filezilla
yay -S lib32-opencl-nvidia
yay -S opencl-nvidia
yay -S opencl-clover-mesa opencl-rusticl-mesa
yay -S intel-compute-runtime
yay -S ocl-icd
yay -S opencl-headers
yay -S alsa-utils
yay -S fastfetch lolcat
yay -S wechat-bin
yay -S obs-studio-browser
yay -S obs-nvfbc-git
yay -S protonup-qt
yay -S visual-studio-code-bin
yay -S appimagelauncher
yay -S prismlauncher
yay -S wine
yay -S texlive texlive-lang texlive-langchinese
yay -S libvirt
yay -S miniconda3
yay -S liberica-jdk-21-full-binc
yay -S qt6-tools-desktop
yay -S vkd3d-proton-bin
yay -S dxvk-bin
yay -S pacman-log-orphans-hook
WINEPREFIX=~/.wine setup_dxvk install
WINEPREFIX=~/.wine setup_vkd3d_proton install
sudo systemctl enable --now v2raya
sudo systemctl enable --now firewalld.service
sudo systemctl enable --now cups.service

关于虚拟机参考

系统美化

其他技巧

  • 开机时开启交换空间:编辑/etc/fstab,加入UUID=[交换分区UUID,可以用Gparted/blkid查看] none swap defaults 0 0

  • 开机自动挂载D盘:编辑/etc/fstab,加入UUID=[D盘的UUID,可以用Gparted/blkid查看] /run/media/Yoimiya/Data[挂载路径] ntfs-3g defaults,uid=1000,gid=1000,windows_names,umask=0000 0 0

  • 配置默认编辑器为vim

    1
    EDITOR=vim sudoedit /etc/profile

    加入export EDITOR='vim',再source一下即可

  • vscode使用fcitx5:

    1
    echo '--enable-wayland-ime --enable-features=UseOzonePlatform --ozone-platform=wayland' >> ~/.config/code-flags.conf
  • 提升游戏体验

    1
    echo 'vm.max_map_count = 2147483642' | sudo tee -a /etc/sysctl.d/80-gamecompatibility.conf
  • 查看非官方源的软件comm -23 <(pacman -Qq | sort) <(pacman -Sql core extra multilib archlinuxcn | sort)

Manjaro特别提示

Manjaro配置显卡

1
2
3
4
5
6
sudo pacman-mirrors -i -c China -m rank #换源
sudo mhwd -a pci nonfree 0300 #安装显卡驱动
yay -R libva-vdpau-driver xf86-video-intel xf86-video-nouveau #解决VLC闪退
yay -S libva-nvidia-driver intel-media-driver libva-utils vdpauinfo #安装正确的驱动
sudo pacman -S base-devel linux-headers #解决找不到fakeroot错误
sudo pacman -S gdb #gdb调试器

Windows+archlinux双系统指导
https://rukkhadevata123.github.io/2024/08/22/arch/
作者
Dawn Chirps
发布于
2024年8月22日
许可协议