Config drives created on RHEL/CentOS 7.1 can't be found

Bug #1598783 reported by Roman Podoliaka on 2016-07-04
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
CirrOS
Medium
Roman Podoliaka
cloud-init
Medium
James Penick
cloudbase-init
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://bazaar.launchpad.net/~cirros-dev/cirros/trunk/view/head:/src/lib/cirros/shlib#L134

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://paste.openstack.org/show/507193/

All the descriptions of the config drive format mention "config-2", not "CONFIG-2":

http://cloudinit.readthedocs.io/en/latest/topics/datasources.html
https://coreos.com/os/docs/latest/config-drive.html
http://docs.openstack.org/user-guide/cli_config_drive.html

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://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/label.mspx?mfr=true

E.g. in Debian this was considered to be a bug and was fixed:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714971;msg=2

It even was accepted to upstream:

https://github.com/dosfstools/dosfstools/commit/465dd8cf8f643bdd39a732e7d7f819a6abdf3d83

and made it to 3.0.22 release.

Related bug in MOS: https://bugs.launchpad.net/mos/+bug/1587960

Related branches

Roman Podoliaka (rpodolyaka) wrote :

This should help, checking it right now

Changed in cirros:
assignee: nobody → Roman Podoliaka (rpodolyaka)
description: updated
description: updated
James Penick (penick) on 2017-12-15
Changed in cloudbase-init:
assignee: nobody → James Penick (penick)
James Penick (penick) on 2017-12-15
Changed in cloud-init:
assignee: nobody → James Penick (penick)
James Penick (penick) on 2017-12-19
Changed in cloud-init:
status: New → Fix Released
Scott Moser (smoser) on 2017-12-20
Changed in cloud-init:
status: Fix Released → Confirmed
importance: Undecided → Medium
Changed in cirros:
status: New → Confirmed
importance: Undecided → Medium

Fix proposed to branch: master
Review: https://review.openstack.org/529448

Changed in cloudbase-init:
status: New → In Progress
Chad Smith (chad.smith) on 2018-01-23
Changed in cloud-init:
status: Confirmed → Fix Committed

This bug is believed to be fixed in cloud-init in 18.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

Reviewed: https://review.openstack.org/529448
Committed: https://git.openstack.org/cgit/openstack/cloudbase-init/commit/?id=24365043e31a7cb0899d2222bbba654ef718da5b
Submitter: Zuul
Branch: master

commit 24365043e31a7cb0899d2222bbba654ef718da5b
Author: James Penick <email address hidden>
Date: Thu Dec 21 01:16:41 2017 +0000

    Recognize uppercase vfat disk labels

    New mkfs.vfat and fatlabel tools included in the dosfsutils package no
    longer support creating vfat disks with lowercase labels. They silently
    default to an all uppercase label eg CONFIG-2 instead of config-2. This
    change makes cloud-init handle either upper or lower case.

    Change-Id: Iec927db04b9621b20c9bee2c8d81325d7af80f9b
    Closes-Bug: #1598783

Changed in cloudbase-init:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers