ArchLinux 入门指北(一): 安装 ArchLinux
不靠谱的 ArchLinux 安装指南
前言
对于刚接触 Linux 的新手,我不建议你直接使用 Arch Linux,你可以先使用 Ubuntu、Linux Mint 这类新手友好,安装方便的发行版(要是 Arch Linux 安装也像那么简单,也就没有这篇指南了)。当你了解了一些 Linux 基本指令,了解了什么是包管理器,再来使用 Arch Linux 会使你对 Linux 的了解更深一个层次。
所需知识
为了顺利安装 ArchLinux,你可能需要下列知识:
- Linux 的块设备路径(物理磁盘与分区)与硬盘的挂载
- 传统 BIOS 与 UEFI 启动流程的区别以及所需的磁盘分区要求
- 使用
fdisk
、mkfs
对硬盘进行分区、格式化 - 会使用
nano
、vi/vim
等文本编辑工具
除此之外,您还需准备一个 USB 存储设备(要求不高 1G 就行,甚至可以是读卡器+SD 卡)用于创建 ArchLinux 安装介质。
本指南仅适用于 UEFI 启动的计算机,若您拥有的是非 UEFI 启动的计算机或发现指南中存在问题,请以 ArchWiki 中的内容为准。
创建 ArchLinux 安装介质
你可以前往下列任意镜像下载 ArchLinux 的 ISO 文件,文件名为:archlinxu-xxxx.xx.xx-x86_64.iso (xx 为日期
- https://mirror.nju.edu.cn/archlinux/iso/latest/
- https://mirror.sjtu.edu.cn/archlinux/iso/latest/
- http://mirrors.aliyun.com/archlinux/iso/latest/
- https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/
下载完成后使用任意烧录工具将镜像烧录至 USB 存储设备, eg: Etcher
启动至 ArchLinux Live
自行百度查找您主板的启动菜单热键(部分主板没有这玩意,比如华硕,在 BIOS 中直接选择启动盘即可),选择您的 USB 存储器以进入 ArchLinux Live (优先选择带有 UEFI 字样的)
若屏幕上出现了 root@archiso ~ #
则表明启动完毕
连接网络
Arch Linux 的安装必须有网络连接,整个系统的安装将从镜像站下载软件包。这也意味着安装的系统一定为当前最新版本。
首先,使用 ip addr
检查是否当前是否分配到 IP,然后使用 ping aliyun.com
检查是否正常联网。
若你使用的是无线,请使用这条指令连接到无线网络 iwctl station wlan0 connect $SSID
($SSID
替换成你所连接的网络名称)
使用下面指令切换镜像,其中的 mirror.nju.edu.cn
为南京大学,可以替换成上面任意一个镜像
|
|
上面的是一键指令,当然你也可以手动修改 /etc/pacman.d/mirrorlist
文件:
|
|
也可以添加多个镜像(优先级从上至下):
|
|
创建分区以及格式化并挂载
本节将使用
fdisk
工具对磁盘进行分区,若不会使用请自行搜索其用法。建议在虚拟机内练手,在本节中的误操作可能会导致数据丢失。
使用 fdisk -l
可查看所有磁盘,fdisk /dev/sdx
对磁盘进行分区(x
为磁盘设备号,一般为a-z
,如果磁盘是 NVMe 协议则会显示为 /dev/nvme0n1
),建议按照下面内容分区(以 /dev/sda 为例):
-
引导分区
用于引导 Linux 系统。若该引导分区不需要安装其他引导程序(如 Windows),则改分区
1MB
都够用,但是vfat
分区最小为8MB
,请自行在8MB~256MB
之间斟酌 -
交换分区
若内存足够则可以不创建交换分区。当 RAM 耗尽后,系统将使用交换分区作为备用内存使用,一般在
4GB~8GB
。但是注意,一旦系统开始使用交换分区,系统将开始出现卡顿等现象。(不要过度依赖于交换分区,增加 RAM 才是硬道理!) -
系统分区
用于存放系统,将被挂载至
/
,可以使用btrfs
、ext4
等分区格式,但btrfs
作为新格式具有写时复制,但可能会出现软件不兼容(如 LXC 中无法搭建 k8s 环境),简而言之:新格式拥有新特性,也可能与应用不兼容,请自行斟酌。
GPT 分区表(仅供参考,请详细阅读上面内容!)
分区后块路径 | 分区大小 | 分区格式 | 挂载点 |
---|---|---|---|
/dev/sda1 | 128MB | vfat | /efi |
/dev/sda2 | 4GB | swap | |
/dev/sda3 | 剩余大小 | ext4 或 btrfs | / |
格式化分区:
-
使用
mkfs.vfat /dev/sda1
格式化引导分区 -
使用
mkswap /dev/sda2
格式化交换分区 -
使用
mkfs.ext4 /dev/sda3
格式化系统分区若系统分区想使用
btrfs
格式则使用mkfs.btrfs -f /dev/sda3
挂载分区:
- 挂载系统分区:
mount /dev/sda3 /mnt
- 创建
efi
文件夹:mkdir /mnt/efi
- 挂载引导分区:
mount /dev/sda1 /mnt/efi
- 挂载交换分区:
swapon /dev/sda2
安装 Arch Linux
使用 pacstrap
将 ArchLinux 安装到 /mnt
|
|
其中:
-
linux
为 linux 内核,若想使用长期支持版内核可替换为linux-lts
,若想使用一些扩展特性可替换为linux-zen
具体区别请自行查阅 ArchWiki -
intel-ucode
为 Intel CPU 微码补丁,若您是 AMD CPU 请替换为:amd-ucode
-
networkmanager
为网络管理器,用于连接网络,若您安装的是 headless 即无桌面环境且具有有线连接,可以使用base
中自带的systemd-networkd
,无需安装networkmanager
生成 fstab
|
|
对新系统进行配置
使用 arch-chroot /mnt
进入新系统进行配置
修改主机名
主机名——用于在网络中识别计算机的别名,假设我们的主机名叫 steve
,创建或修改下面两个文件:
/etc/hostname
:
|
|
/etc/hosts
:
|
|
创建用户
首先设置个 root
用户的密码,用于管理系统使用:
|
|
然后,创建您自己的用户并设置为系统管理员:
- 安装并配置 sudo:
-
安装:
1
pacman -S sudo
-
配置:
修改
/etc/sudoers
1 2 3 4
# 若你想在输入密码时看见已输入字符数,则添加此行 Defaults env_reset,pwfeedback # 去掉下面这行的注释,即删掉开头的 # 号 %wheel ALL=(ALL) ALL
- 创建你自己的用户
使用以下指令创建用户并设置密码:
|
|
设置区域及语言
- 修改时区为
亚洲/上海
,执行:
|
|
- 将语言修改为中文:
headless 即无桌面环境无法正常显示中文,请将下列所有
zh_CN
替换为en_US
,即英文
- 修改文件
/etc/locale.gen
将文件中zh_CN.UTF-8 UTF-8
前的注释去掉 - 执行
locale-gen
- 创建文件
/etc/locale.conf
写入LANG="zh_CN.UTF-8"
安装引导
- 安装必要软件包:
pacman -S grub efibootmgr
- 安装 GRUB:
grub-install --efi-directory=/efi --bootloader-id=ArchLinux
(若是为其他计算机安装系统请附加--removable
参数,此操作可能会覆盖 Windows 引导文件 用于重建引导的文件BOOTx64.efi
不影响正常使用。) - 生成配置:
grub-mkconfig -o /boot/grub/grub.cfg
-
若要让 GRUB 自动寻找已安装的操作系统并自动添加,安装
os-prober
软件包,然后修改/etc/default/grub
文件,添加GRUB_DISABLE_OS_PROBER=false
保存并退出后重新生成配置 -
要想使 linux 内核显示开机和关机 log:修改
/etc/default/grub
文件,删除GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quite"
中的quite
保存并退出后重新生成配置 -
要想使 GRUB 选择界面固定分辨率:修改
/etc/default/grub
文件,添加或修改GRUB_GFXMODE=1920x1080
保存并退出后重新生成配置,注意不要超出你显示器所支持的最大分辨率 -
由于 GRUB 不支持写入 btrfs 格式的分区,所以不能保存上一次的选择,若出现报错,请修改
/etc/default/grub
文件,注释GRUB_SAVEDEFAULT=true
并将GRUB_SAVEDEFAULT=true
改为GRUB_SAVEDEFAULT=0
保存并退出后重新生成配置
进入系统
- 先使用
exit
指令退出 chroot 环境。 - 使用
reboot
指令重启。 - 开机后使用创建的用户登录
- 启动网络管理器(同时设置自启动) 仅适用已安装
networkmanager
的系统:
sudo systemctl enable --now NetworkManager
- 连接到 wifi (
$SSID
替换成网络名称$PASSWD
替换成网络密码)
nmcli device wifi connect $SSID password $PASSWD
对于没有安装
networkmanager
的 headless 客户端,请创建并修改/etc/systemd/network/dhcp.network
文件:(仅适用于有线)
1 2 3 4 5
[Match] Name=e* [Network] DHCP=yes
随后执行:
sudo systemctl enable --now systemd-networkd
sudo systemctl enable --now systemd-resolved
并且,建议安装
openssh
软件包,执行下面指令启动 SSH 服务,方便进入管理
sudo systemctl enable --now sshd
附:添加 ArchlinuxCN 软件源
修改 /etc/pacman.conf
文件,并在文件末尾添加:
|
|
执行指令安装密钥环:
|
|