记安装Arch Linux和Windows双系统

前言

闲来无事,装个Arch玩,就是图它logo好看:)

早有耳闻装了Arch每一天都在重装系统和修bug的路上,为了下次安装的时候不用满世界找资料,故在此记录过程。如果文章能够解决您的一些问题,甚是荣幸。

【超简单】Windows+Arch Linux双系统双磁盘方案,全程不废话

Scale display at 150%

archlinux 简明指南

Arch中文WIKI

建议读完文章后再开始:)

注意,此文中的磁盘分配方式未将/home路径作为单独的分区挂载,这会导致您无法使用TimeShift程序对硬盘进行快照操作。

注意,此文在安装GRUB章节中,手动编辑配置文件的操作可能存在不妥,这不会导致系统无法运行,但请慎重参考。

开始之前

  • 您应当已经掌握远高于大众的计算机知识。
  • 您应当有过在空硬盘上安装操作系统的经验,例如Windows
  • 您应当有对Linux系统的基本了解,明白需要和黑白文字的控制台打交道而不是GUI界面。
  • Arch Linux绝不适合作为您的第一个Linux系统,如果您从未使用过Linux系统,Ubuntu或许是个不错的选择。
  • 由于Arch的安装过程需要手动分区,这其中误操作将会直接影响您的数据。请确保重要资料以完成备份

如果您已经

  • 有了失败后重装系统的准备

  • 已经对重要数据完成离线备份或者云备份(将数据只在机内备份只是安慰剂罢了)

  • 准备好接下来数小时面对黑白控制台

关机之前

腾出需要安装Linux的磁盘空间,不要为它分区。我们会在后续安装过程中手动操作。
同时确保Windows的EFI引导分区大于200MB,没必要调太大,250MB足矣。您可以参考这篇文章。

在U盘上安装Ventoy,并将PE镜像和ArchLinux安装镜像直接拷贝到U盘根目录。

Ventoy样例

如上图所示,这个Ventoy启动盘中准备了5个系统镜像,其中Edgeless为一款PE启动盘,已提前安装相关引导修复,磁盘管理等软件。

准备好了吗?我们马上就要和Windows说拜拜了:)

进入ArchISO

重启设备,进入BIOS,将第一启动项修改到Ventoy。不出意外您应当选择Arch Linux install medium(x86_64, UEFI)。当屏幕掠过一串提示信息并在最后一行打印出如下内容以为着您已经完成了第一步。

1
root@archiso ~ #

为设备连接网络

Arch的安装需要正常的网络连接,同时其仓库在国内有多个镜像站点可用。

输入rfkill list,查看当前网络设备的锁定状态。若Soft blocked后的内容为yes,我们需要使用rfkill unblock wifi命令解锁wifi,可能您的蓝牙也显示锁定状态,但不必理会。

输入ip link命令查看网卡设备,蓝色字为网卡名。若网卡名为wlan0(大部分都是),用ip link set wlan0 up启用网卡。

输入iwctl进入网络配置界面。
station wlan0 scan 让网卡wlan0扫描网络,注意,这行命令不会有信息返回。
station wlan0 get_networks 打印扫描到的WIFI。
station wlan0 connect [YOUR_SSID] 连接网络,例如您要连接的WIFI名为TPLINK_666,那么您应当输入station wlan0 connect TPLINK_666 。然后输入密码后回车。注意,此时您无法输入中文。
exit退出网络配置界面。
您可以输入ping baidu.com来测试网络连通性,按下Ctrl + C结束ping。

timedatectl set-ntp true 设置ntp自动同步时间。不要跳过这个步骤

分配磁盘空间

打起十二分的精神,若在此步骤犯错可能会破坏Windows的系统引导或者对数据造成不可逆的破坏!

fdisk -l 查看当前磁盘布局

笔者的设备中有两块硬盘,其中一块(2TB)安装了Windows系统,另一块(512GB)还是完全空置的状态。(未分区)

如果您也使用U盘中的Ventoy启动ArchISO镜像,您可能会看到多达4个设备,不必担心,我们只需关注在机内的2块硬盘,如果您希望在单硬盘中安装双系统,那么亲完全理解本节内容后操作。

下面的表格对应当前硬盘的分区状态。(不要觉得奇怪,在Linux中是以文件夹的形式表达硬盘的)

硬盘路径 分区 分区大小 用途
/dev/nvme1n1 /dev/nvme1n1p1 260MB EFI引导
/dev/nvme1n1p2 16MB Windows保留分区
/dev/nvme1n1p3 1.9T Windows主分区
/dev/nvme1n1p4 999.3MB Windows恢复分区
/dev/nvme0n1 此硬盘下无分区

如果终端的字体过大或者当前页面一屏显示不全,可以在命令后面加上| less 命令查看(↑,↓翻页,按q退出)
例如fdisk -l | less

如果多块硬盘较为混乱可以看Disk model一栏的硬盘名字。

现在我们需要对硬盘/dev/nvme0n1进行分区操作。

