我尝试通过 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"]