随时参考官方安装文档:Installation_guide (简体中文)

前期准备

镜像下载

官网下载:archlinux.org 「提供全球各地区镜像源」

国内镜像:阿里云清华源中科大浙大源163源

下载最新 iso 镜像文件,请自行校验文件签名、文件完整性(PGP、MD5)。

U盘刻录

注意!U盘会被格式化,请提前做好U盘数据备份!

Ventoy 官方下载:ventoy.netgithub

解压并打开 ventoy 如图,设备会自动检测 U 盘;

配置选项 --> 分区类型 --> 选择 GPT;

点击安装,等待安装结束;

然后将下载好的 iso 镜像文件拷贝到 U 盘中。

ventoy

推荐使用 ventoy 的理由

一次安装无限使用:ventoy 几乎支持所有类型系统安装,因此安装不同系统,无需反复地格式化制作镜像U盘,只需把系统 ios 镜像文件直接拷贝到U盘即可。且完全不影响 U 盘日常使用。

Rufus 官方下载:rufus.iegithub

打开 Rufus 如图,设备会自动检测到 U 盘;

选择下载好的 iso 镜像文件;

分区类型:有 MBRGPT,推荐 GPT

目标系统类型:默认随分区类型改变;

其他选项默认,点击开始,等待完成即可。

rufus

如何查看磁盘分区类型?

cmd 命令行执行:

1
diskpart

切换至 diskpart 模式,然后执行:

1
list disk

最后一列为 GPT 信息,有 * 为 GPT 类型,没有则为 MBR 类型。

可以通过 DIskGenus 软件,对磁盘分区类型进行转换。

磁盘分区表格式 GUID(GPT) 和 MBR 区别

磁盘分区表格式 GUID(GPT) 和 MBR 区别:

  • GPT分区表:GUID Partition Table,全局唯一标识分区表,与 MBR 最大 4 个分区表项的限制相比,GPT 对分区数量没有限制,但 Windows 最大仅支持128个 GPT 分区,GPT 可管理硬盘大小达到了 18EB。只有基于 UEFI 平台的主板才支持 GPT 分区引导启动。

  • MBR分区表:Master Boot Record,硬盘主引导记录分区表,只支持容量在 2.1TB 以下的硬盘,超过 2.1TB 的硬盘只能管理 2.1TB,最多只支持 4 个主分区或三个主分区和一个扩展分区,扩展分区下可以有多个逻辑分区。

两种磁盘分区类型,分别对应主板BIOS两种引导启动模式:

  • 磁盘分区格式为 GUID(GPT) 格式,引导启动模式为新的 UEFI。
  • 磁盘分区格式为 MBR 格式,引导启动模式为传统 Legacy;

对比传统 BIOS 引导启动,UEFI 减少了 BIOS 自检的步骤,节省了大量时间,从而加快系统启动。

Etcher 官方下载:etcher.iogithub

默认安装,打开 etcher 如图;

Flash from file:选择下载好的 iso 镜像文件;

Select target:选择 U 盘;

点击 Flash 开始制作,等待完成即可。

etcher

查看 U 盘名称和路径;

1
df -h

取消 U 盘挂载;

1
sudo umount /dev/sdx

格式化 U 盘;

1
mkfs.ntfs -f /dev/sdx

dd 刻录镜像到 U 盘;

1
sudo dd if=xxx.iso of=/dev/sdx bs=1m

其中 if 指定镜像文件,of 指定刻录 U 盘路径,bs 指定输入输出块大小。

磁盘准备

系统安装需要准备一块 空闲 的磁盘空间,空闲指的是 未分配,推荐空间 30G以上;

如果是整个磁盘用于安装,注意磁盘数据备份,确保无重要数据;

如果是在磁盘的某个分区安装,确保该分区未分配。

windows 可在磁盘管理中,通过删除卷或压缩卷,分出一块未分配的空闲空间,也可通过 DiskGenius 软件进行分区操作。

开始安装

文章中图片均来自 VMware + Archlinux 安装,与实体机安装过程对应,请放心参考!

BIOS启动项

电脑插入 U 盘,开机按 F2 进入 BIOS 设置,BOOT 选项卡,设置 U 盘为优先启动项 (F5、F6上下选择),F10 保存重启。

启动到Live环境

选择菜单第一项『Arch Linux install medium (x86_64,UEFI)』

uefi_boot

选择菜单第一项『Arch Linux install medium (x86_64,BIOS)』

bios_boot

Arch 系统开始加载,加载完成后,进入命令提示符界面,接下来的操作就是在此命令行进行。

