Win11 ArchLinux双系统安装

Win11 ArchLinux双系统安装

双系统推荐先装 Windows,然后在 Windows 下分好分区大小,然后再装 Linux,之后使用 grub 来引导双系统

Windwos11 安装

下载镜像

NEXT, ITELLYOU下载 Windows 镜像,下载完后和安装普通软件一样安装即可

我图方便会使用迅雷下载,如果有更好的选择可以用别的软件,只要支持 BT 或 ED2K 即可,因为网站只提供了这两种下载方式

制作启动盘(可选)

如果是没有系统的全新的电脑,需要在另一台电脑上将镜像放入 U 盘,做成启动盘

我一般会使用Rufus 完成这个过程,操作简单,软件小巧

有了启动盘之后,插上电脑,开机时按 F2 进入 Bios,选择优先用 USB 启动。进 Bios 的方式,根据电脑品牌有所不同

进入安装程序之后按着提示安装即可

Windows 配置(可选)

添加开机启动项

Win + R 打开运行窗口,输入 shell:startup 打开启动文件夹

修改键盘反应速度

注册表修改:

  1. Win+R 打开运行窗口,输入 regedit 进入注册表
  2. 打开计算机\HKEY_CURRENT_USER\Control Panel\Keyboard
  3. 调整 keyboardspeed 即可,其默认值是 31

控制面板修改:

如果是 Win11 的话推荐使用这种方式,以前用 Win10 的时候,控制面板里的键盘速度拉满还是觉得慢,但是 Win11 拉满感觉还行

开始菜单搜索控制面板-控制面板搜索键盘-按提示修改即可

启用 WSL2

Win11 现在自带 WSL1,只需要启用,然后升级成 WSL2 即可

  1. Win+i 打开设置,进入应用-可选功能,添加虚拟机平台Linux 子系统,重启生效
  2. 下载更新包wsl_update_x64.msi并安装
  3. 启用 WSL2
1
wsl --set-default-version 2
  1. 安装一个你习惯的发行版,我这里选择 Arch
  • 微软官方没有提供 Arch 的镜像,但 Github 上有yuk7/ArchWSL
  • 使用证书+appx 的方式安装,在 Release 界面下载最新的.cer 和.appx
    • 证书安装,双击-安装证书-本地计算机-将所有证书都放入下列存储-收信任人
    • appx 双击安装即可

Manual installation steps for older versions of WSL | Microsoft Learn

配置 Shell

  1. 安装powershellnerd font
  2. 安装 oh-my-posh
1
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))
  1. 安装gerardog/gsudo
1
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; [Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
  1. 配置主题
1
2
3
4
# 创建启动配置文件
New-Item -Path $PROFILE -Type File -Force
# 使用notepad打开启动配置文件
notepad $PROFILE

在打开的记事本中添加并保存以下内容即可启用 sorin 主题

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/sorin.omp.json" | Invoke-Expression

配置 Terminal Emulator

Win11 自带 Windows Terminal,不用自己安装

  1. 添加配色
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"background": "#23262E",
"black": "#23262E",
"blue": "#0321D7",
"brightBlack": "#292E38",
"brightBlue": "#03D6B8",
"brightCyan": "#03D6B8",
"brightGreen": "#8FD46D",
"brightPurple": "#EE5D43",
"brightRed": "#F92672",
"brightWhite": "#C74DED",
"brightYellow": "#FFE66D",
"cursorColor": "#EE5D43",
"cyan": "#03D6B8",
"foreground": "#FFCA28",
"green": "#8FD46D",
"name": "Aurora",
"purple": "#EE5D43",
"red": "#F0266F",
"selectionBackground": "#292E38",
"white": "#C74DED",
"yellow": "#FFE66D"
},

  1. 添加键位绑定
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
"actions": [
{
"command": "unbound",
"keys": "alt+enter"
},
{
"command": {
"action": "sendInput",
"input": "\u001b[65;6u"
},
"keys": "ctrl+shift+a"
},
{
"command": {
"action": "sendInput",
"input": "\u001b[72;6u"
},
"keys": "ctrl+shift+h"
},
{
"command": {
"action": "sendInput",
"input": "\u001b[74;6u"
},
"keys": "ctrl+shift+j"
},
{
"command": {
"action": "sendInput",
"input": "\u001b[75;6u"
},
"keys": "ctrl+shift+k"
},
{
"command": {
"action": "sendInput",
"input": "\u001b[76;6u"
},
"keys": "ctrl+shift+l"
}
],
  1. 去除 powershell 版本信息
    在 powershell 的启动命令后面加上-Nologo ,注意,在引号的外面加

