Win10 + Arch双系统安装步骤(UEFI)

一、前期准备

Win10镜像下载地址

https://next.itellyou.cn/Original/

Arch镜像下载地址

https://www.archlinux.org/download/

老毛桃

https://www.laomaotao.net/

Rufus

http://rufus.ie/

image-20200906145436717安装完所需的软件之后,通过rufus刻录软件将系统镜像刻录到U盘中。如果不需要自定义EFI分区大小的话,老毛桃的winpe可以不下载,我这里是为了自定义EFI分区的大小,所以多准备了一个U盘放老毛桃的WinPe

二、安装Win10

1、进入BIOS关闭安全启动

我的笔记本是华硕的笔记本,这里按F2可以进入BIOS,大家不一样的品牌的笔记本可以自行百度各自型号的笔记本进入BIOS关闭安全启动

image-20200906150229920

2、使用老毛桃进行分区

如果你已经有Win10的操作系统或者你的EFI分区不需要自定义大小,可以忽略这步操作

我笔记本的硬盘已经被我格式化掉了,所以我在插入U盘的情况下,会自动读取U盘的可启动文件,进入老毛桃的winpe系统,华硕的笔记本按esc键也可以呼出快速启动选项,选中U盘启动即可

1.进入Winpe之后,打开磁盘工具进行分区,如果新建EFI/MSR分区的按键为灰色(不可点击)的话,先点击磁盘然后点击转换分区表类型为GUID格式保存即可

微信图片_20200906145151-1599376002825

建立ESP/MSR分区,我这里分512M并4K对齐,各位可以按需进行配置。

微信图片_202009061451512

建立Win10系统盘以及数据盘,这里我系统盘给65.1G,数据盘给150.1G ,主要目的是为了让它的可用空间显示为65.0G和150.0G而不是64.9G和149.9G,分区大小也是按需分配,大家可以自行设置。建立完分区之后,保存更改即可。我留出了223G的空间准备去安装Arch Linux所以这里我并没有格式化剩下的分区。

微信图片_202009061451513

微信图片_202009061451514

3、插入Win10镜像U盘进行Win10的安装

第一步语言这里默认即可,直接点击下一步

微信图片_202009061451515

接下来就是很简单的下一步,到了 你想执行哪种类型的安装?的时候选择自定义,然后选择安装专业版

微信图片_202009061451516

微信图片_202009061451517

接下来就进入到分区的界面了,由于我已经通过老毛桃进行分区了,所以这里不在进行分区,如果没有用老毛桃进行分区的话,可以在这个界面进行分区操作,Win10会自动分出100M的ESP分区

微信图片_202009061451518

分区完成之后,选择你要安装Win10的硬盘,然后点击下一步。我这里是安装在Win10这个硬盘下。点击下一步之后就会开始安装Win10

微信图片_202009061451519

安装完成之后,会自动进入配置界面,大家自行设置一下就行了,设置是很简单的,根据提示完成就可以了

微信图片_2020090614515110

4、啰嗦两句

自此,你的Win10系统已经安装完成了,可以接下来准备按Arch的过程了。这里我就啰嗦两句,就是如果你已经有Win10的操作系统了,可以在此电脑右键点击管理在打开的界面找到磁盘管理,选择你要安装的硬盘压缩一部分空间供Arch Linux系统的安装即可

微信图片_2020090614515111

微信图片_2020090614515112

到这里,Win10的整个安装过程就结束了

三、安装Arch Linux

1、开启sshd远程连接(可忽略)

插入刻录有Arch Linux的U盘,并进入到Arch Linux的U盘操作系统

安装Arch Linux我采用另一台电脑通过ssh连接到笔记本上的形式进行操作,如果你也想要这样的操作,那么你可以首先下载ssh连接工具,MobaXterm或者XShell,然后在你的笔记本进入arch的u盘系统之后,进行如下操作

1
2
3
4
5
6
7
# 首先设置root的密码
passwd
# 回车之后输入root的密码即可
# 之后打开sshd
systemctl start sshd
# 查看ip地址
ip addr

微信图片_20200906152929

微信图片_202009061529291

微信图片_202009061529292-1599377397304

我这里在我录制视频的时候没有拍照,所以又重新安装了一次Arch Linux所以分配的ip地址跟视频里的地址不一样,但是不影响演示

如果你在这一步并没有连接有线网络,那可以先看下面的网络连接之后再进行这步操作

用MobaXterm连接笔记本

image-20200906153305097

2、开启网络时间

1
timedatectl set-ntp true

3、连接网络

如果你没有使用远程连接去安装系统,并且你觉得字体太小,你可以执行如下操作,首先放大一下字体

1
setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz

有线网络,插上你的网线就OK了,这里介绍一下Wifi的连接

第一步:首先确认自己的无线网卡的名称以及网卡是否开启

1
2
# 查看网卡的名称
ip link

image-20200906153715270

这里我的无线网卡的名称是wlan0并且状态是UP的状态,如果你的无线网卡没有UP的状态,你可以先执行如下命令

