ArchLinux安装教程

ArchLinux安装教程 # 镜像制作

下载镜像

镜像烧录

制作启动盘,Windows 下推荐使用 Ventoy ,下载好软件,安装进U盘(会格式化U盘,请保存好U盘数据),把下载好的镜像直接放在 VENTOY 分区,开机重启进入U盘,选择进入arch live进行安装系统。

⚠️ 注意:

请确保下载最新的安装镜像!因为 archlinux 是滚动发行版,不存在使用旧的安装镜像安装旧版本的说法。

安装系统

启动到 Live 环境

根据ArchWiki介绍,Arch是不支持安全启动的,而一般电脑默认开启安全启动,所以需要先到BIOS里面关闭安全启动( Secure Boot ),注意需要先关闭Windows的快速启动。

关闭 BIOS 设置中的 Secure Boot

在类似名为 security(安全)的选项卡中,找到一项名为Secure Boot(安全启动,名称可能略有差异)的选项,选择 Disable 将其禁用。

在开机的时候,按下 F2 / F8 / F10 / DEL 等(取决与你的主板型号,具体请查阅你主板的相关信息)按键,进入主板的 BIOS 设置界面。选择U盘,进入Live环境,选择第一项开始加载安装程序,如果不是类似界面,请检查BIOS设置或者U盘烧录是否正确。

正式安装

禁用 reflector 服务

2020 年,archlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(软件包管理器 pacman 的软件源)。在特定情况下,它会误删某些有用的源信息

通过以下命令将该服务禁用:

禁用reflector服务
1
systemctl stop reflector.service

通过以下命令查看该服务是否被禁用,按下 q 退出结果输出:

查看reflector服务是否被禁用
1
systemctl status reflector.service

检查是否UEFI启动

检查是否UEFI启动
1
ls /sys/firmware/efi/efivars

在终端输入以上命令。若输出了一堆东西(efi 变量),则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。

连接WIFI

防止网卡被禁用,使用以下命令解除网卡禁用:

软解网卡
1
rfkill unblock all

ArchLinux安装需要下载一些软件,需要保证网络通畅,ArchLinux不会默认连接网络,建议手机开usb热点电脑连接,不用额外配置。

输入 iwctl 进入wifi连接界面:

wifi 连接
1
2
3
4
5
6
7
8
9
10
11
12
#是否启用了网络接口
ip link
#执行iwctl命令,进入交互式命令行
iwctl
-------------下面为iwctl界面,不同于终端-----------
[iwd] help # 输入help回车可以查看使用说明
[iwd] device list # 回车后可以查看当前网卡设备,一般为 wlan0
[iwd] station <device> scan # <device>替换为上面的网卡设备,这条命令可以让网卡扫描wifi设备
[iwd] station <device> get-networks # 回车后可以显示当前可连接网络,列出所有 wifi 网络
[iwd] station <device> connect <wifi name> # 连接wifi, <wifi name> 为上面获取的wifi名称,注意这里无法输入中文。回车后输入密码即可
password: # 如果wifi为加密wifi,输入密码回车
[iwd] exit或者quit # 退出 wifi 连接界面

测试网络是否连接成功:

测试连通
1
ping www.baidu.com -n

更新系统时间

更新系统时间是有必要的,因为下载软件是服务器会验证系统时间,如果时间不正确,可能出现下载失败的情况,输入以下命令同步系统时间为准确时间:

更新系统时间
1
2
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 查看系统时间状态,检查是否成功,看到(system clock synchronized :yes)这一句就是成功了

换源

使用 vim 编辑器修改 /etc/pacman.d/mirrorlist 文件。将 pacman 软件仓库源更换为国内软件仓库镜像源:

ℹ️ 提示: 如果不会使用 vim 编辑器,请参阅 这里vim编辑器在安装和配置系统的过程中还需要使用多次。

备份原来的配置文件
1
cp -a /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
编辑配置文件
1
vim /etc/pacman.d/mirrorlist
vim操作
1
2
3
4
5
6
7
8
9
10
11
# ---------------下面为vim操作,不同于终端-------------

# 找到第一个 Server=... 的行在该行上一行写入以下内容
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch # 阿里云镜像站

# --------------------------------------------------
#也可以按/,搜索China,找到中科大的镜像源,然后2dd 剪切2行,再按GG回到第一行,按 p 粘贴
更新软件包
1
pacman -Syy

硬盘分区

推荐分区