ArchLinux 安装

调整磁盘分区

这一步可以在 Linux 安装过程中进行,但是 Windows 的图形界面会稍微方便一点

在 Windows 中右键此电脑-管理-磁盘管理,按提示分区即可

下载镜像

以 ArchLinux 为例,在ArchWiki下载ArchLinux 镜像

制作启动盘

使用 Rufus 制成启动盘,选择 dd 模式写入

重启进 Bios 选择 USB 启动,进入安装程序

连接网络

  1. 解除 wifi 禁用,有时可能需要
1
rfkill unblock wifi
  1. 连接 wifi
1
2
3
4
5
6
7
8
9
10
#进入iwctl
iwctl
#列出可用的设备
device list
#扫描wifi
station wlan0(设备名) scan
#列出wifi
station wlan0(设备名) get-networks
#连接wifi
station wlan0(设备名) connect ssid

[!NOTE] WPA Enterprise 连接企业协议的 wifi
在 /var/lib/iwd 文件夹中创建一个 essid.8021x 格式文件

1
2
3
4
5
6
7
[Security]
EAP-Method=PWD
EAP-Identity=your_enterprise_email
EAP-Password=your_password

[Settings]
AutoConnect=True
  1. 动态分配 ip 地址
1
dhcpcd &
  1. 同步时间
1
timedatectl set-ntp true

挂载分区

  1. 列出所有分区
1
fdisk -l

输出样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Disk /dev/nvme0n1:476.94 GiB,512110190592 字节,1000215216 个扇区
磁盘型号:WDC PC SN730 SDBPNTY-512G-1101
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:72F59F11-233F-4406-B9C0-115C1635EE14

设备 起点 末尾 扇区 大小 类型
/dev/nvme0n1p1 2048 534527 532480 260M EFI 系统
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft 保留
/dev/nvme0n1p3 567296 419987294 419419999 200G Microsoft 基本数据
/dev/nvme0n1p4 419987456 998166527 578179072 275.7G Linux 文件系统
/dev/nvme0n1p5 998166528 1000214526 2047999 1000M Windows 恢复环境

进入硬盘进行操作

1
2
3
4
5
6
7
fdisk /dev/nvme0n1
# m for help
# p print the partition table
# g create a new empty GPT partition table
# o create a new empty mbr partition table
# w 写入你的所有更改
# n add a new partition

请确保 EFI 分区的大小大于 126M, 不然可能空间不够, 导致无法安装 Grub 引导, 最好 200M, 因为后续可能安装各种 Grub 主题

  1. 格式化 Linux 数据存储分区,以 nvme0n1p4 为例,注意,不要格式化 Windows 启动引导所在的分区
1
mkfs.ext4 /dev/nvme0n1p4
  1. 挂载数据分区和 boot 分区
1
2
3
mount /dev/nvme0n1p4 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

安装系统

我选择安装长期支持版的内核

1
2
3
4
#安装系统
pacstrap /mnt base linux-lts linux-firmware neovim
#生成fstab文件
genfstab -U /mnt >> /mnt/etc/fstab

切换到新系统进行配置

切换到新系统

1
arch-chroot /mnt

设置 root 密码

1
passwd

设置交换空间

一般来说内存够大是不需要交换空间,但是有交换空间的话可以方便系统休眠,所以还是设置一个比较好

  1. 分配交换空间
1
fallocate -l 2GB /swapfile
  1. 更改权限