arch_login

验证引导模式

引导模式主要有两种:UEFI 引导 + GPT 分区表BIOS 引导 + MBR 分区表

新机器多采用 UEFI/GPT 引导模式,老机器一般采用 BIOS/MBR 引导模式;

检查引导模式执行如下命令:

1
ls /sys/firmware/efi/efivars

命令执行后,如果有如下错误提示,表明是 BIOS 模式引导;

1
ls: cannot access '/sys/firmware/efi/efivars': No such file or directory

如果列出一系列目录,没有错误提示,则为 UEFI 模式引导,这一步决定后面的引导安装操作。

连接网络

Arch 安装过程中,我们需要网络下载所需组件,所以先连接网络,建议优先使用有线网络连接;

插上网线,一般系统会自动连接网络,通过 ping 命令检查网络连接是否正常;

1
ping -c 5 baidu.com

如果输出相应数据包信息,则说明网络连接正常,进入下一步;

如果提示找不到该主机,可能是 dhcp 服务没有开启,通过命令开启 dhcp 服务;

1
systemctl enable dhcpcd.service

可通过 dhcp 动态获取 ip 地址;

1
dhcpcd

然后再通过 ping 命令检查网络连接是否正常。

使用无线网络,则可通过iwctl验证网络,执行:

1
iwctl

进入[iwd]#交互式提示,列出所有 wifi 设备:

1
device list

列出的是无线网卡,比如wlan0

1
2
3
4
5
6
                                    Devices                                   *
--------------------------------------------------------------------------------
Name Address Powered Adapter Mode
--------------------------------------------------------------------------------
wlan0 d0:ab:d5:c0:08:00 on phy0 station

然后扫描 wifi 网路:

1
station 网卡名 scan

列出所有可用 wifi 网络:

1
station 网卡名 get-networks

显示结果如下:

1
2
3
4
5
6
                               Available networks                             *
--------------------------------------------------------------------------------
Network name Security Signal
--------------------------------------------------------------------------------
xxx psk ****

然后连接到自己的 wifi 网络,按提示输入网络密码,连接成功。

1
station 网卡名 connect wifi名

也可以通过命令行参数形式完成连接:

1
iwctl --passphrase 密码 station 网卡名 connect wifi名

更新系统时间

首先验证系统时间是否正确:

1
timedatectl status

如果与当前时间不匹配,使用以下命令更新系统时间:

1
timedatectl set-ntp true

磁盘分区

常用分区工具有fdiskcfdiskgdiskcgdisk等,fdisk 命令风格,cfdisk 图形化风格,这里使用fdisk

首先查看磁盘和分区情况,根据磁盘空间大小,判断要安装的是哪个磁盘;

1
fdisk -l	# 或者 lsblk

假如 /dev/sda 就是我们要安装的磁盘,可以通过如下命令查看该磁盘的分区情况:

1
fdisk -l /dev/sda

如果磁盘有多个分区,这里会显示 /dev/sda1/dev/sda2 等多个分区信息,startend 代表磁盘起始和结束的扇区号,此时我们在该磁盘的未分配空间上开始建立新分区,用来安装 ArchLinux。

1
fdisk /dev/sda

进入 fdisk 分区工具,可以使用如下功能:

m:查看帮助
g :创建新的 GPT 分区表
o :创建新的 BIOS 分区表
n :新建分区
p :查看已分区信息列表
t :更改分区类型
w:保存本次分区操作并退出
q:不保存本次分区操作并退出

如果是 UEFI 模式,我们创建三个分区:

  • EFI 引导分区(512M)用于系统引导;

  • swap 交换分区 (4G)用于系统休眠处理缓存;

  • 根分区(剩余空间)用于安装系统 。

如果是一块全新的硬盘,首先输入 g,创建新的 GPT 分区表,否则直接执行下面操作;

创建第一个分区(EFI 引导分区)

1、输入 n (新建分区)
2、直接回车选择默认(Partition type 分区类型,p 是主分区,e 是扩展分区)
3、直接回车选择默认(Patition number 分区号)
4、直接回车选择默认(First sector 开始的部分)
5、输入 +512M,然后回车(Last sector 结束的部分)
6、输入 t ,然后回车(更改分区的类型,输入 L 可以查看所有类型)
7、输入 uefi,然后回车(更改分区的类型为 EFI )

创建第二个分区(swap 交换分区)

