一、安装准备

1. 获取安装映像

访问下载页面,根据您想要的启动方式,获取 ISO 文件或网络启动映像,以及相应的GnuPG签名。

2. 验证签名

建议在使用前验证镜像签名,特别是从HTTP 镜像下载时,下载通常容易被拦截以服务恶意镜像

在与系统的GnuPG安装,做到这一点通过下载PGP签名(下校验下载页)到ISO目录,并验证它:

$ gpg --keyserver-options auto-key-retrieve --verify archlinux- version -x86_64.iso.sig

或者,从现有的 Arch Linux 安装运行:

$ pacman-key -v archlinux- version -x86_64.iso.sig

注意:

  • 如果签名是从镜像站点下载的,而不是从上面的archlinux.org下载,则签名本身可以被操纵。在这种情况下,请确保用于解码签名的公钥由另一个可信赖的密钥签名。该gpg命令将输出公钥的指纹。
  • 另一种验证签名真实性的方法是确保公钥的指纹与签署 ISO 文件的Arch Linux 开发人员的密钥指纹相同。有关验证密钥的公钥过程的更多信息,请参阅Wikipedia:Public-key cryptography

3. 准备安装介质(U盘)

安装映像可以通过USB 闪存驱动器光盘或带有PXE的网络提供给目标机器:按照相应的文章从所选映像为自己准备安装介质。

windows建议Rufus,Linux直接使用dd命令。

4. 启动安装环境

注意: Arch Linux 安装映像不支持安全启动。您需要禁用安全启动(Security Boot)才能启动安装介质。如果需要,可以在完成安装后设置安全启动

  1. 将当前引导设备指向具有 Arch Linux 安装介质的设备。通常它是通过在POST阶段按下一个键来实现的,如启动屏幕所示。有关详细信息,请参阅您的主板手册。

  2. 当出现安装介质的引导加载程序菜单时,选择

    Arch Linux 安装介质 并按Enter进入安装环境。

    提示: 安装映像使用systemd-boot在 UEFI 模式下启动,使用syslinux在 BIOS 模式下启动。有关引导参数的列表,请参阅README.bootparams

  3. Archlinux的安装镜像内嵌入了一个mini的linux环境,并且您将以root 用户身份登录第一个虚拟控制台,并显示Zsh shell 提示。

要切换到不同的控制台(例如,在安装的同时查看Lynx 的本指南),请使用Alt+arrow快捷方式. 要编辑配置文件,可以使用mcedit(1)nanovim。有关安装介质中包含的包的列表,请参阅packages.x86_64。 ``

5. 设置控制台键盘布局(非必需)

默认的控制台键盘映射US。可用的布局可以列出:

# ls /usr/share/kbd/keymaps/**/*.map.gz

要修改布局,请将相应的文件名附加到loadkeys(1),省略路径和文件扩展名。例如,要设置德语键盘布局:

# loadkeys de-latin1

# 自定义
vim xxx.conf
loadkeys xxxx.conf

6. 设置显示(控制台)字体(可跳过)

控制台字体位于/usr/share/kbd/consolefonts/并且同样可以使用setfont(8)进行设置。

可用的字体可以列出:

# ls /usr/share/kbd/consolefonts/

建议选择一个较大的字体,方便识别。

# setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz

7. 验证启动模式(重要)

要验证引导模式(EFI或者BIOS),请列出efivars目录:

# ls /sys/firmware/efi/efivars

如果该命令显示的目录没有错误,则系统以 UEFI 模式启动。如果该目录不存在,系统可能会以BIOS(或CSM)模式启动。如果系统没有以您想要的模式启动,请参阅您的主板手册。

8. 连接到互联网