1
chmod 600 /swapfile
  1. 建立并激活交换空间
1
2
3
4
#建立交换空间
mkswap /swapfile
#激活交换空间
swapon /swapfile
  1. 修改/etc/fstab 开机自动挂载swapfile
    在文件末尾添加
1
/swapfile none swap defaults 0 0

设置时区

  1. 设置时区
1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. 同步硬件时钟
1
hwclock --systohc

设置语言

  1. 取消zh_CN.UTF-8en_US.UTF-8的注释
1
nvim /etc/locale.gen
  1. 生成语言环境
1
locale-gen
  1. 配置语言环境
1
nvim /etc/locale.conf

向文件里写入LANG=en_US.UTF-8 ,因为 tty 界面不支持中文显示,所以为了放止乱码,务必先设置为英文环境,进入桌面后再改为中文

设置 hostname 和 hosts

  1. 设置 hostname,打开/etc/hostname 写入你喜欢的名称,这里以Legion 为例
  2. 修改/etc/hosts
1
2
3
127.0.0.1 	localhost
::1 localhost
127.0.0.1 Legion.localdomain Legion

安装并配置 Grub 引导

因为新版本的 windows 无法引导 Linux,所以使用 Grub 来引导双系统

  1. 安装必备软件包,grub 和 efibootmgr 用于引导,os-prober 用于搜索 windows 引导程序,如果你是 intel cpu,需要将 amd-ucode 换为 intel-ucode
1
pacman -S grub efibootmgr os-prober amd-ucode
  1. 配置 grub
    打开/etc/default/grub
1
2
3
4
# 如果你使用nvidia独显,需要安装nvidia专有驱动,并在grub中禁用开源驱动
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet modprobe.blacklist=nouveau"
# 取消这一行的注释以启用os-prober
GRUB_DISABLE_OS_PROBER=false
  1. 安装并生成 grub 配置
1
2
3
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Grub
#生成grub配置
grub-mkconfig -o /boot/grub/grub.cfg

创建用户

  1. 新建用户,并加入 wheel 组,方便开启 sudo
1
useradd -m -G wheel <用户名>

添加进 lp 组,不然无法使用蓝牙

1
gpasswd -a <用户名> lp

设置密码

1
passwd zk
  1. 开启 sudo
1
2
3
pacman -S sudo
ln -s /usr/bin/nvim /usr/bin/vi
visudo

去掉%wheel ALL=(ALL) ALL的注释

安装必备软件

1
pacman -S networkmanager nvidia-lts
  1. 一定要安装一个网络管理软件,我选择 networkmanager,使用方法:
  • nmcli device wifi list
  • nmcli device wifi connect SSID password XXXXXXXX
  1. 如果在 grub 中禁用了开源 nvidia 驱动的话,一定要安装 nvidia 的专有驱动,不然开机会黑屏,我选择的是 linux-lts 内核,所以安装 nvidia-lts

设置开机启动项(守护进程)

1
2
systemctl enable bluetooth.service
systemctl enable NetworkManager.service

退出新系统并重启

1
2
3
4
exit
killall iwd
umount -R /mnt
reboot

双系统时间同步

Linux 下执行

1
timedatectl set-local-rtc 1

回到 Windows,设置-时间和区域-立即同步

额外配置(可选)

开机自动挂载 Windows 分区

  1. 安装 ntfs-3g,用于读取 ntfs 文件系统
1
pacman -S ntfs-3g
  1. 创建挂载点,使用/mnt/c是为了和 WSL 保持一致
1
sudo mkdir /mnt/c
  1. 查看 windwos 分区的 UUID
1
sudo blkid /dev/nvme0n1p3
  1. 修改/etc/fstab,在末尾加入
1
UUID=XXXXXX   /mnt/c    ntfs-3g    defaults    0 0

生成 SSH 密钥

1
ssh-keygen -t rsa -b 4096 -C "备注"

配置 Git

1
2
git config --global user.name XXX
git config --global user.email [email protected]
作者

Meow-2

发布于

2022-11-28

更新于

2023-02-22


评论