通过 Docker 安装 Arch Linux

出自 ArchWiki

此文章或章节需要语言、wiki 语法或风格改进。参阅 Help:Style 以获取参考。

原因: 格式不符合指南,请参阅 Help:Style。(在 Talk:Install Arch Linux via Docker 中讨论)

本文档是关于使用 Docker Hub 上的官方 Arch Linux 容器镜像 安装 Arch Linux 的指南。 有关其他安装方式,请参阅 Category:Installation process

在安装之前,建议查看 FAQ。 有关本文档中使用的约定,请参阅 Help:Reading。 特别是,代码示例可能包含占位符(以 斜体 格式表示),必须手动替换。

有关更详细的说明,请参阅各自的 ArchWiki 文章或各种程序的 man pages,这些都已从本指南中链接。 如需互动帮助,还可以使用 IRC 频道论坛

Arch Linux 应该可以在任何 x86_64 兼容的机器上运行,最低需要 512 MiB 内存,但启动用于安装的 live 系统需要更多内存 [1]。 基本安装应占用少于 2 GiB 的磁盘空间。 由于安装过程需要从远程存储库检索软件包,因此本指南假定可以正常访问互联网连接。 此外,主机上需要正常工作的 Docker 设置。 虽然从技术上讲,肯定可以使用任何 qemu 支持的主机来安装 Arch,但本指南不涵盖这一点。

预安装

本指南假定主机系统已针对通常期望的事项进行了预配置。 例如,时间已正确设置,互联网连接正常工作,如果需要,EFI 模式已正确设置等。

准备安装介质

安装需要一个目标目录,Arch Linux 将安装到该目录中。 可以使用任何可写目录,但目标目录很可能已挂载分区或卷,该分区或卷将用作根磁盘。

完整磁盘分区

如果完整磁盘用作目标,则可能需要对其进行格式化。 有关详细信息,请参阅 Installation guide#Partition the disks,因为可以从那里开始遵循相同的分区说明和顺序。 从那里开始,所有相同的限制和要求也适用。

同样,新磁盘也需要格式化。 Installation guide#Format the partitions 中的说明也可用于此目的。

当使用诸如 btrfs 或 zfs 之类的文件系统时,文件系统卷是一种可用的选项。 根据使用的文件系统,创建它们使用其自己的命令列表。 在本指南中,将使用 btrfs 作为示例。

首先,为 Arch Linux 创建一个根卷。 此命令假定当前工作目录是 btrfs 根卷 (subvolid=5),但可以使用任何位置。 如果使用了不同的位置(在现有层次结构中),请在稍后定义 fstab 和类似内容时牢记这一点。 另请注意,由于 Arch Linux 特定卷是在已挂载的(根)卷上创建的,因此底层堆栈可能正在使用(完整)磁盘加密。

 # btrfs subvolume create "arch_root"
注意: 要获取根卷,请使用 subvolid=5 选项挂载 btrfs。

挂载文件系统

以下部分假定 Arch Linux 将安装到的位置为 /tmp/target。 因此,需要将分区挂载到那里。 使用名为 arch_root 的 btrfs 子卷,并启用autodefragLZO 压缩,如下所示

# mkdir -p /tmp/target
# mount /dev/disk /tmp/target -o subvol=arch_root,compress=lzo,autodefrag

Installation guide#Mount the file systems 中的说明也可用于此目的。

安装

启动容器

剩余的安装将在 docker 容器内完成,缩写为 ADC,Arch Docker 容器。

 # docker run \
          --env PS1="ADC(\#)[\d \T:\w]\\$ " \
          --interactive \
          --privileged \
          --rm \
          --tty \
          --volume "/tmp/target:/target" \
          "index.docker.io/library/archlinux:latest" /bin/sh

选择镜像

要安装的软件包必须从 镜像服务器 下载,这些镜像服务器在 /etc/pacman.d/mirrorlist 中定义。 在 docker 容器中,我们首先安装 reflector,它通过选择 70 个最近同步的 HTTPS 镜像并按下载速率对其进行排序来更新镜像列表。 [2] 首先,我们必须在 docker 容器中安装 reflector 才能使用它。

# reflector [--country <country>] \
             --latest 5 \
             --protocol http,https \
             --save "/etc/pacman.d/mirrorlist" \
             --sort rate

镜像在列表中位置越高,下载软件包时给它的优先级越高。 确保检查文件以查看它是否令人满意。 如果不满意,请相应地编辑文件,并将地理位置最近的镜像移动到列表顶部,尽管应考虑其他标准。

此文件稍后将由 pacstrap 复制到新系统,因此值得做好。

安装基本软件包

为了能够开始安装,必须首先将 arch-install-scripts 软件包安装到 Docker 镜像中。 完成后,可以从 Installation guide#Install essential packages 部分开始遵循官方安装指南。

在执行 Installation guide#Reboot 部分中的重启步骤之前,返回本指南以继续下面的 #重启

重启

通过键入 exit 或按 Ctrl+d 退出 docker 容器。

可选地,手动卸载所有分区,命令为 umount -R "/target":这允许注意任何“繁忙”的分区,并使用 fuser(1) 查找原因。

通过正确设置的引导加载程序,现在应该可以重启到新安装的 Arch Linux 中。

后安装

有关系统管理方向和后安装教程(如设置图形用户界面、声音或触摸板),请参阅 General recommendations

有关可能感兴趣的应用程序列表,请参阅 List of applications