Skip to content

ArchLinux安装教程

Published: at 01:14 AM

Table of contents

Open Table of contents

前言

自从 3 月份从 Arch 换到 Fedora 系统之后,刚开始感觉还不错,因为大部分东西都已经帮你搞定了,自己只要会用就可以了,但是用的久了,感觉 Fedora 的软件包管理器真心不如 Arch 的 pacman 好用,有些中文软件在仓库中根本找不到,自己配置起来很麻烦,但是如果用 Arch 的话,构建起来就很简单了,所以最终还是决定重新拥抱 Arch。 刚一开始我还准备按照我之前总结的安装记录进行安装,毕竟当时记录的还是很详细的,但是没想到刚进入 Live 系统就碰到了一个难题:wifi-menu命令不存在! ! EXCUSE ME?? 我明明验证过镜像完整性的,没问题啊,这是怎么回事?还好,机智的我知道这里面有问题,查阅了一点资料之后就发现(这里不得不吹一波 Arch 的用户社区,真心给力,盲猜是最活跃的 Linux 发行版社区)原来是官方弃用了,改用iwd+systemd-networkd来管理网络了,莫得办法,那就换吧,查了查 iwd 的基本命令使用,发现还挺简单的,一次配置,永久使用,比 wifi-menu用起来要流畅许多!


archlinux 的 iso 镜像文件自 2020.06.01 开始改了很多东西,大概就这几个方面:

  1. archiso 默认的 shell 是 zsh,不再是 bash 了。
  2. archlinux 摒弃了之前的wifi-menu,改为使用 iwd 来管理网络。
  3. 对于镜像源的管理,采用 reflector 进行管理,终于不用去手动更改镜像源的位置了,使用 reflector 一条命令就搞定了。

正文

必需条件

  1. 一台可以使用的电脑
  2. 一个 4G 以上内存的 USB 存储器
  3. 一个可以查看本文的电子设备:)

制作 USB 启动盘

  1. 首先在这里找一个延迟低的官方镜像站下载 ArchLinux 的 iso 镜像,我下载的是最新版本,参数如下:
  1. 在镜像站下载 PGP 签名,然后使用gpg验证签名确保镜像完整性以及安全性,命令如下: gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso. sig

  2. 然后使用磁盘烧录工具将镜像写入你的 USB 存储器。 Linux 系统建议使用dd这个神器。 Windows 系统的话,建议使用开源软件rufus,最好不要使用那个 UltralISO,很容易出问题。

开始安装

验证启动模式

从 USB 进入 Live 环境,然后验证你的机器的启动模式是 UEFI 还是 BIOS:

ls /sys/firmware/efi/efivars

连接网络

前面已经说过了,Archiso 的默认的无线网络管理改为iwd了,所以这里就讲一下如何使用 iwd 连接 wifi

  1. 在终端中输入iwctl进入 iwd 提示符:
[root@archiso~] iwctl
[iwd#]
  1. [iwd#]中输入device list查询机器的网卡设备。
  2. 使用以下命令查询附近可用的 wifi 网络:
[iwd#] station <devicename> scan
[iwd#] station <devicename> get-networks # 显示扫描的结果
  1. 在提示符中输入station <devicename> connect <wifi-ssid>连接 wifi 网络,如果 wifi 加密,会提示你输入密码

更新系统时间

使用timedatectl命令来确保时间是同步的:

timedatectl set-ntp true
timedatectl status # 确保设置成功

磁盘分区

首先使用lsblk或者其他磁盘工具(例如fdisk)查看磁盘设备:

lsblk
// or
fdisk -l

然后使用fdisk或者cfdisk创建磁盘分区,这里有一点要注意的是,在创建分区的时候, 必需要确保有一个 root 分区/ ,此外,对于 UEFI 模式的设备还需要一个额外的 EFI 系统分区,我的分区方式如下:

挂载点分区类型大小
/mnt/efiEFI system partition1G
/mntLinux x86-64 root32G
[swap]Linux swap16G
/homeLinux homeRemainder of the device

无论是fdisk还是cfdisk,用起来都很简单,所以这里不再具体介绍了,想要具体了解的可以查阅fdisk 官方文档cfdisk 官方文档。对于新人小白,个人推荐cfdisk,有一个伪图形界面,很容易上手。

格式化分区

按照上面的步骤建立好分区之后,我们需要将每个分区用对应的文件系统进行格式化。

对于 root 分区、home 分区等直接使用ext4文件系统进行初始化:

mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda4

如果你的机器是 UEFI 启动模式,使用以下命令初始化 EFI 系统分区:

mkfs.fat -F32 /dev/sda1

对于交换分区,不能使用上述命令进行格式化,而需要使用mkswap将其初始化:

mkswap /dev/sda3
swapon /dev/sda3

挂载分区

首先挂载root分区:

mount /dev/sda2 /mnt

对于其他分区(swap 分区除外,不需要),需要自己手动创建挂载点:

mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
mkdir /mnt/home
mount /dev/sda4 /mnt/home

选择镜像源

文件/etc/pacman.d/mirrorlist定义了软件包会从哪个镜像源下载。在 Live 启动的系统上,所有的镜像都被启用。在列表中越前的镜像在下载软件包时有越高的优先权。你可以相应的修改文件/etc/pacman.d/mirrorlist,并将地理位置最近的镜像源挪到文件的头部来保证下载速度。而且这个文件接下来还会被 pacstrap 拷贝到新系统里,在这里设置好之后就可以一劳永逸了。

这一步其实现在可以省略了,因为现在在 live 环境中使用reflector进行镜像的管理,貌似你一连接网络,live 系统会自动执行 reflector 命令来帮你选择镜像源,默认的是根据下载速率进行排序,感兴趣的小伙伴可以自己确认一下(连接网络之前备份一下/etc/pacman.d/mirrorlist文件,然后连接网络之后,使用diff对比前后两个文件的差异)。

安装必需软件包

使用 archiso 内置的脚本pacstrap安装一些基本的软件包、内核及常规的硬件固件:

pacstrap /mnt base linux linux-firmware

这里要注意的是,上面的命令并不包括所有的基本程序,如网络管理程序、文本编辑器等,如果你想安装这些程序,可以将名字添加到pacstrap后,并用空格隔开。你也可以在 Chroot 进新系统后使用pacman手动安装软件包或组。

到这一步,理论上其实新系统已经安装完了,不过还无法正常使用:)所以需要进行配置以正常使用。

配置系统

生成 fstab 文件

用以下命令生成fstab文件,其中-U选项用来设置 UUID:

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

然后使用cat /mnt/etc/fstab命令检查以下文件是否正确(每个分区占一行)

进入到安装的系统

arch-chroot /mnt

安装文本编辑器

现在的新系统连默认的文本编辑器nano都没有了,所以需要自己手动安装一个,不然后面的一些配置无法实现,所以我选择最强的vim

pacman -S vim

时区

使用下面的命令设置时区:

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

然后使用hwclock生成/etc/adjtime文件:

hwclock --systohc

本地化设置

本地化的程序与库若要本地化文本,都依赖Locale,后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.genlocale.conf

  1. 首先编辑/etc/locale.gen文件,然后将需要的地区的注释移除,建议将en_US UTF-8zh_CN UTF-8都取消注释。
  2. 执行locale-gen命令生成 locale。
  3. 创建locale.conf文件并编辑LANG这一变量(将系统 locale 设置为en_US.UTF-8,系统的Log就会用英文显示,这样更容易问题的判断和处理。):
LANG=en_US.UTF-8

这里最好不要设置为中文 locale,会导致 TTY 乱码

网络设置

  1. 创建/etc/hostname文件设置主机名
  2. 配置/etc/hosts文件,将以下内容添加进去:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname

_note: 如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1。 _

设置 root 密码

使用passwd命令设置 root 密码即可。

这里不得不说一句,使用 arch 是真的让人舒服的一批,不会出现一些令人无语的问题,我还记得第一次使用 linux 的时候,用的是 fedora,当时想要使用su 进入 root,但是发现需要密码,但是我不记得安装的时候设置过 root 密码啊,后来查阅了一些资料才发现,fedora 并没有设置 root 密码,需要自己手动设置(使用sudo passwd root)。

安装及配置引导程序

安装引导程序之后才能进入系统

我用的引导程序是GRUB,首先安装必要的软件包:

pacman -S grub efibootmgr

这里详细介绍一下 UEFI 系统如何安装配置 GRUB:

  1. 首先使用以下命令安装到系统:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux

note: 因为我的 EFI 分区在/efi目录下,所以上述命令的--efi-directory参数就设置为/efi 2. 使用grub-mkconfig 生成 grub 配置文件:grub-mkconfig -o /boot/grub/grub.cfg

安装 wifi 网络管理工具

如果你不安装的话,新系统是无法联网的哦 我用的是iwd,简单方便又强大

pacman -S iwd

重启

  1. 输入exit或按Ctrl+d退出chroot环境
  2. umount -R /mnt手动卸载被挂载的分区
  3. 执行reboot重启系统

再配置新系统

因为还没有设置普通用户,所以重启后需要使用 root 来进入新系统

连接网络

如果你没有安装 wifi 网络管理工具,或者你安装的工具需要 gui 支持,那么恭喜你,你的系统还是无法联网,恭喜你可以重新体验一次完整的 archlinux 安装流程:)

如果你按照我上面写的安装了 wifi 工具iwd,那么你还需要做一些额外的工作才能正常使用它: 启动 iwd 服务,为了以后的使用,建议直接设置为开机自启动,详细方法可以参考systemd

systemctl start iwd.service # 启动服务
systemctl enable iwd.service # 开机自启动服务

你是不是以为这样就能使用 iwd 来连接 wifi 了?那你就大错特错了, 你还需要启动systemd-networkd.servicesystemd-resolved.service才行,因为新系统默认不会自启动这两个服务,需要你手动开启 (血的教训换来的经验,请珍惜)

到这里你才能正常使用iwd这个工具,具体使用方法可以参考前文

安装显示服务器

使用下面的命令安装开源的 xorg

pacman -S xorg

安装显卡驱动

根据自己的显卡配置来选择安装即可。

我的机器配置为 intel 集成显卡+NVIDIA 独立显卡:

对于 intel 显卡,我安装的是官方的xf86-video-intel驱动:

pacman -S xf86-video-intel

对于 NVIDIA 显卡,我安装的是开源驱动nouveau

pacman -S mesa xf86-video-nouveau

安装桌面环境

我使用的是XFCE,用起来不错,之所以不想选择 KDE 是因为它太像 windows 了,而 gnome 感觉太臃肿了,所以最终选择了 XFCE,轻便又美观。 使用以下命令安装 xfce:

pacman -S xfce4

安装完成后还需要配置 xinitrc 文件来保证开机直接启动

安装显示管理器

由于xfce4包里没有显示管理器(DM),所以还需要自己选择一个 DM 进行安装,我选择的是lightdm

pacman -S lightdm lightdm-gtk-greeter

编辑/etc/lightdm/lightdm.conf设置lightdm-gtk-greeter为默认的 greeter:

[Seat:*]
...
greeter-session=lightdm-gtk-greeter
...

设置为开机自启动

systemctl enable lightdm.service

添加普通用户

  1. 使用以下命令添加一个用户
useradd -m -G "附加组" -s "登陆shell" "用户名"

其中:

  1. 赋予用户 root 权限

至此,带有图形界面的 arch 系统安装完成了,已经可以基本使用了,如果有其他需求,自己自行进行配置即可。

个性化系统

安装中文输入法

archlinux 中文输入法框架有fcitx/ibus/fcitx5,其中fcitx5貌似是刚刚出现的,之前没见过,所以我就试了试,安装配置起来还挺简单的:

  1. 安装fcitx5软件包
  2. 创建~/.pam_environment并配置环境变量:
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=@im=fcitx
  1. 安装中文输入法引擎fcitx5-rime
  2. 安装输入法模块来保证输入法在各种程序中使用:pacman -S fcitx5-gtk fcitx5-qt5
  3. 启动 fcitx5,右键 fcitx5 的系统托盘图标,点击configure添加 rime 输入法
  4. ctrl+space键测试是否可以正常使用

安装字体

pacman -S ttf-dejavu # 英文字体
pacman -S wqy-microhei # 中文字体

安装 zsh

有一说一,默认的 bash 真的有点丑,所以安装一个好看的 shell 很有必要,比如说 zsh。安装 zsh 的话,我推荐使用oh my zsh这个框架个性化 zsh,配置 zsh 起来简单方便。

  1. 安装 zsh
  2. 使用 curl 安装 ohmyzsh,这个脚本还可以帮你自动更改默认的 shell
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

具体如何配置 zsh,可以参考 ohmyzsh 的官方 wiki