我们一共需要3个分区,分别是EFI引导分区,Linux系统主分区,内存Swap分区
后续我们会安装GRUB管理启动项,所以EFI分区直接使用/dev/nvme1n1p1,我们只需要在新硬盘/dev/nvme0n1上创建Linux系统主分区和内存Swap分区。

fdisk /dev/nvme0n1 使用fdisk工具开始操作硬盘/dev/nvme0n1
输入p可以查看当前分区。空的,没什么好看~

创建Swap分区

输入n新建分区
Partition Number : 默认,或者自己看着办
First sector : 默认
Last Sector : +8G 此处可以直接输入形如+16G的指令,相当指定First sector后16GB的位置为结束点。
回车
Swap分区的大小需要依内存大小而定,如果不设置Swap分区,设备将不能休眠。建议内存充足直接设置等同内存大小。

输入p查看磁盘布局

硬盘路径 分区 分区大小 用途/格式
/dev/nvme1n1 /dev/nvme1n1p1 260MB EFI引导
/dev/nvme1n1p2 16MB Windows保留分区
/dev/nvme1n1p3 1.9T Windows主分区
/dev/nvme1n1p4 999.3MB Windows恢复分区
/dev/nvme0n1 /dev/nvme0n1p2 8G Linux FileSystem
创建系统主分区

输入n新建分区
Partition Number : 默认,或者自己看着办
First sector : 默认
Last Sector : 默认 选择剩余的所有空间。
回车

输入p查看磁盘布局

硬盘路径 分区 分区大小 用途/格式
/dev/nvme1n1 /dev/nvme1n1p1 260MB EFI引导
/dev/nvme1n1p2 16MB Windows保留分区
/dev/nvme1n1p3 1.9T Windows主分区
/dev/nvme1n1p4 999.3MB Windows恢复分区
/dev/nvme0n1 /dev/nvme0n1p1 468.9G Linux FileSystem
/dev/nvme0n1p2 8G Linux FileSystem

分区操作-看着不是那么直观

再次警告,误操作将会损坏Windows分区数据,确保你知道你在干什么

输入w保存该布局。

格式化主分区

mkfs.btrfs /dev/nvme0n1p1,将分区格式化到btrfs格式。

格式化Swap分区

mkswap /dev/nvme0n1p2 在分区/dev/nvme0n1p2中创建Swap文件
swapon /dev/nvme0n1p2 指定/dev/nvme0n1p2为Swap。

挂载

磁盘中的数据需要挂载到系统文件中才能访问。

mount /dev/nvme0n1p1 /mnt 挂载主分区到/mnt文件夹。
mkdir /mnt/boot 创建boot文件夹。
mount /dev/nvme1n1p1 /mnt/boot 挂载EFI分区到boot文件夹。

此处的EFI分区为Windows硬盘中的分区,可参考上文的表格,不要打错任何一个字符。

硬盘路径 分区 分区大小 用途/格式 挂载路径
/dev/nvme1n1 /dev/nvme1n1p1 260MB EFI引导 /mnt/boot
/dev/nvme1n1p2 16MB Windows保留分区
/dev/nvme1n1p3 1.9T Windows主分区
/dev/nvme1n1p4 999.3MB Windows恢复分区
/dev/nvme0n1 /dev/nvme0n1p1 468.9G Linux FileSystem /mnt
/dev/nvme0n1p2 8G Swap

添加镜像源

如果您对自己的网络没有足够的信心,那还是老老实实添加吧。

vim /etc/pacman.d/mirrirlist 用Vim打开镜像列表。(不会用?来看看这篇文章

last check下面添加两行

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

保存退出。

pacman -Sy同步并更新本地存储库

安装系统

终于开始了:)

1
pacstrap -K /mnt base base-devel linux linux-firmware sudo nano vim networkmanager amd-ucode

如果是英特尔处理器,那么ucode应为intel-ucode,即

1
pacstrap -K /mnt base base-devel linux linux-firmware sudo nano vim networkmanager intel-ucode

如果遇到下述报错,需要更新keyring,然后再次执行上述命令。

pacman -Sy archlinux-keyring

等待下载安装……