1
2
3
4
# ip link set 你的无线网卡名称 up
# 我这里就是
ip link set wlan0 up
# 执行完成这个命令之后,如果不出意外的话你再执行一变 ip link 你的无线网卡就已经是开启的状态了

第二步:查看你的WIFI功能是否被关闭

1
2
# 通过 rfkill list查看
rfkill list

image-20200906154011721

如果你这个这个无线的状态写的是yes的话,你可以先执行下面的操作

1
2
rfkill unblock wifi
# 不出意外,你再执行以下 rfkill list结果就是我上面的那样

第三步:再确认了网卡名称以及wifi功能都没有问题之后,下面正式进行wifi的连接

1
2
3
# 通过 iwctl 命令来连接wifi
# 首先输入 iwctl 回车 你会进入到如下页面 这里用tab键是可以自动补全的
iwctl

image-20200906154558711

这样就说明你的wifi已经验证成功了,然后执行 exit 退出。退出之后你其实ping baidu.com还是ping不通的,原因是你还没有给你的无线网卡分配ip地址

1
2
# 通过 dhcpcd 命令分配ip 地址
dhcpcd

微信图片_20200906154825

这样就OK了,无线已经连接成功

4、分区

接下来要给Arch Linux分区

1
2
# 首先通过 fdisk -l 查看一下磁盘信息
fdisk -l

image-20200906155043992

确定自己要安装的硬盘的名字,我这里是 /dev/sdb

1
2
# 然后我将对这块硬盘进行分区
fdisk /dev/sdb

image-20200906155152286

这里进入了分区的操作界面,输入m查看一下帮助

我们主要用到 p n w 这三个指令

p:查看硬盘信息 n:新建硬盘 w:写入并退出

image-20200906155239655

首先我们输入 n 进行分区

image-20200906155408605

这里我先新建交换分区

第一行命令行提示默认的盘符是5,我准备5这个盘符要给根分区,所以我指定了交换分区的盘符6

第二行是选择起始位置,这里就不用变,直接回车就好

第三行是设置分区的大小,+8G的意思就是分配8G的空间给交换分区 这个交换分区的大小看个人设置

接下来再输入 n 准备分根目录,这里就一直回车就可以了

image-20200906155654650

这样就给根目录分配了所有的剩余空间并且盘符是5

输入 p 查看一下分区信息,如果没问题的话再输入 w 保存退出

image-20200906155759198

这样我们的分区工作就完成了,接下来我们要进行格式化的操作

我们要将arch linux 的更分区(也就是 /dev/sdb5)格式化成 ext4 的格式

设置交换分区(**/dev/sdb6**)

命令如下

1
2
# 首先格式化根目录为 ext4 格式 这里一定要格式化成ext4格式
mkfs.ext4 /dev/sdb5

image-20200906160019700

1
2
3
4
# 然后设置交换分区
mkswap /dev/sdb6
# 回车之后执行
swapon /dev/sdb6

image-20200906160127723

OK!这样分区的处理也就完成了

5、设置pacman的软件镜像源

如果你前面已经设置了网络时间,那么pacman的镜像源会自动帮你选择一个下载速度最快的源地址,当然这是arch自己认为的,我们进入配置里面确认一下

1
vim /etc/pacman.d/mirrorlist

image-20200906160656188

可以看到这里给我分配了一个东软的镜像源,如果你这把不是我们国内的源或者你想要自己手动设置镜像源的话,我这里也演示一下,我选择清华的源来设置一下。首先百度一下清华源

image-20200906160803588.png

这个就是,点进去,找到archlinux然后点击后面的问号

image-20200906160841538

就可以查看到他的地址以及操作的流程了

image-20200906160907857

根据提示完成镜像源的设置即可

image-20200906161000083

我这里设置完成了,然后保存退出之后执行一下

1
pacman -Syy

image-20200906161042263

这样软件的镜像源就更新完成了

6、开始安装系统

在前面的准备工作都做好之后,终于可以进行系统的安装了,通过arch提供的命令 pacstrap来安装

但是!但是!但是!

在进行这个命令安装系统之前,我们还需要把我们的分区挂载到 /mnt

1
2
3
4
5
6
7
8
9
10
11
12
# 挂载根分区到/mnt下 这个分区的名字可以通过 fdisk -l来确定
mount /dev/sdb5 /mnt
# 创建 boot 文件夹 来挂载EFI分区
mkdir /mnt/boot
# 挂载EFI分区到 /mnt/boot 下
mount /dev/sdb1 /mnt/boot
# 然后安装arch
pacstrap /mnt base linux linux-firmware base-devel networkmanager intel-ucode vim git openssh bash-completion neovim
# 这里说明一下,官方wiki让我们安装前面三个基础软件就可以进入系统了,但是这里我还是推荐大家把
# base-devel networkmanager intel-ucode/amd-ucode(根据你电脑的CPU选择) 也一起装上
# 后面的 vim neovim git openssh是我个人需要,所以也就一起先安装了,大家有需要也可以先安装上或者后续在自行安装
# 输完上面的安装命令之后,回车就完事了,然后等它自己下载安装完成

