通过 SSH 安装 Arch Linux
本文旨在向用户展示如何通过 SSH 连接远程安装 Arch。当主机位于远程位置,或者您希望使用 SSH 客户端的复制/粘贴功能进行 Arch 安装时,请考虑此方法。
在远程(目标)机器上
按照 安装指南#预安装 中的步骤操作,直到包括 连接到互联网(可以跳过设置控制台键盘布局和字体)。
此时,设置所需的 root 密码以允许 SSH 连接,因为 root 的默认 Arch 密码为空
# passwd
确认 /etc/ssh/sshd_config
中已设置 PermitRootLogin yes
。如果未设置,请设置它并重新加载 OpenSSH 守护程序 sshd.service
以应用更改。
-R
标志。在本地机器上
在本地机器上,使用以下命令通过 SSH 连接到目标机器
$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@ip.address.of.target
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
选项将阻止验证并将实时环境的 SSH 主机密钥写入 ~/.ssh/known_hosts
。如果您以前连接到该 IP 地址,这将避免 REMOTE HOST IDENTIFICATION HAS CHANGED
警告。archiso.local
代替目标的 IP 地址$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@archiso.local
从这里,您将看到实时环境的欢迎消息,并且能够像坐在物理键盘前一样管理目标机器。此时,如果目的是仅从实时介质安装 Arch,请从 安装指南#更新系统时钟 继续。如果目的是编辑已损坏的现有 Linux 安装,请按照 从现有 Linux 安装 wiki 文章操作。
在无头服务器上安装
本节描述了在没有键盘、鼠标或显示器的无头服务器上安装 Arch Linux。它使用带有 cloud-init NoCloud 配置的额外驱动器来自动配置 OpenSSH 授权密钥,并可选地配置 iwd 连接。
准备 cloud-init 配置文件
有三个必需的 cloud-init 配置文件:meta-data
、user-data
和 network-config
。
meta-data
文件可以为空
$ printf "" > meta-data
user-data
将包含相关配置
user-data
#cloud-config users: - name: root ssh_authorized_keys: - ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - ssh-ed25519 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
将 ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
替换为您的公钥 SSH 密钥。要添加多个密钥,只需重复上述语句即可。
要自动连接到 Wi-Fi 网络,请使用 write_files:
语句在正确的目录中创建 iwd 网络配置文件。例如
user-data
#cloud-config users: - name: root ssh_authorized_keys: - ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - ssh-ed25519 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY write_files: - content: | [Security] PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295 path: /var/lib/iwd/spaceship.psk runcmd: - systemctl restart iwd.service
cloud-init 创建的网络配置与 ISO 中提供的配置不同。即,mDNS 响应器和 DHCPv6 客户端未启用。为避免这种情况,请在 network-config
中禁用 cloud-init 的网络配置
network-config
version: 2 config: disabled
创建所有三个文件后,需要将它们放置在带有 ISO 9660 或 FAT 卷且标签为 CIDATA
的驱动器上。
使用额外的 FAT 格式化驱动器
使用 FAT 格式化驱动器。将 meta-data
、user-data
和 network-config
复制到驱动器,并将文件系统的 LABEL 更改为 CIDATA
。
您将需要将此驱动器附加到无头机器,以及包含官方 ISO 的驱动器。
使用额外的 ISO
使用 libisoburn 中的 xorriso 创建 cloud-init.iso
文件
$ xorrisofs -output cloud-init.iso -volid CIDATA -joliet -rational-rock meta-data user-data network-config
通过将 cloud-init.iso
刻录到光盘来准备 cloud-init 数据介质,或者,如果部署选项允许,则按原样使用 ISO。
使用单个 USB 闪存驱动器
如果安装映像写入到例如 USB 闪存驱动器,前提是驱动器上有足够的空间,则可以创建额外的分区来容纳 cloud-init 数据。
安装 dosfstools、mtools 和 libisoburn。
首先创建一个 2 MiB FAT 映像,其 LABEL 设置为 CIDATA
$ mkfs.fat -C -n CIDATA cloud-init.img 2048
将 meta-data
和 user-data
文件复制到其根目录
$ mcopy -i cloud-init.img meta-data user-data network-config ::
重新打包官方 ISO 以包含 FAT 映像作为第三个分区
$ xorriso -indev archlinux-version-x86_64.iso -outdev archlinux-version-x86_64-with-cidata.iso -append_partition 3 0x0c cloud-init.img -boot_image any replay
最后,按照 USB 闪存安装介质#按原样使用 ISO(BIOS 和 UEFI) 使用重新打包的 ISO (archlinux-version-x86_64-with-cidata.iso
) 准备 USB 闪存驱动器安装介质。
使用单个自定义构建的 ISO
或者,使用 Archiso 创建自定义 ISO。这允许仅使用一个驱动器,无论类型如何。
使用 releng 配置文件作为基础。将 cloud-init 配置文件 放在 airootfs/var/lib/cloud/seed/nocloud/
中,并构建 ISO。
从安装介质启动
完成后,使用适当的方法将安装介质和 cloud-init 数据介质(如果它是单独的)部署到无头机器。
启动无头机器,并从安装介质启动到 Arch 实时环境。等待一分钟左右,让无头机器有时间启动并连接到网络。
从您现有的机器(带有键盘和显示器)SSH 进入无头服务器上的 Arch 实时环境,并按照 安装指南 中的描述完成安装。