安装完成后不会有什么大的漂亮的提示 : (

genfstab -U /mnt >> /mnt/etc/fstab创建硬盘挂载的系统层次结构。(看不懂没关系,照着打就行)

进入新系统

arch-chroot /mnt 进入新安装的系统

本地化

ln -sf /user/share/zoneinfo/Asia/Shanghai /etc/localtime 指定系统时区

hwclock --sytohc 将硬件时钟设置为当前的系统时间

vim /etc/locale.gen 配置系统语言

搜索en_US.UTF-8 UTF-8zh_CH.UTF-8 UTF-8,去掉前面的#

不知道这么用vim搜索?来看看这篇文章或者去睡大觉吧

locale-gen 生成本地化文件

vim /etc/locale.conf 创建并编辑

在第一行输入LANG=en_US.UTF-8

保存退出

温馨提示,如果你不想看到一堆空心方框,就不要在安装中文字体前设置系统语言为中文~

vim /etc/hostname 打开并配置主机名

直接输入,例如latop-arch,这是在蓝牙和WLAN中其他设备看到你的名字。

保存退出

systemctl enable NetworkManager 启动NetworkManager服务。

创建账号

在Linux系统中直接使用root账号进行日常操作不是个明智的选择,我们需要创建一个日用账号。

useradd -m -G wheel -s /bin/bash [username]创建一个名为username的账号,例如useradd -m -G wheel -s /bin/bash coolfan即为创建一个名为coolfan的账号(第一个字母不能大写)

passwd [username] 为用户username指定密码,例如passwd coolfan即指定用户coolfan的密码。

输入并重复密码。

注意此处的密码输入后不会有提示,输完直接按回车即可。

visudo 用vim配置sudo权限,命令就是这一个单词~

搜索找到# %wheel ALL=(ALL:ALL) ALL,删掉行首的注释和空格。

保存退出

新东西-GRUB

pacman -S grub efibootmgr os-prober 安装grub及相关组件。

vim /etc/default/grub 编辑grub配置

找到#GRUB_DISABLE_OS_PROBER=false(应该在文件末尾),删掉行首的注释。

保存退出

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB往硬盘安装GRUB引导~

grub-mkconfig -o /boot/grub/grub.cfg 创建配置文件

blkid /dev/nvme1n1p1 查看EFI分区的UUID,分区参考前面的表格。

EFI磁盘UUID为 72FE-9083

vim /boot/grub/grub.cfg 用vim配置启动项,我们需要手动添加Windows配置。

搜索os-prober,在BEGIN和END之间新编辑内容,结果如下,只需要修改第六行未的几个字符,将72FE-9083替换成上面找到的UUID。

1
2
3
4
5
6
7
8
9
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Microsoft Windows 11' {
insmod part_gpt
insmod fat
insmod chain
search --fs-uuid --no-floppy --set=root 72FE-9083
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

保存退出

重启到Windows,防止暴毙

exit 退出/mnt环境

umount -R /mnt 卸载/mnt下的所有硬盘

reboot重启设备

选择Windows启动

选择到Windows启动。

没有看到GRUB页面?或许你需要拔掉Ventoy启动盘,再次重启

如果没有看到Windows选项,可能是GRUB配置出错。

但愿您能顺利进入系统并检查有无数据分区被损坏:)

我想您应该已经有心理准备了吧:)

重启到Arch Linux

在Windows中选择重启,选择Arch Linux启动

输入用户名和密码完成登陆。注意此处的密码输入后不会有提示,输完直接按回车即可。

重复之前的联网操作

安装桌面环境

一天到晚对着终端不好,我们需要漂亮的GUI~

sudo pacman -S gnome gnome-tweaks 安装gnome及相关组件。

Linux上有许多桌面环境可选,此处我们选择的是pacman,窗口管理器为wayland。(为什么?因为我喜欢,可以在文末看到一些图片。

安装过程会可选一些配置,一路默认即可~

等待~~~

安装显卡驱动

笔者的电脑是一台AMD 5800h+RTX 3060的笔记本,本文在此仅安装AMD核显驱动。

显卡品牌/类型 包名
AMD/ATI xf86-video-amdgpu xf86-video-ati libva-mesa-driver vulkan-radeon
Intel libva-intel-driver intel-media-driver vulkan-intel
Nvidia (open-source) mesa xf86-video-nouveau
Nvidia (proprietary) nvidia
Vmware/virtualbox xf86-video-vmware libva-mesa-driver

sudo pacman -S xf86-video-amdgpu libva-mesa-driver vulkan-radeon

对于闭源驱动和多显卡驱动,请问问Google~ 我们先只安装集显,让独显休息着。

systemctl enable gdm 启动gdm服务,这是和Gnome相关的内容。

GUI!

reboot 重启设备

不出意外,一个不太熟悉但是较为简单的图形界面已经展现出来了:)

输入密码登陆

在右上角点击,选择设置图标,在Display选项卡中调整分辨率和缩放。

Gnome默认只提供整百的屏幕缩放,如果想启动150%缩放,请不要着急,文末会给出解决方案

将鼠标滑到左上角可以调出桌面控制台(我瞎起的名字),选择底栏的更多,打开终端,我们需要安装中文输入法和一些小玩意

sudo pacman -S git ntfs-3g wqy-zenhei fcitx5-im fcitx5-chinese-addons

配置中文输入法

sudo vim /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

保存退出

reboot重启

在程序坞中打开Fcitx Config(应该是这个名字吧~)

在右侧搜索pinyin添加到左边,然后点apply应用。

现在应该可以按下CTRL + 空格切换输入法了:)

收尾

在设置Region & Language选项卡中选择语言为中文,注销,重新登陆。

会提示要不要更改用户文件夹的名字,都可以,看着顺眼就行。

至此,Arch Linux的安装就算正式结束了,记得装个neofetch看看logo:)

neofetch

调整150%缩放

执行gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

后,可在设置页面中选择更多选项。

修复Edge和Typora字体异样的问题

安装ttf-ms-win11-auto亦可参考这篇文章

拜拜

改个壁纸,头像


记安装Arch Linux和Windows双系统
http://coooolfan.com/2023/01/23/Install-both-Arch-and-Windows-systems/
作者
Coolfan
发布于
2023年1月23日
许可协议