image-20200906161937829

在系统安装完成之后,我们需要在U盘的系统内再做最有一件事,就是吧硬盘的信息写到 /mnt/etc/fstab

1
2
3
4
# -U是生成UUID 然后一定要使用两个箭头 >> 意识是追加,如果是一个箭头的话就是覆盖的意思
genfstab -U /mnt >> /mnt/etc/fstab
# 完成之后大家可以看一下这个文件
cat /mnt/etc/fstab

image-20200906162228767

这样ArchLinux的系统就已经安装完成了,接下来我们进入到真正的系统,进行一些必要的操作

1
arch-chroot /mnt

image-20200906162435102

提示符变化 说明你已经进入了真正你安装的arch的操作系统了

7、必要的操作!!!!!!!

终于到最后一步了呢,你离成功就差一步了。

1
2
3
4
5
# 首先设置一下时间以及同步一下硬件时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 回车
hwclock --systohc
# 回车

image-20200906162620893

1
2
3
4
5
6
7
8
# 然后我们设置一下系统的语言
# 编辑 /etc/locale.gen 文件
vim /etc/locale.gen
# 找到 en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8 把前面的注释去掉,也就是去掉#号
# 如果你也是用vim的话
# 输入 /en_US 回车可以查找 然后按 n 往下查找,找到en_US.UTF-8 UTF-8之后
# 你可以把光标移到#上,然后按下x,或者你直接进入编辑模式,把#号删掉
# 把 en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8注释都去掉之后 按esc退出编辑模式,然后 :wq 保存退出

image-20200906163029155

1
2
# 然后生成一下语言
locale-gen

image-20200906163110185

1
2
3
# 最后设置缺省的语言,这里推荐使用英文,不然到时候进入命令模式的时候会出现中文乱码
echo LANG=en_US.UTF-8 >> /etc/locale.conf
# 这里使用一个箭头或者两个箭头都可以

image-20200906163410385

接下来我们设置 hostname以及编辑hosts文件

1
2
3
4
# 设置 hostname
echo archlinux >> /etc/hostname
# 这里同样使用一个箭头或者两个箭头都可以
# 这个就是设置 archlinux 为我的hostname 大家可以自行设置

image-20200906163456490

1
2
3
4
5
6
7
8
# 编辑hosts文件
vim /etc/hosts
# 输入如下内容
127.0.0.1 localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux
[你的hostname].localdomain [你的hostname]
# 保存并退出

image-20200906163748335

因为之前,我在安装系统的时候我还下载了 networkmanager和openssh,所以这里我希望每次在启动的时候我都希望这两个服务都是开启的

1
systemctl enable NetworkManager sshd

image-20200906163909286

这样每次在开机的时候都会自动启动了

然后我们的系统现在只有一个root的账户,所以我现在需要新增一个普通的用户

1
2
3
4
5
6
7
useradd -m -g wheel codex
# -m 就是生成一个家目录
# -g 就是给这个用户添加一个用户组 我这里加的是 wheel
# codex 就是我的用户名
# 接下来,设置一下这个用户的密码
passwd codex
# 然后设置你自己的密码就好了 用户名大家自行设置即可

image-20200906164156521

上面说到我给我这个普通用户放到了 wheel 组里,这个组里的用户是可以通过 sudo 提权的,但是现在还不行,我们还需要进行一步操作

1
visudo

image-20200906164701824

去掉这一行前面的注释保存退出即可

在设置好普通用户之后呢,我们还需要设置一下root用户的密码,通过 passwd 命令即可

image-20200906164829632

OK,在前面的一系列操作都完成之后,我们需要做一件最最最重要的事情,就是系统的引导,我这里使用的是grub引导,首先我们需要先下载grub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pacman -S grub efibootmgr os-prober
# os-prober 可以让grub找到其他操作系统
# efibootmgr 可以让你看到你的引导信息

# 2022-08-07 修改
# 新版本的grub使用os-prober的时候会找不到Windows系统
# 需要修改 /etc/default/grub 将最后一行 'GRUB_DISABLE_OS_PROBER=false' 的注释去掉
# 如果没有 GRUB_DISABLE_OS_PROBER=false 则在最后一行添加即可
vim /etc/default/grub

# 接下来我们配置引导
# 我这里是x86_64 efi形式的,所以我配置(你可以通过 uname -m查看,如果你跟我一样一步步操作下来的话,那你跟我的就是一样的)
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# 安装完成之后,我们需要生成一下grub的配置文件
grub-mkconfig -o /boot/grub/grub.cfg

image-20200906165538439

这样我们的必要操作也就都完成了,我们exit退出到U盘系统

然后取消挂载 umount -R /mnt

在执行 reboot

不出意外的话,你的电脑就会进入grub的引导界面

微信图片_20200906165753

成功进入grub引导界面,一共有两个系统,选择第一个 Arch Linux进入系统

微信图片_20200906165758

Congratulations and enjoy it