cloud-init disk_setup fails to partition disk for Ubuntu18

Bug #1851438 reported by Chaynika Saikia
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Fix Released
Medium
Unassigned
util-linux (Ubuntu)
New
Undecided
Unassigned
Xenial
New
Undecided
Unassigned
Bionic
New
Undecided
Unassigned
Eoan
New
Undecided
Unassigned
Focal
New
Undecided
Unassigned

Bug Description

Pasting disk_setup for cloud-config:

disk_setup:
  /dev/xvde:
     layout: True
     overwrite: False
     type: mbr
fs_setup:
  -device: /dev/xvde
   filesystem: ext4
   label: data
   overwrite: false
   partition: auto

I want to attach and mount a /data disk on the VM using cloud-init so I just want to single partition 100% of the disk.

Error while running the sfdisk command for partitioning the disk (please see attached file).
OS: Ubuntu18

How I repro-ed it outside cloud-init environment:
1. Open XenCenter, add a new disk, say /dev/xvdc
2. Run `/sbin/sfdisk --Linux --unit=S --force /dev/xvdc` and specify start sector as 0. Because from the cloud-init logs and source code, I figured that it was picking start sector as 0. Save it and see the error.

Tags: cloud-init
Revision history for this message
Chaynika Saikia (csaikia) wrote :
Revision history for this message
Chaynika Saikia (csaikia) wrote :
Revision history for this message
Chaynika Saikia (csaikia) wrote :

util-linux package version output from dpkg -l :
Version: 2.31.1-0.4ubuntu3.3
Arch: amd64
Name: util-linux

Revision history for this message
Ryan Harper (raharper) wrote :

https://marc.info/?l=util-linux-ng&m=142920033601419&w=2

Seems to say this is by-design.

util-linux/fdisk versions in Xenial and newer all have this issue.

The workaround for user-data is to specify:

disk_setup:
  <disk name>:
     layout: [100]

Which will create a single partition spanning the whole disk.

And cloud-init will need to emit ",," as input to sfdisk moving forward.

Changed in cloud-init:
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Ryan Harper (raharper) wrote :

This should include an integration test in cloud_tests since it involves #cloud-config

Revision history for this message
Ryan Harper (raharper) wrote :

On trusty; this complains but works.

ubuntu@ubuntu:~$ dpkg --list | grep util-linux
ii util-linux 2.20.1-5.1ubuntu20.9 amd64 Miscellaneous system utilities
ubuntu@ubuntu:~$ cat /proc/partitions
major minor #blocks name

 253 0 10485760 vda
 253 1 10484736 vda1
 253 16 10485760 vdb
 253 32 366 vdc
  11 0 1048575 sr0
ubuntu@ubuntu:~$ sudo bash
sudo: unable to resolve host ubuntu
root@ubuntu:~# echo "0," | sfdisk --Linux --unit=S --force /dev/vdb
Checking that no-one is using this disk right now ...
OK

Disk /dev/vdb: 20805 cylinders, 16 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/vdb: unrecognized partition table type
Old situation:
No partitions found
Warning: bad partition start (earliest 1)
New situation:
Units = sectors of 512 bytes, counting from 0

   Device Boot Start End #sectors Id System
/dev/vdb1 1 20971519 20971519 83 Linux
/dev/vdb2 0 - 0 0 Empty
/dev/vdb3 0 - 0 0 Empty
/dev/vdb4 0 - 0 0 Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
root@ubuntu:~# cat /proc/partitions
major minor #blocks name

 253 0 10485760 vda
 253 1 10484736 vda1
 253 16 10485760 vdb
 253 17 10485759 vdb1
 253 32 366 vdc
  11 0 1048575 sr0

Revision history for this message
Alberto Contreras (aciba) wrote :
Changed in cloud-init:
status: Triaged → Fix Committed
Revision history for this message
Alberto Contreras (aciba) wrote : Fixed in cloud-init version 23.1.

This bug is believed to be fixed in cloud-init in version 23.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in cloud-init:
status: Fix Committed → Fix Released
Revision history for this message
James Falcon (falcojr) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.