Config drives created on RHEL/CentOS 7.1 can't be found
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
CirrOS |
Confirmed
|
Medium
|
Roman Podoliaka | ||
cloud-init |
Fix Released
|
Medium
|
James Penick | ||
cloudbase-init |
Fix Released
|
Undecided
|
James Penick |
Bug Description
Depending on the exact version of dosfstools used when preparing a config drive FS, it may not be detected by Cirron on VM boot. This is due to the fact, that Cirros currently performs a case-sensitive comparison of FS labels:
http://
and mkfs.vfat from CentOS will create an uppercase label "CONFIG-2".
Apparently, dosfstools won't let you use lowercase labels on CentOS, while it works fine on Ubuntu:
http://
All the descriptions of the config drive format mention "config-2", not "CONFIG-2":
http://
https:/
http://
Nothing is said about whether case-sensitive or -insensitive string comparison should be used for comparing of FS labels.
Looks like FAT standard does not specify how labels should be treated, but Windows (at least XP) stores those in upper-case:
"For FAT volumes, volume labels are stored as uppercase regardless of whether they contain lowercase letters. NTFS volume labels retain and display the case used when the label was created."
https:/
E.g. in Debian this was considered to be a bug and was fixed:
https:/
It even was accepted to upstream:
https:/
and made it to 3.0.22 release.
Related bug in MOS: https:/
Related branches
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Pending requested
-
Diff: 955 lines (+415/-129)14 files modifiedcloudinit/sources/DataSourceConfigDrive.py (+2/-2)
cloudinit/sources/DataSourceGCE.py (+95/-39)
cloudinit/util.py (+51/-43)
debian/changelog (+14/-0)
tests/cloud_tests/platforms/ec2/instance.py (+8/-2)
tests/cloud_tests/platforms/ec2/platform.py (+30/-3)
tests/cloud_tests/releases.yaml (+0/-16)
tests/cloud_tests/testcases/modules/ntp_pools.yaml (+1/-1)
tests/cloud_tests/testcases/modules/ntp_servers.yaml (+1/-1)
tests/unittests/test_datasource/test_configdrive.py (+6/-0)
tests/unittests/test_datasource/test_gce.py (+172/-21)
tests/unittests/test_ds_identify.py (+17/-0)
tests/unittests/test_util.py (+15/-0)
tools/ds-identify (+3/-1)
- Murilo Opsfelder Araújo (community): Approve
- cirros developers: Pending requested
-
Diff: 42 lines (+10/-7)1 file modifiedsrc/lib/cirros/ds/configdrive (+10/-7)
- Chad Smith: Approve
-
Diff: 96 lines (+28/-3)4 files modifiedcloudinit/sources/DataSourceConfigDrive.py (+2/-2)
tests/unittests/test_datasource/test_configdrive.py (+6/-0)
tests/unittests/test_ds_identify.py (+17/-0)
tools/ds-identify (+3/-1)
Changed in cloudbase-init: | |
assignee: | nobody → James Penick (penick) |
Changed in cloud-init: | |
assignee: | nobody → James Penick (penick) |
Changed in cloud-init: | |
status: | New → Fix Released |
Changed in cloud-init: | |
status: | Fix Released → Confirmed |
importance: | Undecided → Medium |
Changed in cirros: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in cloud-init: | |
status: | Confirmed → Fix Committed |
This should help, checking it right now