Arch Linux 的官方安装指南差点意思,第一次安装也踩了很多坑,总结一波。

⚠️:官方文档更新更勤,地址:https://wiki.archlinux.org/index.php/Installation_guide

准备

备份

一定要备份原硬盘数据,因为没准就搞没了。

下载镜像

官方下载地址:https://www.archlinux.org/download/

不过国内还是用清华或中科大的镜像吧:

清华:https://mirrors.tuna.tsinghua.edu.cn/

中科大:https://mirrors.ustc.edu.cn/

制作镜像

讲道理,这玩意没啥可说的吧,推荐个新玩意儿-Ventory,用着还行,官网地址:https://www.ventoy.net/

我的启动引导方式是 UEFI,下面默认 UEFI 引导下的操作。

开始安装

启动

从 Ventory 选中 ISO 镜像,启动进入命令行界面,应该会看到下面这个:

root@archiso ~ #

这就表示我们已经启动完毕了。

连接网络

进入的 ArchLinux ISO 是个 Live 环境,安装时需要联网下载软件包。

正常有线网络自动获取 IP 地址的应该可以直接自动连接,可以 ping 测试下。如果不同的话,可以先查看下网卡:

[root@archiso ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:d8:61:9c:31:37 brd ff:ff:ff:ff:ff:ff

我这里第一个是本地回环,不用理会,第二个即 enp 开头的有线网卡,如果是无限网卡的话是 wlp 开头,如果没有检测到网卡的话,下面就不用看了。

配置无线网络的话,可以使用 iwctl 命令。

更新系统时间

执行如下命令:

root@archiso ~ # timedatectl set-ntp true
root@archiso ~ # timedatectl status

硬盘分区

查看硬盘设备:

root@archiso ~ # fdisk -l
Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: FORESEE 256GB SS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C38DXXXX-XXXX-XXXX-XXXX-F9DXXX994XX

即我们要在 GPT 磁盘上做 UEFI 引导。

此时,执行 fdisk /dev/sda 即可开始分区,我这里分了三个区,即:

/dev/sda1    EFI 引导分区,使用 FAT 文件系统,用于安装 GRUB 引导,建议 500M
/dev/sda2    root 分区,ext4 格式
/dev/sda3    home 分区,ext4 格式

格式化分区

EFI 引导分区格式化使用 mkfs.vfat 命令,roothome 使用 mkfs.ext4 命令,如果格式化交换分区的话,使用 mkswap 命令:

root@archiso ~ # mkfs.vfat -F32 /dev/sda1
root@archiso ~ # mkfs.ext4 /dev/sda2
root@archiso ~ # mkfs.ext4 /dev/sda3

挂载分区

  1. 挂载根目录分区(必须最先挂载,不然会覆盖其他分区的内容)

    root@archiso ~ # mount /dev/sda1 /mnt
  2. 挂载 EFI 引导分区,挂载到自定义文件夹

    root@archiso ~ # mkdir -p /mnt/boot/efi
    root@archiso ~ # mount /dev/sda1 /mnt/boot/efi
  3. 挂载 home 分区

    root@archiso ~ # mkdir -p /mnt/home
    root@archiso ~ # mount /dev/sda2 /mnt/home

注意:swap 分区不用挂载,直接执行 swapon /dev/sdax 命令即可。

安装必需的软件包

首先,更换镜像源到国内,可编辑 /etc/pacman.d/mirrorlist 文件,添加以下内容到文件开头:

## 清华
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
## 中科大
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

同步远程仓库:

root@archiso ~ # pacman -Sy

开始安装软件包:

root@archiso ~ # pacstrap /mnt base linux linux-firmware

生成 Fstab 文件

用以下命令生成 fstab 文件 (用 -U-L 选项设置UUID 或卷标):

root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab

进入系统并配置

Chroot

Change root) 到新安装的系统:

root@archiso ~ # arch-chroot /mnt

时区

设置时区:

root@archiso ~ # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置时钟:

root@archiso ~ # hwclock --systohc

本地化

修改 /etc/locale.gen 文件,放开 en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 前的注释,执行 locale-gen 生成 locale 信息。

安装网络管理相关软件包

root@archiso ~ #pacman -S base-devel dosfstools openssh network-manager-applet networkmanager wireless_tools netctl dhcpcd net-tools

创建 hostname 文件

root@archiso ~ # echo 'myhostname' >> /etc/hostname

添加以下对应信息到 /etc/hostname

127.0.0.1    localhost
::1          localhost
127.0.1.1       myhostname.localdomain    myhostname

配置 root 密码

执行 passwd 命令配置新密码。

安装引导程序

先安装 grubefibootmgr

root@archiso ~ # pacman -S grub efibootmgr

安装 grub 到之前的 EFI 分区:

root@archiso ~ # # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck

生成 grub.cfg 文件:

root@archiso ~ # grub-mkconfig -o /boot/grub/grub.cfg

退出 Chroot 环境

执行 exit 命令退出。

重启系统

卸载所有分区并重启:

root@archiso ~ # umount -a
root@archiso ~ # reboot

进入新系统

开启 dbcpcd 管理网络:

root@archiso ~ # systemctl start dhcpcd #开启
root@archiso ~ # systemctl enable dbcpcd #开机自启

配置允许 root 远程登录:

root@archlinux # echo "PermitRootLogin yes" >> "/etc/ssh/sshd_config" 
root@archiso ~ # systemctl start sshd #开启sshd服务
root@archiso ~ # systemctl enable sshd #开机启动
Last modification:August 25, 2022
If you think my article is useful to you, please feel free to appreciate