1、输入 n (新建分区)
2、直接回车选择默认(Partition type 分区类型,p 是主分区,e 是扩展分区)
3、直接回车选择默认(Patition number 分区号)
4、直接回车选择默认(First sector 开始的部分)
5、输入 +4G,然后回车(Last sector 结束的部分)
6、输入 t ,然后回车(更改分区的类型,输入 L 可以查看所有类型)
7、输入 swap,然后回车(更改分区的类型为 EFI )

创建第三个分区(根分区)

1、输入 n (新建分区)
2、直接回车选择默认(Partition type 分区类型,p 是主分区,e 是扩展分区)
3、直接回车选择默认(Patition number 分区号)
4、直接回车选择默认(First sector 开始的部分)
5、直接回车选择默认(Last sector 结束的部分,将剩余空间都给到根分区)
6、输入 p,查看分区列表:/dev/sda1 (EFI)、/dev/sda2 (Linux swap)、/dev/sda3 (Linux)
(如果不对,输入q重新来一遍)
7、输入 w,回车退出(将分区表写入磁盘,并退出)

如果是 BIOS 模式,我们创建两个分区:

  • swap 交换分区 (4G)用于系统休眠处理缓存;

  • 根分区(剩余空间)用于安装系统 。

如果你的是一块全新的硬盘,首先输入 o,创建新的 MBR 分区表,否则直接执行下面操作;

创建第一个分区(swap 交换分区)

1、输入 n (新建分区)
2、直接回车选择默认(Partition type 分区类型,p 是主分区,e 是扩展分区)
3、直接回车选择默认(Patition number 分区号)
4、直接回车选择默认(First sector 开始的部分)
5、输入 +4G,然后回车(Last sector 结束的部分)
6、输入 t ,然后回车(更改分区的类型,输入 L 可以查看所有类型)
7、输入 swap,然后回车(更改分区的类型为 EFI )

创建第二个分区(根分区)

1、输入 n (新建分区)
2、直接回车选择默认(Partition type 分区类型,p 是主分区,e 是扩展分区)
3、直接回车选择默认(Patition number 分区号)
4、直接回车选择默认(First sector 开始的部分)
5、直接回车选择默认(Last sector 结束的部分,将所有空间都给到根分区)
6、输入 p,查看分区列表:/dev/sda1 (Linux swap)、/dev/sda2 (Linux)(如果不对,输入q重新来一遍)
7、输入 w,回车退出(将分区表写入磁盘,并退出)

格式化分区

创建分区后,必须使用合适的文件系统,对每个新创建的分区进行格式化。

将对应磁盘分区/dev/sdax替换为自己的分区。

引导分区的文件系统类型要求为 Fat32,系统支持安装在 ext4 文件系统上。

1
2
3
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
mkfs.fat -F32 /dev/sda1

创建交换分区,系统支持安装在 ext4 文件系统上。

1
2
mkfs.ext4 /dev/sda2
mkswap /dev/sda1

挂载分区

挂载分区一定要遵循顺序,先挂载根分区(到 /mnt),再挂载(boot)引导分区(到 /mnt/boot/mnt/efi),最后再挂载其他分区。否则可能遇到安装完成后无法启动系统的问题。

先将根分区挂载到/mnt

1
mount /dev/sda3 /mnt

然后mkdir创建其他挂载点,EFI 引导分区需挂载到 /mnt/boot:

1
2
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot

如果创建了交换分区,使用swap启用它:

1
swapon /dev/sda2

配置软件源

Arch 中使用软件包管理器 pacman 安装管理来自 官方软件仓库 的软件包,通过pacman -S 命令搜索安装相应软件包,可以在配置文件/etc/pacman.conf中相关仓库包进行配置。

配置官方镜像源

Arch 默认官方软件源下载速度慢,我们添加国内的镜像源,用 vim 编辑配置文件:

1
vim /etc/pacman.d/mirrorlist

移动光标,o或者i进入编辑模式,添加 阿里云、清华tuna、中科大ustc、163 的镜像源在最前面。

1
2
3
4
5
6
7
8
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch  //阿里云
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch //中科大
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch //清华源
Server = https://mirrors.cloud.tencent.com/archlinux/$repo/os/$arch //腾讯
Server = https://mirrors.163.com/archlinux/$repo/os/$arch //网易
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch //华为
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch //北外
...

然后按 Esc,输入:wq回车,保存并退出。

然后更新软件包,安装 archlinux-keyring 包导入 GPG key:

1
2
pacman -Syy
pacman -S archlinux-keyring

配置ArchlinuxCN源

参考官方说明:ArchLinux 中文社区仓库
github 项目:https://github.com/archlinuxcn/repo
仓库镜像:https://github.com/archlinuxcn/mirrorlist-repo

