通過 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 環境,並按照安裝指南完成安裝。