安装指南

本页使用了标题或全文手工转换
来自 Arch Linux 中文维基
提示:本文或本章节的主题是“安装 Arch Linux 系统”。关于“为 Arch Linux 安装软件包”的内容,请查看安装软件包
提示:请善用本文的超链接。超链接指向的每个单独的页面对系统的各个部分有更完善的介绍。

本文将指导如何使用官方安装镜像启动的 Live 系统安装 Arch Linux。安装介质现可提供无障碍辅助功能,对此使用无障碍辅助选项安装 Arch Linux 页面有详细描述。关于其它的安装方法,请您参阅安装过程分类下的其他条目

建议在安装前阅读常见问题。对于本文中使用的惯用术语,请参阅阅读帮助。请将代码中斜体的部分按实际情况替换成具体内容。

本指南旨在简洁且通俗易懂,建议您严格遵循每一节中的顺序与指示执行安装。有关更详细的说明,请您仔细阅读本指南内相应的 ArchWiki 文章或各类程序的手册。若您需要交互帮助,可以使用 Arch Linux 中文社区的聊天群组或论坛

Arch Linux 被设计为可以运行在配置为最低 512 MiB 内存的 x86_64 架构的计算机上,但如果是从安装介质启动系统并成功安装在计算机硬盘中,则可能需要更多的内存。[1]基本安装方式将占用小于 2 GiB 的硬盘存储空间。由于安装过程中需要从远程存储库获取软件包,计算机将需要一个有效的互联网连接。

安装前的准备[编辑 | 编辑源代码]

获取安装映像[编辑 | 编辑源代码]

打开下载页面,并根据需要的引导方式,获取 ISO 文件或 netboot 映像以及相应的 GnuPG 签名。

验证签名[编辑 | 编辑源代码]

建议使用前先验证所下载文件的签名,特别是从 HTTP 镜像源下载的文件,因为 HTTP 连接一般来说容易遭到拦截而提供恶意镜像

在一台已经安装 GnuPG 的系统上,可通过下载 PGP 签名(在下载页面的 Checksums 下方)到 ISO 文件所在的路径,然后用以下方式验证签名

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

另外,在一台已经安装 Arch Linux 的计算机上可以通过以下方式验证:

$ pacman-key -v archlinux-版本-x86_64.iso.sig
注意:
  • 如果安装映像是从镜像站点下载,而不是从 archlinux.org 下载的话,其签名有被伪造的风险。在这种情况下,请您确保用来解码签名的公钥是被另一个可信的密钥签署的。gpg 命令将会输出公钥的指纹。
  • 另一种验证签名的方法是确保公钥的指纹等于其中一位签署了 ISO 文件 Arch Linux 开发者的指纹。请您参阅维基百科获取更多关于公钥加密的信息。
提示:在 Windows 上,您可尝试Gpg4win,注意:您所下载、安装和使用的 Gpg4win 程序需要您自行甄别其真伪。

准备安装介质[编辑 | 编辑源代码]

Arch Linux 的ISO映像可以被制作成多种类型安装介质,如 U 盘光盘和带有 PXE 的网络安装映像。请按照合适的文章与教程,使用ISO文件为自己准备安装介质。

对于Netboot映像,请按照网络引导#从U盘启动准备用于 UEFI 引导的 USB 闪存驱动器。

启动到 live 环境[编辑 | 编辑源代码]

注意: Arch Linux 安装镜像不支持 UEFI 安全启动(Secure Boot)功能。如果要引导安装介质,需要禁用安全启动。如果需要,可在完成安装后重新配置
  1. 选择从带有 Arch 安装文件的介质启动,通常是需要在计算机启动加电自检时快速按下某个热键(比如部分主板会是F12键)。启动时的画面也可能会有提示,详情请参考自己的计算机的说明书或主板说明书。
  2. 当引导加载程序菜单出现时,
    • 如果你使用了ISO映像,选择 Arch Linux install medium 并按Enter 进入安装环境。
    • 如果您使用了 Netboot 映像,请从 Mirror 菜单中选择一个地理位置接近的镜像,然后选择 Boot Arch Linux 并按 Enter
  3. 您将会以 root 身份登录进入一个虚拟控制台,默认的 Shell 是 Zsh
