通过 SSH 安装 Arch Linux
本文介绍如何通过 SSH 连接远程安装 Arch。如果计算机位于远程位置或者希望在安装 Arch 时使用 SSH 客户端的复制/粘贴功能,则可以考虑这种方法。
在远程(目标)计算机上[编辑 | 编辑源代码]
通过 Live CD/USB 镜像启动计算机进入 Live Arch 环境:用户将以 root 用户身份登录。
这时,按照安装指南#连接到互联网在目标计算机上设置网络。
为 SSH 连接设置 root 密码,因为 Arch 中 root 的默认密码为空:
# passwd
确认在 /etc/ssh/sshd_config
中设置了 PermitRootLogin yes
。如果没有,请设置并重新加载OpenSSH 守护进程 sshd.service
使更改生效。
-R
标志。在本地计算机上[编辑 | 编辑源代码]
在本地计算机上,使用以下命令通过 SSH 连接到目标计算机:
$ ssh -o StrictHostKeyChecking=no -o "UserKnownHostsFile /dev/null" root@目标计算机的_IP_地址
-o StrictHostKeyChecking=no -o "UserKnownHostsFile /dev/null"
选项将阻止验证 Live 环境的 SSH 主机密钥并将其写入到 ~/.ssh/known_hosts
。如果您以前连接过这一 IP 地址,这将避免 REMOTE HOST IDENTIFICATION HAS CHANGED
警告。从这里可以看到 Live 环境的欢迎信息,并且能够像坐在物理键盘旁一样管理目标计算机。此时,如果只想安装 Arch,请遵循安装指南。如果要编辑现有的已损坏的 Linux 安装,参见从现有 Linux 发行版安装 Arch Linux。
在无头服务器上安装[编辑 | 编辑源代码]
本节介绍在没有键盘、鼠标和显示器的无头服务器上安装 Arch Linux。这种方法使用一个带有 cloud-init NoCloud 配置的额外驱动器来自动配置 OpenSSH 授权密钥和可选的 iwd 连接。
准备 cloud-init 配置文件[编辑 | 编辑源代码]
需要两个 cloud-init 配置文件:meta-data
和 user-data
。
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
创建了这两个文件之后,需要将其放置在一个标签为 CIDATA
的 ISO 9660 或 FAT 卷的驱动器上。
使用额外的 FAT 格式驱动器[编辑 | 编辑源代码]
使用 FAT 格式的驱动器。将 meta-data
和 user-data
复制到驱动器并将文件系统的 LABEL 更改为 CIDATA
。
除了包含官方 ISO 的驱动器外,还需要将这个驱动器连接到无头计算机上。
使用额外的 ISO[编辑 | 编辑源代码]
使用 libisoburn包 中的 xorriso 创建一个 cloud-init.iso
文件:
$ xorrisofs -output cloud-init.iso -volid CIDATA -joliet -rational-rock meta-data user-data
将 cloud-init 数据介质刻录到光盘,如果部署选项允许的话,按原样使用 ISO。
使用单个 U 盘[编辑 | 编辑源代码]
如果将安装映像写入到了 U 盘之类的驱动器,并且驱动器上有足够的空间,就可以创建一个额外的分区来存储 cloud-init 数据。
安装 dosfstools包、mtools包 和 libisoburn包。
首先创建一个 LABEL 设置为 CIDATA
的 FAT 镜像:
$ mkfs.fat -C -n CIDATA cloud-init.img 2048
将 meta-data
和 user-data
文件复制到其根目录:
$ mcopy -i cloud-init.img meta-data user-data ::
重新打包官方 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 flash installation medium#Using the ISO as is (BIOS and UEFI) 使用重新打包的 ISO(archlinux-version-x86_64-with-cidata.iso
)准备 U 盘安装介质。
使用单个定制的 ISO[编辑 | 编辑源代码]
除了上述方法,也使用 Archiso 创建一个自定义 ISO。这样,无论类型如何,都可以只使用一个驱动器。
以 releng 配置文件作为基础。将 cloud-init 配置文件放在 airootfs/var/lib/cloud/seed/nocloud/
中,然后构建 ISO。
从安装介质启动[编辑 | 编辑源代码]
完成后,使用适当的方法将安装介质和 cloud-init 数据介质(如果是单独的)部署到无头计算机。
启动无头计算机,从安装介质启动到 Live Arch 环境。等待一分钟左右来让无头计算机启动并连接到网络。
从您现有的计算机(带键盘和显示器)通过 SSH 连接到无头服务器上的 Live Arch 环境,并按照安装指南完成安装。