0 开始之前&阶段目标
0.1 原因v2
我TMArch炸了,而且还不能用timeshift回滚。
不过正好,兜里现在有了采集卡,所以可以直接通过采集卡捕捉物理机安装的所有流程,而且也使用了最新的Arch安装镜像。
旧的不去,新的不来,也只能这么安慰自己了。
不过因为采集卡分辨率设置问题,在截图的右边会有一片白色的东西,就,凑乎看吧。
0.2 原因v1
从Ubuntu换到kubuntu,再换到Manjaro,在不同的发行版之间横跳了不知道多少次,最后(起码是到现在这小半年)一直在用ArchLinux。有几个原因让我选择Arch:
- Aur太香了,几乎不用考虑用apt的软件源问题;
- 虽然manjaro开箱即用,但是在添加Arch LinuxCN的源之后,开机总是会报一个有关数据库的错误,强迫症有点忍不了;
- 相比于Kubuntu内置的KDE,Arch中的KDE版本更高;
- 滚动式更新,更新强迫症狂喜;
- 想倒腾,纯粹想倒腾。
打算在这篇文章里讲讲Arch的安装过程,我实在是不想重新配置电脑,于是就在虚拟机里进行安装,不过步骤都是一致的,按着步骤一步步走下来就应该没有什么问题。
有人觉得安装Arch是个很复杂的事情,其实相比于Gentoo这种从源码编译开始安装的发行版,Arch的安装过程并不算复杂,如果顺着整个步骤走一遍,或许能对Linux产生更深的理解。
0.3 注意事项和安装目标
注意:这篇文章是根据GPT分区表以及UEFI引导方式的硬件安装流程编写的。如果是BIOS+MBR的组合,在硬盘分区以及引导安装步骤上可能会有所出入,建议结合别人的教学一起使用。
此外,建议在安装前仔细阅读官方安装文档,避免因为这篇文章过时导致的问题(起码在2023年12月3日的时候还算及时)。
你需要准备:
1. Arch官方的安装文档用来参考;
2. 一台UEFI+GPT的电脑;
3. 一个装有Arch的引导盘(我个人推荐用ventoy做引导盘,可以免格盘制作启动盘)
这篇教程要做什么:
|
|
那就开始吧。
1 进入环境
如果使用的是UEFI的话,大概就能看到这种样子的一个引导界面,选择第一项直接进就OK(因为采集卡采集不到grub界面,所以还是用虚拟机截图做代替)。
选择第一个选项进入之后你大概就会看到这样子的一个界面:
2 联网
取决于你的网络连接方式,有以下两种方法可选:
2.1 有线更稳定,我选有线
插网线后,直接运行dhcpcd &
让ip协商功能放在后台运行,正常情况下就可以联网了,比下面那条路要省不少时间!
2.2 无线更自由,我选无线
使用wpa_supplicant
通过WIFI联网,大概来说使用以下几个命令就行,虽然有点复杂,但是花的时间多啊。
2.2.0 补充
我是在联想R9000P上装的Arch,联想会默认软屏蔽掉蓝牙和WI-FI,可以通过这个命令来看屏蔽方式:
rfkill list
如果有和上面一样的软屏蔽情况就可以通过这个命令解除屏蔽,然后就和其他电脑一样可以进行Wi-Fi连接等操作了:
rfkill unblock all
2.2.1 定位网卡并连接Wi-Fi
首先我们要确定无线网卡的名字,用这个命令就行:
ip a
最下面的那个wlan0
就是这台设备的无线网卡。
使用ip link set wlan0 up
命令启动这张网卡,随后可以再使用ip a
命令确认状态,如果尖括号内多了“UP”这么个字段,就证明启动完毕,可以进行下一步了;
然后我们需要配置一下需要连接的无线网络信息,命令大概是这样的:
wpa_passphrase ESSID PASSWORD > FILENAME
ESSID对应你的网络名
PASSWORD对应无线密码
FILENAME随意,只是暂时保存信息用的,在这里我就管它叫wifi.txt
了。
接下来就可以使用wpa_supplicant -i wlan0 -c FILENAME &
这个命令让设备联网;
然后使用dhcpcd &
让设备和路由器协商,分配一个内网IP;
在最后,使用命令ping baidu.com
。
如果能ping通百度的话,那联网这一项基本上就完成了。
3 对时
在确保设备能够联网之后,使用如下命令来进行对时:
|
|
对时的目的是保证随后使用网络下载软件的时候不会出现SSL/TLS握手错误。
4 分区
DISCLAIMER:因为这次安装是在实体机装双系统,因此我没有动efi分区,不过大致流程类似,可以参考其他人或者官方的教程。
现在进行分区操作
首先使用fdisk看看这台电脑的分区情况:
|
|
我这里显示了很多个分区,不过重要的其实就最上面那几个/dev/nvme
开头那几个,因为这台设备只支持NVMe硬盘,其他设备应该都是启动盘的分区,不必在意。
我需要在/dev/nvme0n1
上面进行安装,大概计划就是这些:
分区类型 | 大小 | 挂载点 | 分区格式 | 功能 | 实际计划分区 |
---|---|---|---|---|---|
efi | 大于260M | /mnt/boot | fat32 | 在开机时进行系统引导 | /dev/nvme0n1p1 |
SWAP空间 | 通常来说是物理内存的一到二倍 | swap | 虚拟内存,保存系统休眠时的内存数据 | /dev/nvme0n1p4 | |
根目录 | 剩余空间 | /mnt | ext4 | 保存其他的所有文件 | /dev/nvme0n1p5 |
输入fdisk /dev/sda
开始用fdisk进行分区:
这时候就需要进行分区,需要进行以下步骤:
- 输入
n
来新建一个分区; - 输入分区序号,这里可以按照默认的来(也就是直接回车);
- 扇区开始地址,这里选择默认(也就是直接回车);
- 扇区结束地址,可以根据上面的参考表进行填写。例如,efi分区就可以输入
+300M
创建一个300M大小的分区,SWAP分区就可以用+16G
。
如此进行几遍,确保efi,swap和根目录,这三个要挂载的分区都有了,就可以继续下一步了。
(我这里应该是硬盘分区保存了之前安装的分区信息,所以会有红字报错,问题不大)
在分区完毕之后输入w
保存。
这时候我们再次输入fdisk -l
就可以看到做好的分区了:
相比之前多出了/dev/nvme0n1p4
和/dev/nvme0n1p5
两个分区。
下来就要对这三个分区进行格式化:
-
对于efi分区(如果是装双系统且已经有其他正常工作的系统就别跳到下一个分区):
1
mkfs.fat -F32 /dev/nvme0n1p1
-
对于SWAP分区:
1 2
mkswap /dev/nvme0n1p4 #格式化swap分区 swapon /dev/nvme0n1p4 #启用swap
-
对于根分区,我最近想试试btrfs分区格式,所以就用了下面的命令:
1
mkfs.btrfs /dev/nvme0n1p5
到此为止,我们基本上就完成了分区相关的所有操作,下来就是利用pacstrap工具进行Arch的解压安装了。
5 安装
5.1 配置pacman
pacman是Arch自带的包管理工具,在arch的安装过程中也要使用pacman来下载一些基本的工具,为了提升下载软件的速度,我们要稍微修改一下pacman的配置文件:
|
|
在Server
项的最上面添加这么一行,添加清华大学的镜像源:
|
|
当然,你也可以找一个别的更快的源,我这里懒得动,就用了原始的配置文件,保证大陆服务器在最上面就行。
下来使用pacman -Syy
指令来刷新当前缓存。
5.2 挂载分区
|
|
我们可以用lsblk
命令看一看当前分区的挂载情况,可以看到nvme0n1p5分区已经挂载到了/mnt下。
这是一个运行在u盘上的系统,当前的根目录位于U盘上,这时候想要修改电脑硬盘,就需要将电脑中的分区挂载到u盘上的系统,上面的那个命令就是把这个分区挂载到/mnt
分区下.
这时候我们看/mnt
目录下非空,证明挂载成功。
下来我们要在这个分区内创建一个新的文件夹,将efi分区挂载到这个文件夹上:
|
|
但是在我之前的使用下,不断“膨胀”的Linux内核会侵占电脑的EFI分区,导致很多隐性问题。于是可以将EFI分区挂在在/mnt/boot/efi
中,使其仅保存必要的efi引导文件。
|
|
5.3 使用pacstrap安装基本组件
刚刚我们把根分区挂载到了/mnt
上,使用下面这个指令来安装基本元件:
|
|
5.4 记录并保存分区信息
|
|
生成的fstab会让下次Arch启动的时候自动挂载以上分区
6 剩下一堆相关的配置
首先使用arch-chroot /mnt
开始进行配置
6.1 时区配置
|
|
|
|
6.2 语言文字配置
|
|
找到其中含有"en_US.UTF-8"项的那一行,去掉前面的井号。
使用locale-gen
来生成本地化内容。
|
|
添加内容如下:
|
|
6.3 主机名
|
|
在新建的文件中添加你想要的主机名,这里我就填写’Arch-Legion'
|
|
添加内容如下:
|
|
保存后退出
6.4 修改密码
passwd
之后输入两次你想要的新密码,就算改完了root密码。
6.5 配置引导
6.5.1 下载工具
|
|
6.5.2 生成grub配置
首先先给grub创建一个文件夹:
|
|
接下来就是生成grub的配置文件以及安装过程:
|
|
|
|
如果你在前面选择将EFI分区挂载在/boot/efi
的话,需要修改后面的参数:
|
|
如果你安装的是双系统,那么还需要修改/etc/default/grub
中的对应字段:
|
|
当上面的流程都做完了就可以退出系统并重启了。
7 最后的一些收尾工作
在完成之前还是需要安装几个用于联网的工具,避免开机之后你和完全不知道怎么下手的电脑面面相觑:
|
|
7.1 验收成果
在一切都做好之后,就可以一路exit,直到退到一开始的安装界面,随后输入reboot,就可以正常进入系统了(当然还是一个scary black box)。
7.2 双系统相关
我安装了几次双系统,都发现os-prober没法在Arch的安装阶段发现efi分区中的Windows启动项,因此推荐在重启之后重新执行生成一下grub配置信息,通常来说这次就可以发现Windows的启动项了。