提示:安装映像在 UEFI 模式下使用 systemd-boot 引导,在 BIOS 模式下使用 syslinux 引导。分别使用 eTab 来输入引导参数。Netboot 映像使用 iPXE,可以在启动选项菜单中指定启动参数。请参阅 README.bootparams 获取引导参数列表。
  • 手动定义启动参数的一个常见例子是改变系统显示在超高分辨率(HiDPI)屏幕的字体的大小。为使系统在HiDPI屏幕上显示的字体有更好的可读性——当Live系统启动时屏幕还没有被识别为HiDPI的时候——使用 fbcon=font:TER16x32 会有帮助。参见 HiDPI#Linux 控制台 的详细解释。

如果要使用其他控制台(例如在安装时使用 Lynx 查看本指南),可以使用 Alt+箭头 快捷键切换不同的控制台。要编辑配置文件,可以使用 mcedit(1)nanovim 等文本编辑软件。请参阅 packages.x86_64 获取安装介质中包含的软件包列表。

关于 archinstall 的提示[编辑 | 编辑源代码]

如果您觉得用命令行安装过于繁琐,可以试试官方的安装脚本 archinstall。详情可参见 archinstall

不建议初学者用 archinstall 走捷径,因为手动安装 archlinux 本身就是 archlinux 教学实操的一环,少了这个环节,会让初学者面对一些基础问题时束手无策,为自己和社区带来不必要的麻烦。

# archinstall

配置控制台键盘布局和字体[编辑 | 编辑源代码]

系统启动后,控制台键盘布局默认为 us(美式键盘)。如果您需要列出所有可用的键盘布局,可以使用以下命令:

# localectl list-keymaps

如果您想要更改键盘布局,可以使用 loadkeys(1)。比如,要添加德语键盘布局:

# loadkeys de-latin1

控制台字体位于 /usr/share/kbd/consolefonts/ 目录中,设置方式请参考 setfont(8)。例如,要使用适合 HiDPI 屏幕的最大字体之一,请运行以下命令:

# setfont ter-132b

验证引导模式[编辑 | 编辑源代码]

要验证系统目前的引导模式,请检查 UEFI 位数:

# cat /sys/firmware/efi/fw_platform_size

如果命令结果为 64,则系统是以 UEFI 模式引导且使用 64 位 x64 UEFI。如果命令结果为 32,则系统是以 UEFI 模式引导且使用 32 位 IA32 UEFI,虽然其受支持,但引导加载程序只能使用 systemd-bootGRUB。如果文件不存在,则系统可能是以BIOS模式(或 CSM 模式)引导。如果系统没有以您想要的模式(UEFI 或 BIOS)引导启动,请您参考自己的计算机或主板说明书。

连接到互联网[编辑 | 编辑源代码]

要在 Live 环境中配置网络连接,请遵循以下步骤:

  • 确保系统已经列出并启用了网络接口,用 ip-link(8) 检查:
    # ip link
  • 对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用。
  • 要连接到网络:
    • 有线以太网——连接网线。
    • WiFi——使用 iwctl 认证无线网络。
    • 移动宽带调制解调器(移动网卡) - 使用 mmcli英语mmcli 连接到移动网络。
  • 配置网络连接:
  • ping 检查网络连接:
    # ping archlinux.org
注意: 默认情况下,安装映像在启动时已经预先配置好并启用了 systemd-networkdsystemd-resolvediwdModemManager英语ModemManager。但在已经安装完成了的系统之中并非如此。

更新系统时间[编辑 | 编辑源代码]

在 Live 环境中 systemd-timesyncd 默认启用,也就是说当系统已经创建互联网连接后,系统时间将自动同步。

使用 timedatectl(1) 确保系统时间是同步的:

# timedatectl

创建硬盘分区[编辑 | 编辑源代码]

系统如果识别到计算机的内置硬盘、U盘或者移动硬盘等类型磁盘,就会将其分配为一个块设备,如 /dev/sda/dev/nvme0n1/dev/mmcblk0。可以使用 lsblk 或者 fdisk 查看:

