缘起
手上有一个2018年的老Surface Pro 6,现在性能已经有些跟不上了,但还可以拿来玩一玩,就准备安装一两个轻量级的Linux系统,顺便熟悉熟悉不同的Linux发行版,为之后更新主力机的Linux系统做准备。
一直听说Arch Linux是Linux发行版中的“邪教”,以其极简、高度定制、滚动更新等特点而著称,所以就决定尝试一下,看看Arch Linux到底有多“邪教”。
Arch Linux简介
Arch Linux是一个极其轻量级的Linux发行版,它的设计哲学是简单、轻量、灵活。Arch Linux主要特点有:
- 滚动更新:Arch Linux是一个滚动更新的发行版,不像Ubuntu、Debian等发行版有固定的版本号,而是持续更新软件包,用户可以一直用最新的系统。但这也意味着用户需要经常更新系统,否则可能会出现软件包不兼容的问题,而且需要承担新系统有bug或不稳定的风险,俗称更新系统时会“滚挂”(尽管我认为现在的Arch Linux系统发生“滚挂”的频率已经很低了)。
- 简单:Arch Linux的设计哲学是简单,它提供了一个干净的系统,用户可以根据自己的需求定制系统。Arch Linux的安装包不包含图形界面,也不含预装软件,用户需要自己选择安装。
- 软件丰富:Arch Linux提供了一个强大的软件包管理工具
pacman
,用户可以通过pacman
安装、卸载、更新软件包,还可以通过AUR
(Arch User Repository)安装第三方软件包。pacman
+AUR
可能是Linux发行版中最大的软件仓库,用户可以在AUR
中找到几乎所有的软件包,但有些软件的打包质量可能不高,需要用户自己注意。
这些特点使得Arch Linux有利有弊,总的来说,Arch Linux适合那些有一定经验、喜欢折腾、有洁癖、追求新功能的用户。
Arch Linux安装
早年间Arch Linux的安装完全依靠用户手敲命令,现在Arch Linux提供了一个安装向导archinstall
,大大简化了安装过程。尽管如此,安装Arch Linux依然需要用户知道一些基础知识,比如磁盘分区、文件系统、引导方式、网络配置等。
准备安装U盘
首先我们需要制作一个启动盘,建议使用Ventoy
工具。Ventoy
是一个非常好用的工具,可以将多个ISO文件写入U盘,方便我们选择不同的系统安装,也不耽误U盘的正常使用。具体用法可参见官方文档。
下载Arch Linux ISO
从Arch Linux官网下载最新的Arch Linux ISO文件,然后将ISO文件复制到U盘中。Arch Linux的系统镜像一般每月1号更新一次。
安装
-
插入U盘,启动Surface Pro 6,按住
Volume Up
键进入BIOS设置,将U盘设置为第一启动项。对于其他设备,可能需要按F2
、F12
、ESC
等键进入BIOS设置。 -
选择
Boot Arch Linux (x86_64)
,进入Arch Linux安装界面。然后会看到滚动的一堆命令,等待一会儿就会进入Root用户的命令行界面。 -
在开始安装之前,我们需要连接网络。一般Arch Linux会自动识别有线网络,如果是无线网络,需要使用命令行工具
iwctl
连接。常用的命令有device list
station <device_name> connect <wifi_name>
然后输入密码station <device_name> show
查看连接状态
-
运行
archinstall
开始安装- 建议事先给磁盘分好区
- 安装时选择
manual partition
,依次选择磁盘和分区,给分区选择挂载点。至于如何分区,可参考多系统启动项配置 - 至于网络选项,我也没太搞懂,但基本原则是:
- 如果选择不装图形界面,就选择复制ISO里的网络设置,即执行
archinstall
之前的联网设置 - 如果选择装图形界面,就选NetworkManager。但是Network Manager似乎需要需要disable
iwd
,并且需要安装Surface特定的驱动。
- 如果选择不装图形界面,就选择复制ISO里的网络设置,即执行
-
安装结束后会自动
chroot
到安装好的系统里,可以执行安装后的命令。- 安装Surface联网需要的驱动:
pacman -S linux-firmware-marvell
。 - 如果不装图形界面,要想重启后顺利联网,需要安装
iwd
和dhcpcd
。
- 安装Surface联网需要的驱动:
-
重启
- 我用的rEFInd作为启动加载器,rEFInd会扫描到两处Arch的启动项,但总有一个不能启动
-
重启后联网
- 若使用图形界面,如果没有网络图标,那要么是没装NetworkManager,要么没装驱动
- 若不装图形界面,需要使用
iwd
联网,先启动iwd
:1
sudo systemctl start iwd
1
�后启动`dhcpcd.service`
1
do systemctl start dhcpcd.service
- 在命令行界面也可以使用NetworkManager联网:
nmcli device show
nmcli device wifi connect <wifi_name> password <password>