我家里有一台 Ubuntu 服务器,用作工作场所存储等,我需要重新安装它。我没有显示器来做这件事,因为我没有合适的插头,他们不在我这里销售,而且我无法在线获得它们。有没有办法在没有屏幕的情况下重新安装 Ubuntu Server 22.04?
答案1
Ubuntu Server 20.04 及更高版本的安装程序支持一种新的操作模式:自动安装,简称自动安装。您可能还将此功能称为无人值守或手动安装或旧式预置安装。
自动安装可让您提前回答所有这些配置问题自动安装配置并让安装过程无需任何交互即可运行。
提供自动安装配置
自动安装配置通过 cloud-init 配置提供,该配置几乎具有无限灵活性。在大多数情况下,最简单的方法是通过无云数据源。
自动安装配置应在配置中的键下提供autoinstall
。例如:
#cloud-config
autoinstall:
version: 1
...
运行真正自动化的自动安装
即使找到完全非交互式的自动安装配置,服务器安装程序也会在写入磁盘之前要求确认,除非autoinstall
内核命令行中存在。这是为了更难意外创建一个在启动时会重新格式化插入的机器的 USB 棒。许多自动安装将通过网络启动完成,其中内核命令行由网络启动配置控制 - 只需记住将其放入autoinstall
其中!
快速开始
所以你只是想试试?我们有适合您的页面。
创建自动安装配置
当使用服务器安装程序安装任何系统时,会在 处创建用于重复安装的自动安装文件/var/log/installer/autoinstall-user-data
。
自动安装配置的结构
自动安装配置有完整文档。
从技术上讲,配置未定义为文本格式,但 cloud-init 配置通常以 YAML 形式提供,因此这是文档使用的语法。
最小配置是:
version: 1
identity:
hostname: hostname
username: username
password: $crypted_pass
以下是展示大多数功能的示例文件:
version: 1
reporting:
hook:
type: webhook
endpoint: http://example.com/endpoint/path
early-commands:
- ping -c1 198.162.1.1
locale: en_US
keyboard:
layout: gb
variant: dvorak
network:
network:
version: 2
ethernets:
enp0s25:
dhcp4: yes
enp3s0: {}
enp4s0: {}
bonds:
bond0:
dhcp4: yes
interfaces:
- enp3s0
- enp4s0
parameters:
mode: active-backup
primary: enp3s0
proxy: http://squid.internal:3128/
apt:
primary:
- arches: [default]
uri: http://repo.internal/
sources:
my-ppa.list:
source: "deb http://ppa.launchpad.net/curtin-dev/test-archive/ubuntu $RELEASE main"
keyid: B59D 5F15 97A5 04B7 E230 6DCA 0620 BBCF 0368 3F77
storage:
layout:
name: lvm
identity:
hostname: hostname
username: username
password: $crypted_pass
ssh:
install-server: yes
authorized-keys:
- $key
allow-pw: no
snaps:
- name: go
channel: 1.14/stable
classic: true
debconf-selections: |
bind9 bind9/run-resolvconf boolean false
packages:
- libreoffice
- dns-server^
user-data:
disable_root: false
late-commands:
- sed -ie 's/GRUB_TIMEOUT=.*/GRUB_TIMEOUT=30/' /target/etc/default/grub
error-commands:
- tar c /var/log/installer | nc 192.168.0.1 1000
许多键和值直接对应安装程序询问的问题(例如键盘选择)。有关没有对应问题的详情,请参阅参考资料。
错误处理
安装程序的进度通过reporting
系统,包括错误。此外,当发生致命错误时,error-commands
执行并将回溯打印到控制台。然后服务器只需等待。