如何使用 cloud-config 设置我的启动盘上的分区?

如何使用 cloud-config 设置我的启动盘上的分区?

我尝试通过 cloud-init 初始化 ubuntu 16.04 服务器。第一次启动服务器时,我想创建以下分区:

  • root-fs(ext4 文件系统 ubuntu)
  • 数据磁盘(xfs 格式的分区)
  • 交换磁盘 (4gb)

当我定期启动机器(没有任何 cloud-init)时,我有一个 sda 和 sda1(我认为 sda1 是交换)。

  • 有人能帮我提供一个“有效”或“可行的”例子或者帮我纠正我的方法吗?

  • 或者说在我所在的磁盘上进行分区是不可能的?

顺便说一下,我的主人是 Hetzner

这是我目前的方法:

#cloud-config
device_aliases: {'root-disk': '/dev/sda'}
resize_rootfs: true

disk_setup:
  root-disk:
    table_type: 'gpt'
    layout:
      - 75
      - [25, 82]
    overwrite: true

fs_setup:
  - label: root-fs
    device: 'root-disk'
    filesystem: 'ext4'
  - label: data-disk
    device: root-disk
    filesystem: 'xfs'

答案1

为了结束这项任务,我在这里发布了我的答案:重要的是要知道,那resize_rootfs必须是false 我最终也使用了mbr而不是只是gpt因为我无法弄清楚如何使用 gpt 进行进化。也许有人也可以发布这个例子。

#cloud-config
resize_rootfs: false

disk_setup:
  /dev/sda:
    table_type: 'mbr'
    layout:
      - 25
      - 75
    overwrite: true

fs_setup:
  - label: root_fs
    filesystem: 'ext4'
    device: /dev/sda
    partition: sda1
    overwrite: true
  - label: data_disk
    filesystem: 'xfs'
    device: /dev/sda
    partition: sda2
    overwrite: true

# now we attach the settings
runcmd:
  - [ partx, --update, /dev/sda ]
  - [ mkfs.xfs, /dev/sda2 ]
  - [ partprobe ]
  - parted /dev/sda set 1 boot on p

mounts:
  - ["/dev/sda1", "/"]
  - ["/dev/sda2", "/data-disk"]

相关内容