分区大小挂载目录类型作用
/根目录分区150G/Linux filesystem存放系统文件
/home家目录分区300G/homeLinux filesystem存放用户文件
/boot引导分区1G/bootEFI System存放引导文件
swap交换分区16GLinux Swap系统恢复分区

使用磁盘分区查看命令,区分要安装 archlinux 的磁盘(通过观察磁盘的大小、已存在的分区情况等判断)并显示当前磁盘的分区情况:

查看系统的分区情况
1
2
#查看磁盘分区 lsblk
#查看磁盘分区详细信息 fdisk -l

⚠️ 注意:

如果你的硬盘是NVME协议的固态硬盘,那么将是nvmexn1

☢️ 警告

分区操作的部分命令具有危险性!除非你知道每一个命令在干什么,否则请不要执行! 同时,请提前做好数据备份,防止数据丢失!

接下来使用 cfdisk 命令对磁盘分区(对于 SATA 协议的硬盘,x 为字母 abc 等等;对于 NVME 协议的硬盘,x 为数字 012 等等,请根据实际情况判断) 我的ArchLinux安装到了 /dev/nvme0n1上面 (后面的p1 p2这些就是分区,外接U盘一般为/dev/sdx1 /dev/sdx2等)

cfdisk分区
1
2
3
4
5
6
7
8
9
10
11
cfdisk /dev/nvme0n1

# ----------------------cfdisk界面---------------------

# cfdisk 是图形化的分区,比fdisk简单很多
# 下面有一行操作文件,通过左右方向键可以移动到不同选项。上下方向键可以选择不同分区进行操作
# [New]选项为新建分区,将方向键选择到未分配的分区,选择[New]选项,回车后会提示新分区大小,输入大小即可创建一个新的分区
# [Quit]可以退出 cfdisk ,并且不保存修改,也就是之前做的操作一律作废
# [Help]选项可以查看 cfdisk 帮助
# [Write]选项才是真的执行写入操作,使用后会对操作的磁盘执行写入,以前做的修改会生效
# [Type]选项可以改变分区类型,boot分区选择EFI分区类型,根分区和home分区选Linux filesystem类型,swap分区选择Linux swap类型

具体操作请看官方文档

格式化分区

上面的操作只是分区,需要进行格式化,不同分区需要不同的格式。

☢️ 警告

格式化分区会删除所有数据,千万小心操作!

格式化根分区和home分区:根分区和home分区都是Linux常见的 ext4 格式

格式化根目录和家目录分区
1
2
3
4
5
6
# <disk> 为你刚才分区时指定的分区,如果忘记可以使用 fdisk -l 查看
mkfs.ext4 /dev/<disk>

# 例如:
# mkfs.ext4 /dev/nvme0n1p1
# mkfs.ext4 /dev/nvme0n1p2

格式化boot分区:引导分区采用的是FAT格式

格式化引导分区
1
2
3
4
5
6
# <disk> 为你刚才分区时指定的分区,如果忘记可以使用 fdisk -l 查看

mkfs.fat -F 32 /dev/<disk> 或者 mkfs.vfat /dev/sda1

# 例如:
# mkfs.fat -F 32 /dev/nvme0n1p3

格式化swap分区:交换分区不需要挂载,采用特定格式

格式化交换分区
1
2
3
4
mkswap /dev/<device>

# 例如:
# mkswap /dev/nvme0n1p4

挂载分区

根据上面的分区方案,将不同分区挂载到不同目录

挂载分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 假设分区方案为:
# 根分区 -> / -> /dev/nvme0n1p1
# home分区 -> /home -> /dev/nvme0n1p2
# boot分区 -> /boot -> /dev/nvme0n1p3
# swap分区 -> 不挂载 -> /dev/nvme0n1p4
# Linux分区由根分区开始,所以必须先挂载根目录才能挂载其他目录,然后创建文件夹,挂载

# 挂载 / 目录
mount /dev/nvme0n1p1 /mnt

# 创建 /home 目录
mkdir /mnt/home
mount /dev/nvme0n1p2 /mnt/home # 挂载 /home 目录

# 创建 /mnt/boot 目录
mkdir /mnt/boot
mount /dev/nvme0n1p3 /mnt/boot # 挂载 /mnt/boot 目录

# 挂载交换分区
swapon /dev/nvme0n1p4

使用 df 命令复查挂载情况:

磁盘挂载情况
1
df -h
使用 free 命令复查 Swap 分区挂载情况:
Swap挂载情况
1
free -h # -h 选项会使输出以人类可读的单位显示

安装系统

主要安装基本系统和需要用到的工具。使用 pacstrap 命令安装基础包:

挂载分区
1
2
3
4
#往/mnt目录里安装系统
#系统最基础的四个包是 base base-devel linux linux-firmware

pacstrap /mnt base base-devel linux linux-firmware

⚠️ 注意:

如果用了旧版镜像导致无法下载,一般显示GDP密钥出错,出现“User is unknown trust, installation failed“。先要安装最新密钥 pacman -S archlinux-keyring 。如果不是这个问题,就更新一下签名:pacman-key --refresh-keys

安装完基本系统后,再安装一些必要的功能性软件:

挂载分区
1
pacstrap /mnt vim git dhcpcd e2fsprogs iwd sudo zsh zsh-completions ntfs-3g gvfs-mtp networkmanager

📑 命令参数说明:: - zsh —— zsh-completions 如果你是 bash 的爱好者,请把这个包换成 bash-completion - 如果你是第一次接触*nix 系统的新手,不建议换成 bash

生成文件系统表

fstab 用来定义磁盘分区。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件。文件系统表主要用于系统启动时自动挂载分区,不然系统无法正常启动!执行以下命令:

生成 fstab 文件
1
2
3
4
# 生成 fstab文件 (用 `-U` 或 `-L` 选项设置 UUID 或卷标)
genfstab -U /mnt >> /mnt/etc/fstab
# 查看是否生成
cat /mnt/etc/fstab

若为 NVME 协议的硬盘,输出结果应该与此类似:

fstab文件内容
1
2
3
4
5
6
7
8
9
10
11
# /dev/nvme0n1p2
UUID=088f578f-19d9-4266-baf9-b5194c36beed / ext4 rw,relatime 0 1

# /dev/nvme0n1p1
UUID=AFB8-AC26 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2

# /dev/nvme0n1p4
UUID=9a4b82c6-bd5b-4c9a-a948-9e0834daca40 /home ext4 rw,relatime 0 2

# /dev/nvme0n1p6
UUID=78175647-f0d3-4e47-a9e5-06845525e308 none swap defaults 0 0

到这一步基本系统安装已经完成,但是我们还需要进入系统进行基本的配置。

进入系统
1
arch-chroot /mnt
此时,原来安装盘下的 /mnt 目录就变成了新系统的 / 目录。同时,可以发现命令行的提示符颜色和样式也发生了改变。

设置主机名

首先在 /etc/hostname 设置主机名:

设置主机名
1
2
# 这里可以把ArchLinux换成自己想要的名字
echo "ArchLinux" >> /etc/hostname

接下来在 /etc/hosts 设置与其匹配的条目:

设置主机名
1
2
# 将下面hostname换成自己的主机名,与 /etc/hostname 里面的名字一样
echo -e "127.0.0.1 localhost\n::1 localhost\n127.0.1.1 ArchLinux.localdomain ArchLinux" >> /etc/hosts

或者用 vim 编辑 vim /etc/hosts ,加入如下内容:

设置主机名
1
2
3
127.0.0.1   localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch

设置时区

设置上海为时区

设置时区
1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步硬件时钟

同步硬件时钟
1
hwclock --systohc

本地化

程序和库如果需要本地化,需要依赖 local 区域设置 ,local 明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。 先生成 local 信息:

取消注释
1
2
3
# 取消注释
sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.gen
生成 local
1
2
# 生成 Local
locale-gen
> 或者你可以使用 vim 编辑/etc/locale.gen,来取消 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8 行前的注释符 #

创建 locale.conf 文件,并编辑设定 LANG 变量

设定 LANG 变量
1
2
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "LANG=en_US.UTF-8" >> /etc/profile

⚠️ 注意:

这里不建议将 en_US.UTF-8 改为zh_CN.UTF-8 ,这样会导致终端乱码!

设置root用户密码

设置密码
1
2
# 会提示输入两次密码,关乎系统安全请牢记
passwd root

ℹ️ 提示:

输入密码时不会显示,请输入完成密码后回车即可。

安装微码

先查看电脑的 cpu 型号 cat /proc/cpuinfo 。根据 cpu 型号安装相应的微码。

安装微码
1
2
3
4
# amd 电脑安装
pacman -S amd-ucode
# intel 电脑安装
pacman -S intel-ucode

