You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过USB闪存驱动器实现Ubuntu Core 22的无人值守安装?

如何通过USB闪存驱动器实现Ubuntu Core 22的无人值守安装?

你提到的直接用dd写入官方Ubuntu Core镜像的方式确实会把系统安装到USB驱动器本身——这是因为默认的Ubuntu Core镜像设计就是将启动介质作为目标安装盘。要实现无人值守安装到工业PC的内部SSD,我们需要走自定义Ubuntu Core镜像+自动配置的路线,这和Ubuntu Server的preseed方式思路类似,但适配了Ubuntu Core基于Snap的架构特性。

下面是具体的实现步骤:

1. 准备必要工具与文件

首先在一台Ubuntu Desktop/Server机器上安装创建自定义Ubuntu Core镜像的工具:

sudo snap install ubuntu-image --classic

同时,你需要获取Ubuntu Core 22的官方model断言文件(以amd64通用机型为例),可以通过以下命令导出:

curl -O https://raw.githubusercontent.com/canonical/ubuntu-core-models/main/generic/ubuntu-core-22-amd64.model

2. 创建Cloud-Init自动配置文件

创建一个名为user-data的yaml文件,这是实现无人值守的核心配置,里面要指定安装目标磁盘、系统身份信息等。示例配置如下:

#cloud-config
autoinstall:
  storage:
    layout:
      name: direct
      match:
        # 这里替换成你的工业PC内部SSD的设备名,比如/dev/sda或/dev/nvme0n1
        path: /dev/nvme0n1
  identity:
    hostname: industrial-ubuntu-core
    username: admin
    # 这里用mkpasswd生成哈希密码(执行mkpasswd命令输入密码即可得到)
    password: $6$rounds=4096$example$abcdefghijklmnopqrstuvwxyz1234567890
  • storage.layout.match.path:务必根据你的工业PC内部磁盘的实际设备名调整,如果不确定,可以先手动启动Ubuntu Core查看磁盘列表(用lsblk命令)。
  • 密码必须是哈希格式,不能用明文,避免安全风险。

3. 生成自定义Ubuntu Core镜像

用ubuntu-image工具将model文件和cloud-init配置打包成可引导的自定义镜像:

sudo ubuntu-image create \
  --image-size 4G \
  --cloud-init user-data \
  ubuntu-core-22-amd64.model

执行完成后,会生成一个名为ubuntu-core-22-amd64.img的镜像文件。

4. 将自定义镜像写入USB闪存驱动器

用dd命令把生成的镜像写入USB(注意替换/dev/sdb为你的USB设备名,别写错成内部磁盘!):

sudo dd if=ubuntu-core-22-amd64.img of=/dev/sdb bs=32M status=progress && sync

5. 启动工业PC完成无人值守安装

将USB插入工业PC,设置从USB启动。系统启动后会自动读取cloud-init配置,将Ubuntu Core 22安装到你指定的内部SSD,整个过程无需人工干预。

额外提示

  • 如果你的工业PC内部磁盘设备名不固定,可以在storage.layout.match里用更灵活的匹配规则,比如按磁盘大小或类型:
    match:
      size: largest  # 自动选择最大的磁盘作为目标
    
  • 自定义镜像还可以预装你需要的Snap包,只需要在model文件里添加对应的snaps条目即可,进一步定制工业PC的初始环境。

备注:内容来源于stack exchange,提问作者Kris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:48:02