记安装Arch Linux和Windows双系统
前言
闲来无事,装个Arch玩,就是图它logo好看:)
早有耳闻装了Arch每一天都在重装系统和修bug的路上,为了下次安装的时候不用满世界找资料,故在此记录过程。如果文章能够解决您的一些问题,甚是荣幸。
【超简单】Windows+Arch Linux双系统双磁盘方案,全程不废话
建议读完文章后再开始:)
注意,此文中的磁盘分配方式未将/home路径作为单独的分区挂载,这会导致您无法使用TimeShift程序对硬盘进行快照操作。
注意,此文在安装GRUB章节中,手动编辑配置文件的操作可能存在不妥,这不会导致系统无法运行,但请慎重参考。
开始之前
- 您应当已经掌握远高于大众的计算机知识。
- 您应当有过在空硬盘上安装操作系统的经验,例如Windows。
- 您应当有对Linux系统的基本了解,明白需要和黑白文字的控制台打交道而不是GUI界面。
- Arch Linux绝不适合作为您的第一个Linux系统,如果您从未使用过Linux系统,Ubuntu或许是个不错的选择。
- 由于Arch的安装过程需要手动分区,这其中误操作将会直接影响您的数据。请确保重要资料以完成备份
如果您已经
有了失败后重装系统的准备
已经对重要数据完成离线备份或者云备份(将数据只在机内备份只是安慰剂罢了)
准备好接下来数小时面对黑白控制台
关机之前
腾出需要安装Linux的磁盘空间,不要为它分区。我们会在后续安装过程中手动操作。
同时确保Windows的EFI引导分区大于200MB,没必要调太大,250MB足矣。您可以参考这篇文章。
在U盘上安装Ventoy,并将PE镜像和ArchLinux安装镜像直接拷贝到U盘根目录。
如上图所示,这个Ventoy启动盘中准备了5个系统镜像,其中Edgeless为一款PE启动盘,已提前安装相关引导修复,磁盘管理等软件。
准备好了吗?我们马上就要和Windows说拜拜了:)
进入ArchISO
重启设备,进入BIOS,将第一启动项修改到Ventoy。不出意外您应当选择Arch Linux install medium(x86_64, UEFI)
。当屏幕掠过一串提示信息并在最后一行打印出如下内容以为着您已经完成了第一步。
1 |
|
为设备连接网络
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 |
|
保存退出。
pacman -Sy
同步并更新本地存储库
安装系统
终于开始了:)
1 |
|
如果是英特尔处理器,那么ucode应为intel-ucode
,即
1 |
|
如果遇到下述报错,需要更新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-8
和zh_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,分区参考前面的表格。
vim /boot/grub/grub.cfg
用vim配置启动项,我们需要手动添加Windows配置。
搜索os-prober
,在BEGIN和END之间新编辑内容,结果如下,只需要修改第六行未的几个字符,将72FE-9083
替换成上面找到的UUID。
1 |
|
保存退出
重启到Windows,防止暴毙
exit
退出/mnt环境
umount -R /mnt
卸载/mnt下的所有硬盘
reboot
重启设备
选择到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 |
|
保存退出
reboot
重启
在程序坞中打开Fcitx Config
(应该是这个名字吧~)
在右侧搜索pinyin
添加到左边,然后点apply
应用。
现在应该可以按下CTRL + 空格
切换输入法了:)
收尾
在设置Region & Language
选项卡中选择语言为中文,注销,重新登陆。
会提示要不要更改用户文件夹的名字,都可以,看着顺眼就行。
至此,Arch Linux的安装就算正式结束了,记得装个neofetch看看logo:)
调整150%缩放
执行gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
后,可在设置页面中选择更多选项。
修复Edge和Typora字体异样的问题
安装ttf-ms-win11-auto
,亦可参考这篇文章。