ArchLinux 中文社区仓库 是由 ArchLinux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。一部分软件包的打包脚本来源于 AUR,但也有许多包与 AUR 不一样。

使用 vim 编辑文件/etc/pacman.conf

1
vim /etc/pacman.conf

shift+g到跳转文件末尾,添加如下 archlinuxcn 镜像源,建议选取一个国内最快的即可;

1
2
3
4
5
6
7
8
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch //清华
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch //中科大
Server = https://mirrors.aliyun.com/archlinuxcn/$arch //阿里云
Server = https://repo.huaweicloud.com/archlinuxcn/$arch //华为
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch //北外
Server = https://mirrors.163.com/archlinux-cn/$arch //网易
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch //腾讯

安装 archlinuxcn-keyring 包导入 GPG key:

1
2
pacman -Syy
pacman -S archlinuxcn-keyring

安装系统基础软件包

安装一些基础的 archlinux 包到系统分区,确保重启开机后的基本环境。

1
pacstrap /mnt base base-devel linux linux-firmware linux-headers

安装必要软件包

1
pacstrap /mnt vim git iwd dhcpcd networkmanager bash-completion

安装配置

配置fstab

默认情况下,电脑重启后,并不会自动挂载磁盘分区,造成系统无法使用。
通过配置/etc/fstab文件,系统开机会读取此文件的挂载信息,然后挂载相应的磁盘分区。

1
genfstab -U /mnt >> /mnt/etc/fstab

切换到新系统

1
arch-chroot /mnt

Chroot 意为 Change root,切换至安装好的 Linux 系统,之后的操作,就是在新装的 archlinux 中进行了

设置时区

1
2
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

设置本地编码

用 vim 编辑文件/etc/locale.gen

1
vim /etc/locale.gen

/搜索并打开以下两行内容,去掉前面#即可:

1
2
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8

然后执行命令:

1
locale-gen

用 vim 编辑文件/etc/locale.conf

1
vim /etc/locale.conf

添加如下内容:

1
LANG=en_US.UTF-8

设置主机名

用 vim 编辑文件/etc/hostname,第一行添加一个自己喜欢的主机名,如:archlinux

1
vim /etc/hostname

用 vim 编辑文件/etc/hosts

1
vim /etc/hosts

在文件末添加如下内容:(将 archlinux 替换成自己的主机名)

1
2
3
127.0.0.1	localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux

root用户密码

给 root 用户设置密码,按提示输入两次密码即可;

1
passwd

添加普通用户

安全考虑,为避免直接使用 root 用户产生不可逆的误操作,平时最好不要直接使用 root 用户进行操作,而是使用权限较低的普通用户进行操作,我们创建一个普通用户 (arch),并添加到 wheel 组;

1
useradd -m -G wheel arch

-m:创建用户主目录(/home/用户名)
-G:用户要加入的附加组列表;这里将用户加到 wheel 组中,然后赋予 sudo 命令的执行权限

给 arch 用户设置密码,按提示输入两次密码即可;

1
passwd arch

用 vim 编辑文件/etc/sudoers

1
visudo

/查找%wheel,找到如下行,打开前面的#号,给 wheel 组赋予 sudo 命令的执行权限

1
%wheel ALL=(ALL) ALL

这样我们就可以通过 arch 用户,使用 sudo 命令运行命令。

安装grub引导

根据 CPU 是 Intel,还是 AMD,安装微码;

1
2
pacman -S intel-ucode	//intel cpu
pacman -S amd-ucode //amd cpu

如果当前电脑存在其他系统,安装os-prober

1
pacman -S os-prober 

然后安装 grub;

1
pacman -S grub efibootmgr

部署 grub

UEFI 模式下部署 grub:

1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ArchLinux

BIOS 模式下部署 grub:

1
grub-install --target=i386-pc /dev/sda

这里应为整个磁盘/dev/sda,而不是分区/dev/sda1

生成 grub 配置文件

1
grub-mkconfig -o /boot/grub/grub.cfg

安装完毕

至此,archlinux 的基本安装已完成,退出当前系统到启动 U 盘;

1
exit

取消磁盘挂载

1
umount -R /mnt

重启系统

1
reboot

拔掉 U 盘,重启后,输入用户名和密码,即可进入 archlinux 系统。

neofetch查看系统信息

1
2
sudo pacman -S neofetch
neofetch

此时的系统仅仅是命令行界面,接下来我们要对系统进行一些必要的配置:包括联网、安装窗口管理器、以及各种常用软件,来丰富我们的 archlinux,使之使用起来更加得心应手。