安装引导程序

根据需要参阅 ArchWiki 相关内容

先安装相应的包

安装grub引导包
1
pacman -S grub efibootmgr os-prober

📑 命令参数说明:: - -S 选项后指定要通过 pacman 包管理器安装的包 - grub —— 启动引导器 - efibootmgr —— efibootmgrgrub 脚本用来将启动项写入 NVRAM - os-prober —— 为了能够引导 win10,需要安装 os-prober 以检测到它

安装引导:

安装grub引导
1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH

📑 命令参数说明:: - --target=x86_64-efi 标架构x86架构64位 efi启动方式 若不确定使用uname -a 可以查看 - --efi-directory=/boot —— 将 grubx64.efi 安装到之前的指定位置(EFI 分区) - --bootloader-id=ARCH —— 取名为 ARCH - os-prober —— 为了能够引导 win10,需要安装

接下来使用 vim 编辑 /etc/default/grub 文件:

编辑引导文件
1
vim /etc/default/grub

📑 进行如下修改: - 去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数 - 把 loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错 - 加入 nowatchdog 参数,这可以显著提高开关机速度(注意参数之间用空格隔开)

为了引导其他系统,还需要添加一行代码

引导win10
1
echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub

最后生成引导配置文件:

生成引导文件
1
grub-mkconfig -o /boot/grub/grub.cfg

若 win10 安装在另一个硬盘中则不会输出win10,可在进入系统后挂载硬盘并重新执行该命令。

配置开机启动项

ArchLinux 使用 systemd 管理后台服务,我们希望开机之后自动连接网络,所以需要下载联网程序并设置开机自启动:

下载网络管理
1
pacman -S dhcpcd iwd networkmanager iproute2

设置开机自启动

下载网络管理
1
2
3
systemctl enable dhcpcd
systemctl enable iwd
systemctl enable NetworkManager # 设置开机自启并立即启动 NetworkManager

新建用户

由于我们刚才安装时没有新建普通用户,默认只有一个root用户。运行以下命令新建用户:

新建普通用户
1
2
# <username> 为你自己的用户名,登录用,注意用户名必须全小写
useradd -m -G wheel -s /bin/bash <username>
设置新用户密码
1
2
# 设置用户密码
passwd <username>

📑 命令参数说明: - -m 创建用户的同时创建用户家目录 - -G 选项后指定附加组 - wheel —— wheel 附加组可 sudo 进行提权 - -s 选项后指定 shell 程序 - myusername —— 用户名(请自定义,但不要包含空格和特殊字符)

使用 vim 编辑器通过 visudo 命令编辑 sudoers 文件:

编辑sudoers文件
1
EDITOR=vim visudo # 这里需要显式的指定编辑器,因为上面的环境变量还未生效

找到如下这样的一行,把前面的注释符号 # 去掉:

授予wheel用户组权限
1
#%wheel ALL=(ALL) ALL

📑 命令参数说明: - %wheel —— 用户名或用户组,此处则代表是 wheel 组,% 是用户组的前缀 - ALL= —— 主机名,此处则代表在所有主机上都生效(如果把同样的 sudoers 文件下发到了多个主机上) - (ALL) —— 用户名,此处则代表可以成为任意目标用户 - 最后的 ALL —— 代表可以执行任意命令

完成安装

到了这里ArchLinux的安装也就到了尾声,接下来你只需要退出安装程序,然后取消挂载分区,重启选择Arch系统就可以进入ArchLinux了

退出安装环境
1
2
3
4
5
6
7
exit # 退出archroot 安装环境
# 卸载挂载
umount -R /mnt/home
umount -R /mnt/boot
umount -R /mnt
# 重启并拔出U盘
reboot

⚠️ 注意:

重启后要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。

重启后用普通用户登陆系统,用 nmcli 连接网络:

退出安装环境
1
2
nmcli dev wifi list # 显示附近的 Wi-Fi 网络
nmcli dev wifi connect "Wi-Fi名(SSID)" password "网络密码" # 连接指定的无线网络
也可以使用 nmtui 来配置网络 ### 🎉 恭喜!🎉 恭喜你成为尊贵的Arch Linux用户,蓝色双面鹰logo会伴随着您这趟折腾之旅 在此之后,我们来安装图形界面。

作者

Vc0n1ln

发布于

2024-01-11

更新于

2024-10-31

许可协议

CC BY 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×