# fdisk -l(此处为小写字母l)

结果中以 romloop 或者airootfs结尾的设备可以被忽略。结果中以 rpbmboot0 或者 boot1 结尾的 mmcblk* 设备也可以被忽略。

注意: 如果您想要的磁盘没有显示出来, 请确保您的磁盘控制器未处于RAID模式
提示:在分区之前,请您检查 NVMe 驱动器和 Advanced Format 硬盘是否使用了最佳逻辑扇区大小。需要注意的是,更改逻辑扇区大小后,可能会导致在Windows系统中出现兼容性问题。

对于一个选定的设备,以下分区是必须要有的:

请使用分区工具(fdiskparted、cfdisk 等等)修改分区表。例如:

# fdisk /dev/the_disk_to_be_partitioned(要被分区的磁盘)
注意:
  • 花时间规划一个长期的分区方案,以避免将来需要有风险和复杂的转换或重新分区。
  • 如果您想为 LVMsystem encryptionRAID 创建任何堆叠块设备,请立即执行。
  • 如果要从中启动的磁盘 已经有一个EFI分区,请不要创建另一个磁盘,而是使用现有分区。
  • Swap 交换空间可以在 Swap#交换文件 上为支持它的文件系统设置。

分区方案示例[编辑 | 编辑源代码]

对于 UEFI 与 GPT 分区表的磁盘分区方案
已安装系统上的挂载点 分区 分区类型 建议大小
/boot1 /dev/efi_system_partition EFI 系统分区 1 GiB。
[SWAP] /dev/swap_partition Linux swap (交换空间) 至少 4GiB
/ /dev/root_partition Linux x86-64 根目录 (/) 设备剩余空间,至少23-32GiB
  1. 如果使用的引导加载程序能够从根磁盘卷中加载内核和 initramfs 映像,则可以使用其他挂载点(例如 /efi)。请您参阅引导加载程序中的警告部分。
对于传统 BIOS 与 MBR 分区表的磁盘分区方案
已安装系统上的挂载点 分区 分区类型 建议大小
[SWAP] /dev/swap_partition Linux swap (交换空间) 至少 4GiB
/ /dev/root_partition Linux 设备剩余空间,至少23-32GiB

另请参阅布局示例

格式化分区[编辑 | 编辑源代码]

创建分区后,必须使用合适的文件系统对每个新创建的分区进行格式化。详情请参阅文件系统#创建文件系统

例如,要在根分区 /dev/root_partition 上创建一个 Ext4 文件系统,请运行:

# mkfs.ext4 /dev/root_partition(根分区)

如果创建了交换分区,请使用 mkswap(8) 将其初始化:

# mkswap /dev/swap_partition(交换空间分区)
注意: 对于堆叠式块设备(stacked block devices)请使用恰当的块设备路径替换上文中的 /dev/*_partition 处。

如果你要创建一个 EFI 系统分区,使用 mkfs.fat(8) 将其格式化为 Fat32。

警告: 只有在分区步骤中创建 EFI 系统分区时才需要格式化。如果这个磁盘上已经有一个 EFI 系统分区了,将它重新格式化会破坏其他已安装操作系统的引导加载程序。
# mkfs.fat -F 32 /dev/efi_system_partition(EFI 系统分区)

挂载分区[编辑 | 编辑源代码]

将根磁盘卷挂载/mnt,例如:

# mount /dev/root_partition(根分区) /mnt

然后使用 mkdir(1)/mnt 下创建任何剩余的挂载点(例如,为/boot 而创建/mnt/boot),并按相应的层级顺序挂载相应的磁盘卷。

提示:使用 --mkdir 选项运行 mount(8) 来创建指定的挂载点。或者,先使用 mkdir(1) 创建挂载点再挂载。
注意: 挂载分区一定要遵循顺序,先挂载根(root)分区(到 /mnt),再挂载引导(boot)分区(到 /mnt/boot/mnt/efi,如果单独分出来了的话),最后再挂载其他分区。否则您可能遇到安装完成后无法启动系统的问题。参见 en:Talk:Installation guide#Clarify root mount

对于 UEFI 系统,挂载 EFI 系统分区:

# mount --mkdir /dev/efi_system_partition /mnt/boot

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

# swapon /dev/swap_partition(交换空间分区)

稍后 genfstab(8) 将自动检测挂载的文件系统和交换空间。

开始安装系统[编辑 | 编辑源代码]

选择镜像站[编辑 | 编辑源代码]

系统的文件 /etc/pacman.d/mirrorlist 中定义了软件包会从哪个镜像站下载。在 LiveCD 启动的系统上,且在连接到互联网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像站并按下载速率对其进行排序来更新镜像列表(由于只考虑最新的20个镜像站,其结果大多数时候都不怎么好用)。

在列表中,越靠前的镜像站在下载软件包时,就会有越高的优先级。请您检查 /etc/pacman.d/mirrorlist 文件,看看列出的镜像站的顺序是否合适。如果不合适,可以手动编辑文件,将离您所处地理位置最近的镜像挪到文件的头部,同时也应该考虑一些其他的评判标准。

如果 /etc/pacman.d/mirrorlist 文件中没有合适的镜像站,可以手动从 archlinux 官方网站的镜像站列表下载一份。这需要您所在的网络能够正常访问 archlinux 官方网站。例如,使用 curl(1) 下载位于中国大陆的 HTTPS 镜像站:

# curl -L 'https://archlinux.org/mirrorlist/?country=CN&protocol=https' -o /etc/pacman.d/mirrorlist

或者,也可以通过安装 pacman-mirrorlist 来获取按国家分列的原始镜像列表。这么做的缺点是,pacman 仍然会使用当前配置中的镜像站来下载软件包数据库和 pacman-mirrorlist,这可能会很慢。在挑选了能用的镜像之后,可以执行

# pacman -Sy pacman-mirrorlist

再将 /etc/pacman.d/mirrorlist.pacnew 复制到 /etc/pacman.d/mirrorlist 并进行编辑。

或者,如果您记得想要使用的镜像站的 URL,那么可以手动编辑 /etc/pacman.d/mirrorlist 文件并手动输入 URL。

这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请您确保设置正确。

安装必需的软件包[编辑 | 编辑源代码]

注意: 除了 /etc/pacman.d/mirrorlist 之外的软件或配置不会从 Live 环境传递到安装的系统中。

使用 pacstrap(8) 脚本,安装 base 软件包和 Linux 内核以及常规硬件的固件:

# pacstrap -K /mnt base linux linux-firmware

这时候可以同时额外安装计算机的 CPU 微码包。如果计算机是 Intel 的 CPU ,使用 intel-ucode,AMD CPU 则使用 amd-ucode。也可以暂时都不安装,等到进入系统后再安装。

提示:
  • 可以将 linux 替换为内核页面中介绍的其他内核软件包。
  • 在虚拟机或容器中安装时,可以不安装固件与微码包。
  • 新安装的系统中是没有文本编辑器的,所以请您先安装文本编辑器如 nano 或者 vim 等。

base 软件包并没有包含 Live 环境中的全部程序。因此要获得一个功能齐全的基本系统,可能需要安装更多软件包。要安装其他软件包或软件包组(比如 base-devel包组),请将它们的名字追加到下面的 pacstrap 命令后(用空格分隔),或者也可以在 Chroot 进入新系统后使用 pacman 手动安装。特别要考虑安装:

pkglist.x86_64.txt 中包含 Live 系统安装的软件包列表。

配置系统[编辑 | 编辑源代码]

生成 fstab 文件[编辑 | 编辑源代码]

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

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

强烈建议在执行完以上命令后,检查一下生成的 /mnt/etc/fstab 文件是否正确。

chroot 到新安装的系统[编辑 | 编辑源代码]

通过以下命令 chroot 到新安装的系统:

# arch-chroot /mnt
提示:此处使用的是arch-chroot而不是直接使用chroot,注意不要输错了。

设置时区[编辑 | 编辑源代码]

通过以下命令设置时区

# 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 时间。详细信息请查看系统时间#时间标准

为了防止时钟漂移并确保时间准确,请使用 NTP(网络时间协议,Network Time Protocol)客户端(例如 systemd-timesyncd)设置时间同步

区域和本地化设置[编辑 | 编辑源代码]

程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

需要设置这两个文件:locale.genlocale.conf

编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的 UTF-8 区域设置前的注释(#)。

接着执行 locale-gen 以生成 locale 信息:

# locale-gen

然后创建 locale.conf(5) 文件,并编辑设定 LANG 变量,比如:

/etc/locale.conf
LANG=en_US.UTF-8

另外对于中文用户:

提示:
  • 用户可以设置自己的 locale,详情请参阅 在用户会话中覆盖系统区域设置设置当前区域
  • 将系统 locale 设置为 en_US.UTF-8 ,系统的 log 就会用英文显示,这样更容易判断和处理问题;
    • 也可以设置为 en_GB.UTF-8en_SG.UTF-8,附带以下优点:
      • 进入桌面环境后以 24 小时制显示时间;
      • LibreOffice 等办公软件的纸张尺寸会默认为 A4 而非 Letter(US)
      • 可尽量避免不必要且可能造成处理麻烦的英制单位。
    • 设置的 LANG 变量需与 locale 设置一致,否则会出现以下错误:
      • Cannot set LC_CTYPE to default locale: No such file or directory
警告: 并不推荐在此设置任何中文 locale,这可能会导致 tty 上中文显示为方块。如果您不经常使用 tty ,或是稍后需要安装桌面环境,则在不使用 tty 后可以设置为中文的 locale 。

如果需要修改#控制台键盘布局和字体,可编辑 vconsole.conf(5) 使其长期生效,以德语键盘(qwertz)为例:

/etc/vconsole.conf
KEYMAP=de-latin1

如果键盘为标准美式键盘(中国最常见的键盘布局),请勿照抄如上设置。

网络配置[编辑 | 编辑源代码]

创建 hostname 文件:

/etc/hostname
yourhostname(主机名)

请接着完成新安装的环境的网络配置,配置过程中可能需要安装合适的网络管理软件。

警告: 请按上述网络配置指引正确配置好网络后再重新启动,否则系统重新启动后可能无法连接网络(不过可以用 LiveCD 重新进入 arch-chroot 进行配置)。例如在虚拟机软件 VirtualBox 安装并使用桥接模式时就需要配置 DHCP 。

关于 initramfs[编辑 | 编辑源代码]

通常不需要自己创建新的 initramfs,因为在执行 pacstrap 时已经安装 linux,这时已经运行过 mkinitcpio 了。

如果是 LVM英语Install Arch Linux on LVM#Adding mkinitcpio hooks系统加密RAID 等分区配置,请修改 mkinitcpio.conf 并用以下命令重新创建一个 Initramfs:

# mkinitcpio -P

设置 root 密码[编辑 | 编辑源代码]

使用以下命令设置 root 密码

# passwd

安装引导程序[编辑 | 编辑源代码]

需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在启动加载器中列出,请选择一个安装并配置它,GRUB 是最常见的选择。

警告: 这是安装的最后一步也是关键的一步,请点击上述链接并按指引正确安装好引导加载程序后再重新启动。否则计算机重新启动后将无法正常进入 Arch Linux 系统。

重新启动计算机[编辑 | 编辑源代码]

输入 exit 或按 Ctrl+d 退出 chroot 环境。

可选用 umount -R /mnt 手动卸载被挂载的分区:这有助于发现任何“繁忙”的分区,并通过 fuser(1) 查找原因。

最后,通过执行 reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。这时候不要忘记移除安装介质,然后使用 root 账户登录到新系统。

提示:若系统出现问题,可尝试重新进入chroot环境以补充、完善安装和配置,或查看系统日志以定位、修复问题。

安装后的工作[编辑 | 编辑源代码]

创建非特权账户、图形用户界面的安装、声音管理、触摸板支持等系统管理教程和后期工作参见建议阅读

感兴趣的各类程序,请参见应用程序列表

参考链接[编辑 | 编辑源代码]