安装过程需要下载软件包,所以必须联网,要在实时环境中设置网络连接,请执行以下步骤:

  • 1.确保您的网络接口已列出并启用,例如使用

    ip-link(8)

    # ip link
    # 显示如:wlan0 <UP>,确保是UP状态,如果是down,请手动开启
    ip link set wlan0 UP
    
  • 2.连接到网络:

    • 以太网(有线) — 插入电缆。
    • 最简单办法是手机连接电脑选择USB网络共享(非常推荐)。
    • Wi-Fi (无线)— 使用iwctl对无线网络进行身份验证(推荐)。
    iwctl                           #进入交互式命令行
    device list                     #列出设备名,比如无线网卡看到叫 wlan0
    station wlan0 scan              #扫描网络
    station wlan0 get-networks      #列出网络 比如想连接CMCC-5AQ7这个无线
    station wlan0 connect CMCC-5AQ7 #进行连接 输入密码即可
    exit                            #成功后exit退出
    

    无线设备有时会被禁用,如果 device list 输出的 Powered 字段为 off(断电),则需要使用 rfkill 来启用 WIFI。若无法正确建立连接,先检查无线设备状态

    rfkill list
    

    如果看到 blocked: yes 字样,说明无线连接被禁用,首先再次确保硬件无线开关属于开启状态。

    其次尝试启用无线连接[1]

    ip link set wlan0 up #比如无线网卡看到叫 wlan0
    

    若看到类似Operation not possible due to RF-kill的报错,继续尝试rfkill unblock wifi来解锁无线网卡。

    rfkill unblock wifi
    
  • 3.配置您的网络连接:

    连接到网络之后,你需要一个IP地址才能正常上网。

  • 4.可以使用ping验证连接:

    # ping archlinux.org
    

注意: 以上命令之所以能够使用,是因为在安装镜像的mini环境中,systemd-networkdsystemd-resolvediwdModemManager是预先配置并默认启用的,不过我们要安装的新系统可是从零开始的哦。

9. 更新系统时钟

使用timedatectl(1)确保系统时钟准确:

# timedatectl set-ntp true

要检查服务状态,请使用timedatectl status

10. 对磁盘进行分区

当被实时系统识别时,磁盘被分配给块设备,例如/dev/sda/dev/nvme0n1/dev/mmcblk0。要识别这些设备,请使用lsblkfdisk

# 查看磁盘分区情况
# fdisk -l

选择好要分盘的区块, /dev/xxx ,提前做好规划,MBR格式这里不做介绍。

# fdisk /dev/the_disk_to_be_partitioned

笔记:

示例布局

划分分区类型建议尺码挂载点
/dev/efi_system_partition引导分区至少 300 MiB/mnt/boot
/dev/swap_partitioLinux交换超过 512 MiB[SWAP]
/dev/root_partitionLinux x86-64 根分区 (/)设备的剩余部分/mnt

注意:

//boot 是必须划分的两个分区,swap分区可不划分,如果不单独划分交换分区,可以在系统安装完成后设置swap文件实现。另外,可以单独划分分区并挂载到 /home,这样,之后若要安装其他系统则可以直接挂载之前的/home,个人之前的文件就会保留。

11. 格式化分区

使用 fdisk 或cfdisk 或者其他方式创建好分区后,必须使用适当的文件系统格式化每个新创建的分区。有关详细信息,请参阅文件系统#创建文件系统

引导分区必须是 Fat32 格式,根分区和home分区,linux通常是 ext4格式,你也可以使用其他格式,如 btrfs。

将各分区格式化为指定格式

例如,要在上创建 Ext4 文件系统,请运行: /dev/partition

# mkfs.ext4 /dev/xxxx

如果你为swap创建了一个分区,用mkswap(8)初始化它:

# mkswap /dev/swap_partition

如果您创建了 EFI 系统分区,请使用mkfs.fat(8) 将其格式化为 FAT32 。

警告: 仅当您在分区步骤中创建 EFI 系统分区时才对其进行格式化。如果预先在磁盘上已经有 EFI 系统分区,重新格式化它可能会破坏其他已安装操作系统的引导加载程序。

# mkfs.fat -F 32 /dev/efi_system_partition

12. 挂载文件系统

将根分区挂载/mnt. 例如,如果根卷是: /dev/root_partition

