安装指南
本文将指导如何用官方安装镜像启动的 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-version-x86_64.iso.sig
另外,在一台已经安装 Arch Linux 的计算机上可以通过以下方式验证:
$ pacman-key -v archlinux-version-x86_64.iso.sig
- 如果安装映像是从镜像站点下载,而不是从 archlinux.org 下载的话,则签名是可以被伪造的。在这种情况下,请确保用来解码签名的公钥是被另一个可信的密钥签署的。
gpg
命令将会输出公钥的指纹。 - 另一种验证签名的方法是确保公钥的指纹等于其中一位签署了 ISO 文件 Arch Linux 开发者的指纹。请参阅维基百科获取更多关于公钥加密的信息。
准备安装介质[编辑 | 编辑源代码]
安装映像可以通过 U 盘、光盘和带 PXE 的网络提供给目标机器。请按照合适的文章,使用所选映像为自己准备安装介质。
启动到 Live 环境[编辑 | 编辑源代码]
- 选择从带有 Arch 安装文件的媒介启动,通常是要在计算机开机自检时按下某个按键,一般在启动画面会有提示。具体情况请参考主板说明书。
- 当引导加载程序菜单出现时,选择 Arch Linux install medium 并按
Enter
进入安装环境。提示:- 安装映像在 UEFI 模式下使用 GRUB 引导,在 BIOS 模式下使用 syslinux 引导。分别使用
e
或Tab
来输入 引导参数。请参阅 README.bootparams 获取 引导参数 列表。 - 手动定义启动参数的一个常见例子是字体大小。为了在HiDPI屏幕上有更好的可读性--当它们还没有被识别为HiDPI的时候--使用
fbcon=font:TER16x32
会有帮助。参见 HiDPI#Linux 控制台 的详细解释。
- 安装映像在 UEFI 模式下使用 GRUB 引导,在 BIOS 模式下使用 syslinux 引导。分别使用
- 您将会以 root 身份登录进一个虚拟控制台,默认的 Shell 是 Zsh。
如果要使用其他控制台,(例如:在安装时使用 Lynx 查看本指南),可以使用 Alt+箭头
快捷键切换不同的控制台。要编辑配置文件,可以使用 mcedit(1)、nano 和 vim。请参阅 packages.x86_64 获取安装介质中包含的软件包列表。
控制台键盘布局和字体[编辑 | 编辑源代码]
控制台键盘布局默认为 us
(美式键盘)。列出所有可用的键盘布局,可以使用:
# ls /usr/share/kbd/keymaps/**/*.map.gz
如果您想要更改键盘布局,可以将相应文件名添加进 loadkeys(1),但请省略路径和扩展名。比如,要添加德语键盘布局:
# loadkeys de-latin1
控制台字体位于 /usr/share/kbd/consolefonts/
目录中,设置方式请参考 setfont(8)。例如,要使用适合HiDPI 屏幕的最大字体之一,请运行:
# setfont ter-132b
验证引导模式[编辑 | 编辑源代码]
要验证引导模式,请用下列命令列出 efivars 目录:
# ls /sys/firmware/efi/efivars
如果命令结果显示了目录且没有报告错误,则系统以 UEFI 模式引导。 如果目录不存在,则系统可能以 BIOS 模式 (或 CSM 模式) 引导。如果系统未以您想要的模式引导启动,请参考您的主板说明书。
连接到互联网[编辑 | 编辑源代码]
要在 Live 环境中配置网络连接,请跟随以下步骤:
- 确保系统已经启用了网络接口,用 ip-link(8) 检查:
# ip link
- 对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用。
- 配置网络连接:
- DHCP:对于有线以太网、无线局域网(WLAN)和无线广域网(WWAN)网络接口来说,动态 IP 地址和 DNS 服务器分配(由 systemd-networkd 和 systemd-resolved 提供功能)能够开箱即用。
- 静态 IP 地址:按照静态 IP 地址进行操作。
- 用 ping 检查网络连接:
# ping archlinux.org
更新系统时间[编辑 | 编辑源代码]
在 Live 环境中 systemd-timesyncd 默认启用,建立互联网连接后,时间将自动同步。
使用 timedatectl(1) 确保系统时间是准确的:
# timedatectl
建立硬盘分区[编辑 | 编辑源代码]
系统如果识别到磁盘,就会将其分配为一个块设备,如 /dev/sda
、/dev/nvme0n1
或 /dev/mmcblk0
。可以使用 lsblk 或者 fdisk 查看:
# fdisk -l(此处为小写字母l)
结果中以 rom
、loop
或者 airoot
结尾的设备可以被忽略。
对于一个选定的设备,以下分区是必须要有的:
如果需要创建多级存储例如 LVM、磁盘加密 或 RAID,请在此时完成。
# fdisk /dev/the_disk_to_be_partitioned(要被分区的磁盘)
- 如果想要的磁盘没有显示出来, 确保磁盘控制器未处于RAID模式。
- 如果要启动的磁盘已经有一个EFI系统分区,不要新建 EFI 分区,请使用现有的分区。
- 如果文件系统支持,交换空间 可以通过 交换文件 实现。
分区示例[编辑 | 编辑源代码]
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
/mnt/boot 1
|
/dev/efi_system_partition
|
EFI 系统分区 | 至少 300 MiB。如果打算安装多个内核,至少 1 GiB |
[SWAP]
|
/dev/swap_partition
|
Linux swap (交换空间) | 大于 512 MiB |
/mnt
|
/dev/root_partition
|
Linux x86-64 根目录 (/) | 剩余空间 |
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
[SWAP]
|
/dev/swap_partition
|
Linux swap (交换空间) | 大于 512 MiB |
/mnt
|
/dev/root_partition
|
Linux | 剩余空间 |
另请参阅布局示例。
格式化分区[编辑 | 编辑源代码]
创建分区后,必须使用合适的文件系统对每个新创建的分区进行格式化。详情请参阅文件系统#创建文件系统。
例如,要在根分区 /dev/root_partition
上创建一个 Ext4 文件系统,请运行:
# mkfs.ext4 /dev/root_partition(根分区)
如果创建了交换分区,请使用 mkswap(8) 将其初始化:
# mkswap /dev/swap_partition(交换空间分区)
/dev/*_partition
处。如果你要创建一个 EFI 系统分区,使用 mkfs.fat(8) 将其格式化为 Fat32。
# mkfs.fat -F 32 /dev/efi_system_partition(EFI 系统分区)
挂载分区[编辑 | 编辑源代码]
将根磁盘卷挂载到 /mnt
,例如:
# mount /dev/root_partition(根分区) /mnt
然后使用 mkdir(1) 创建其他剩余的挂载点(比如 /mnt/boot
)并按层级顺序挂载其相应的磁盘卷。
/mnt
),再挂载引导(boot)分区(到 /mnt/boot
或 /mnt/efi
,如果单独分出来了的话),最后再挂载其他分区。否则您可能遇到安装完成后无法启动系统的问题。参见 en:Talk:Installation guide#Clarify root mount。对于 UEFI 系统,挂载 EFI 系统分区:
# mount --mkdir /dev/efi_system_partition(EFI 系统分区) /mnt/boot
# swapon /dev/swap_partition(交换空间分区)
稍后 genfstab(8) 将自动检测挂载的文件系统和交换空间。
安装[编辑 | 编辑源代码]
选择镜像[编辑 | 编辑源代码]
文件 /etc/pacman.d/mirrorlist
定义了软件包会从哪个镜像下载。在 LiveCD 启动的系统上,在连接到互联网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像并按下载速率对其进行排序来更新镜像列表。
在列表中越前的镜像在下载软件包时有越高的优先权。您或许想检查一下文件,看看是否满意。如果不满意,可以相应的修改 /etc/pacman.d/mirrorlist
文件,并将地理位置最近的镜像源挪到文件的头部,同时也应该考虑一些其他标准。
这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请确保设置正确。
安装必需的软件包[编辑 | 编辑源代码]
/etc/pacman.d/mirrorlist
之外的软件或配置不会从 Live 环境传递到安装的系统中。使用 pacstrap(8) 脚本,安装 base包 软件包和 Linux 内核以及常规硬件的固件:
# pacstrap -K /mnt base linux linux-firmware
base包 软件包并没有包含 Live 环境中的全部程序。因此要获得一个功能齐全的基本系统,可能需要安装更多软件包。要安装其他软件包或软件包组(比如 base-devel包组),请将它们的名字追加到下面的 pacstrap 命令后(用空格分隔),或者也可以在 Chroot 进新系统后使用 pacman 手动安装。特别要考虑安装:
- 管理所用文件系统的用户工具(比如 XFS 和 Btrfs 对应的管理工具);
- 访问RAID或LVM分区的工具;
- 未包含在 linux-firmware包 中的额外固件(如用于声卡的sof-firmware包);
- 联网所需要的程序(例如网络管理器或独立 DHCP 客户端,以及 Wi-Fi 认证软件和移动宽带连接所需的ModemManager);
- 文本编辑器(如:nano包、vim包 等);
- 访问 man 和 info 页面中文档的工具:man-db包,man-pages包 和 texinfo包。
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 时间。详细信息请查看 系统时间#时间标准。
本地化[编辑 | 编辑源代码]
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
需在这两个文件设置:locale.gen
与 locale.conf
。
编辑 /etc/locale.gen
,然后取消掉 en_US.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-8
或en_SG.UTF-8
,附带以下优点:- 进入桌面环境后以 24 小时制显示时间;
- LibreOffice 等办公软件的纸张尺寸会默认为
A4
而非Letter(US)
; - 可尽量避免不必要且可能造成处理麻烦的英制单位。
- 设置的 LANG 变量需与 locale 设置一致,否则会出现以下错误:
Cannot set LC_CTYPE to default locale: No such file or directory
- 也可以设置为
如果需要修改#控制台键盘布局和字体,可编辑 vconsole.conf(5) 使其长期生效,例如:
/etc/vconsole.conf
KEYMAP=de-latin1
网络配置[编辑 | 编辑源代码]
/etc/hostname
myhostname(主机名)
请接着完成新安装的环境的网络配置,配置过程中可能需要安装合适的网络管理软件。
Initramfs[编辑 | 编辑源代码]
通常不需要自己创建新的 initramfs,因为在执行 pacstrap 时已经安装 linux包,这时已经运行过 mkinitcpio 了。
对于 LVM、 系统加密 或 RAID 等分区配置,请修改 mkinitcpio.conf 并用以下命令重新创建一个 Initramfs:
# mkinitcpio -P
Root 密码[编辑 | 编辑源代码]
设置 Root 密码:
# passwd
安装引导程序[编辑 | 编辑源代码]
需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在启动加载器中列出,请选择一个安装并配置它,GRUB 是最常见的选择。
如果有 Intel 或 AMD 的 CPU,请另外启用微码更新。
重启[编辑 | 编辑源代码]
输入 exit
或按 Ctrl+d
退出 chroot 环境。
可选用 umount -R /mnt
手动卸载被挂载的分区:这有助于发现任何「繁忙」的分区,并通过 fuser(1) 查找原因。
最后,通过执行 reboot
重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。
安装后的工作[编辑 | 编辑源代码]
创建非特权账户、图形用户界面的安装、声音管理、触摸板支持等系统管理教程和后期工作参见 建议阅读。
感兴趣的各类程序,请参见 应用程序列表。