# mount /dev/root_partition /mnt

/mnt/efi使用mkdir(1)创建任何剩余的挂载点(例如并挂载它们对应的卷。

对于 UEFI 系统,创建对应efi目录,并挂载你的 EFI分区到这个目录:

# 这个目录叫什么你随便,但是记住这个目录,后面装系统要用到
# 通常是 /mnt/efi 或 /mnt/boot
# mkdir /mnt/efi 
# mount /dev/efi_system_partition /mnt/boot

如果您创建了交换卷,请使用swapon(8)启用它:

# swapon /dev/swap_partition

genfstab(8)稍后将检测已安装的文件系统和交换空间。

二、基本安装

1. 选择镜像(仓库源)

要安装的包必须从镜像服务器下载,镜像服务器/etc/pacman.d/mirrorlist. 在实时系统上,连接到互联网后,反射器通过选择最近同步的 20 个 HTTPS 镜像并按下载速率排序来更新镜像列表。

  • 可以手动添加你知道的源
# vim /etc/pacman.d/mirrorlist
# 添加到最上面
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 # 兰州大学开源镜像站

镜像在列表中的位置越高,下载包时它的优先级就越高。您可能需要检查文件以查看它是否令人满意。如果不是,则相应地编辑文件,并将地理上最近的镜像移动到列表顶部,但应考虑其他条件。

  • 也可以使用命令自动更新并选择最近的源(推荐)
# 选择位于中国的5个镜像,然后根据下载速度进行排序,最后将结果覆写到 /etc/pacman.d/mirrorlist 文件
reflector -c China --sort rate -l 5 --save /etc/pacman.d/mirrorlist

笔记: 此文件稍后将被pacstrap复制到新系统

你新装的系统也是archlinux也会有这个配置文件,所以我建议第二种方式,手动添加多累啊。

2. 安装基本包

使用pacstrap(8)脚本安装基本包、Linux内核和通用硬件固件:

# pacstrap /mnt base linux linux-firmware
# 上面几个是必须是,建议 把 vim 也加上,后面编辑一些配置文件可能会用到。
# pacstrap /mnt base linux linux-firmware vim

提示:

  • 您可以将linux替换为您选择的内核包(比如 linux-zen, linux-lts等其他内核),或者您可以在安装在容器中时完全省略它。
  • 在虚拟机或容器中安装时,您可以省略固件包的安装。

基地包不包括从实况安装所有的工具,所以在安装其它软件包可以为一个全功能的基本系统是必要的。特别是,请考虑安装:

安装其他软件包或软件包组,请将名称附加到上面的pacstrap命令(空格分隔)或在chroot 到新系统时使用pacman。为了进行比较,可以在 packages.x86_64 中找到实时系统中可用的

三、配置系统

1. 生成分区表

生成一个fstab文件(使用-U或分别-LUUID或标签定义):

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

检查生成的/mnt/etc/fstab文件,并在出现错误时对其进行编辑

cat /mnt/etc/fstab
# 这个里面实际上就是保存,硬盘分区和目录的映射关系,也就是所谓的挂载规则,比如 /dev/sda1 挂载到 / 

2. 进入系统

我们之前所有的操作都是在archlinux安装镜像所提供的mini的linux环境中完成了。所以你看到之前很多对目录的操作的 /mnt/xxx,这是因为我们将新系统的根分区挂载到了 /mnt 目录,所以 访问 /mnt 就是访问新系统的根目录 /。

之后的操作为了方便,我们直接进入到这个系统里面。

这里的进入系统其实就是 进入 /mnt 目录,只不过进入这个目录后就相当于进入了一个新的linux环境。

进入新系统:

# arch-chroot /mnt

注意:

接下来的配置都是在新系统中进行,所以确保你已经进入了 /mnt 目录。

3. 设置时区

设置时区

# ln -sf /usr/share/zoneinfo/Region/City/etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

运行hwclock(8)来生成/etc/adjtime

# hwclock --systohc

此命令假定硬件时钟设置为UTC。有关详细信息,请参阅系统时间#时间标准

4. 语言环境

编辑 /etc/locale.gen和取消注释en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_TW.UTF-8 UTF-8 zh_HK.UTF-8 UTF-8以及其他需要的语言环境。通过运行生成语言环境:

# vim /etc/locale.gen
# locale-gen

注意: 如果这里提示 vim 命令没找到,则先安装 vim pacman -Sy vim

创建locale.conf(5)文件,并设置LANG变量相应:

vim /etc/locale.conf
输入
LANG= en_US.UTF-8
# 不要直接改成zh_CN,可能造成乱码

如果您设置了控制台键盘布局,请在vconsole.conf(5)保持更改:

vim /etc/vconsole.conf
KEYMAP=de-latin1
....如按键设置等

5. 网络配置

修改主机名:

vim /etc/hostname
myhost

为新安装的环境完成网络配置。修改hosts文件

vim /etc/hosts
127.0.0.1        localhost
::1              localhost
127.0.1.1        myhost.localdomain	   myhost

6. 初始文件(跳过)

通常不需要创建新的initramfs,因为mkinitcpio是在使用pacstrap安装内核包时运行的

对于LVM系统加密RAID,修改mkinitcpio.conf(5)并重新创建 initramfs 映像:

# mkinitcpio -P

7. 设置密码

设置root用户密码

# passwd

8. 安装引导加载程序(重要)

选择并安装支持 Linux 的引导加载程序。如果您有 Intel 或 AMD CPU,请另外启用微码更新。

grub为例

# intel-ucode 是微码。如果是 amd cpu, 则安装 amd-ucode , os-prober加载其他引导,ntfs-3g用于识别 ntfs文件系统
pacman -S grub efibootmgr intel-ucode os-prober ntfs-3g
# 确认系统架构
# uname -m  # x86_64
# /boot是你之前创建和u挂载EFI分区时设置的引导分区所在目录
grub-install --target=x86_64-efi --efi-directory=/boot
# 生成 grub 配置文件(默认位置 /etc/default/grub)
grub-mkconfig -o /boot/grub/grub.cf

注意:

os-prober是用于搜索其他操作系统引导(比如你在windows电脑上安装linux系统),也就是保证你重启时界面上能同时看到windows和arch启动项。通常,os-prober会自动发现包含 Windows 的分区。但是,使用默认 Linux 驱动程序挂载时,可能无法始终检测到 NTFS 分区。如果 GRUB 没有检测到它,请尝试安装NTFS-3G并重新安装。

如果 grub-mkconfig 遇到错误:

Warning: os-prober will not be executed to detect other bootable partitions

请编辑/etc/default/grub文件并添加/取消注释:

GRUB_DISABLE_OS_PROBER=false

然后再试一次

9. 重启

通过键入exit或按退出 chroot 环境Ctrl+d

可以选择手动卸载所有分区umount -R /mnt:这允许注意任何“繁忙”分区,并使用fuser(1)查找原因。

最后,输入reboot以下命令重新启动机器:systemd将自动卸载任何仍在安装的分区。记得移除(拔掉启动U盘)安装介质,然后使用root帐户登录新系统。

四、后续工作

1. 联网

安装网络管理软件。

注意: 各种网络管理组件是不能同时使用的。这里使用 NetworkManager

pacman -S networkmanager
# 如果dpcpcd或者iwd以启动,请禁用
systemctl disable dhcpcd
systemctl stop dhcpcd
# 使用networkmanager
systemctl enable --now NetworkManager

2. 更新系统

pacman -Syyu

3. 安装基本软件工具

pacman -S base-devel vim zsh git
# 若之前安装过则跳过。

4. 创建用户并授权

前面的操作都是以root用户身份进行,在windows下就是Administrator,所以你可以为所欲为,你都没见过 sudo 吧,但实际上,你会让管理员一直操作电脑吗?万一不小心删库呢,是不是要跑路了?

所以我们需要建立一个普通用户,我们使用这个用户登录系统并进行日常使用,也就是你装windows系统时会让你创建用户,一个道理。

# -m 是为其创建家目录,-G 指定 所属组
useradd -m -G wheel arch
# 设置密码
passwd arch
# 赋予权限
ln -s /bin/vim /bin/vi
visudo
# 现在是命令模式,输入 / %wheel 回车 找到这行,按 x 删除当前字符 '#'(取消注释)
%wheel ALL=(ALL) ALL
# :wq 退出

注意我们现在还是root,除非你退出同普通用户登录,或重启重登录。为了方便,我们继续以root身份完成后续安装过程。

5. 安装显示驱动

AMD显卡

pacman -S vf86-video-amdgpu

Intel显卡

pacman -S xf86-video-intel

6. 安装图形界面

安装Display Server(图形支持),这里用的是开源世界最为流行的xorg

pacman -S xorg

出现选择直接回车即可

安装Desktop Environment(桌面),推荐 KDE 或者 Gnome

  • Gnome:
pacman -S gnome
  • KDE:
pacman -S plasma kde-applications packagekit-qt5
# kde-applications 包含了kde桌面基本的应用程序,很齐全。如果你想最简化,这里只需要装最必要的
# pacman -S plasma dolphin konsole pckagekit-qt5
  • Xfce:
pacman -S xfce4 xfce4-goodies
  • DDE:
pacman -S deepin deepin-extra

安装Display Manager(登录界面)

这里需要按你要安装的桌面环境而定,这里没有列出的可以自己去ArchWiki

推荐 sddm

Gnome:

pacman -S gdm

KDE:

pacman -S sddm

Xfce || DDE:

pacman -S lightdm lightdm-gtk-greeter

设置开机自动启动,以sddm为例:

systemctl enable sddm

如果是别的请将这里的sddm替换为你安装的那个

7. 添加archlinuxcn源

vim /etc/pacman.conf
去掉[multilib]一节中两行的注释,来开启 32 位库支持。
在文档结尾处加入下面的文字,来开启 ArchLinuxCN 源。

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
上面服务器的地址是中科大的,也可用下清华的。

最后:wq 保存退出,刷新 pacman 数据库

#cn源中的签名(archlinuxcn-keyring在archLinuxCn)    

pacman -Syu && pacman -S archlinuxcn-keyring

安装yay(下载来自AUR的软件包)

pacman 和 yay 都是包管理工具,pacman 用于下载官方仓库的包,yay 用于下载aur里面的包。二者的命令参数什么的都是一样的,所以非常方便。

# 安装yay
pacman -S yay

8. 中文和输入法

  • 安装中文字体

这一步不装进去图形界面之后还是要装:更纱黑体

#安装几个开源中文字体
pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
  • 设置系统中文

打开 System Settings > Regional Settings > Language -> Add languages 中选择中文加入,再拖拽到第一位,Apply。

再将System Settings > Regional Settings > Formats 中的值设为中文-简体中文(zh_CN)

  • 安装输入法

推荐,fcitix5, Fcitx5 官方文档

pacman -S fcitx5-im #基础包组
pacman -S fcitx5-chinese-addons #官方中文输入引擎
pacman -S fcitx5-pinyin-zhwiki #中文维基百科词库
pacman -S fcitx5-material-color #主题

设置环境变量 编辑文件 sudo vim /etc/environment 加入以下内容。konsole 以及 dolphin 都需要这些环境变量,倒是 chrome 和 firefox 都不需要就可以输入中文

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

打开 系统设置 > 区域设置 > 输入法,先点击运行Fcitx即可,拼音为默认添加项,如果没有,你就选择添加一个新的,选择 拼音, 然后放置到第一位。。如你还需要更多输入法如五笔,则再点击添加输入法,找到简体中文下的五笔 ,点击添加即可加入五笔输入法。

  • 重启。

Q.E.D.


Think twice, code once.