Please backport patches for false atari partition detection to Ubuntu 20.04

Bug #2015355 reported by Dominic Evans
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
util-linux (Ubuntu)
Fix Released
Undecided
Unassigned
Focal
Fix Released
Low
Nick Rosbrook

Bug Description

[Impact]

The partition detection logic in libblkid1 can falsely report the presence of an atari partition. One place where this has a practical impact is in kubernetes where mount-utils will refuse to format the device (https://github.com/kubernetes/mount-utils/blob/732a08ae47571516020ef99c303c70c1fa5b3e6c/mount_linux.go#L437-L441).

[Test Plan]

* Create a new qcow2 disk image:

$ qemu-img create -f qcow2 test.img 20G

* Boot a focal ISO with QEMU/KVM as if installing to test.img:

$ qemu-system-x86_64 -enable-kvm -m 4096 -name test -drive file=test.img,format=qcow2 -net nic,model=virtio -net user,hostfwd=tcp::1022-:22 -vga virtio -cdrom ubuntu-20.04.6-desktop-amd64.iso

* Using the live environment, format the empty disk. These particular commands were given as a reproducer on the upstream bug report (https://github.com/util-linux/util-linux/issues/1116).

$ parted -s /dev/sda -- mklabel msdos
$ parted -s /dev/sda -- mkpart primary 0% 10% mkpart primary 10% 30%

* Run wipefs on /dev/sda to list partitions. On an affected machine, an atari partition will be listed. On a fixed machine, the incorrect atari listing will be gone.

$ wipefs /dev/sda
DEVICE OFFSET TYPE UUID LABEL
sda 0x1fe dos
sda 0x1d2 atari

[Where problems could occur]

These patches specifically address the atari prober logic in libblkid. Therefore, if we saw regressions it would be related to detecting atari partitions with libblkid. This would potentially impact tools such as wipefs and blkid, or any other tool that uses libblkid1 for this purpose.

[Original Description]

There are three patches in util-linux upstream that were released in util-linux 2.37 and prevent false detection of the atari partition table with blkid and wipefs. We see this mostly on LUKS devices initialised via luksFormat reporting there is an atari partition table on the device when it is empty. This causes issues in various places, but one key example for us is in kubernetes where mount-utils will refuse to format the device (https://github.com/kubernetes/mount-utils/blob/732a08ae47571516020ef99c303c70c1fa5b3e6c/mount_linux.go#L437-L441)

RedHat backported these fixes to RHEL 8 under https://bugzilla.redhat.com/show_bug.cgi?id=2060030 and it would be helpful if Ubuntu also backported them to Ubuntu 20.04 which is still running util-linux 2.34

The request is to backport patches based on the https://github.com/util-linux/util-linux/issues/1159 upstream report.

Upstream commits to cherry-pick the changes to libblkid/src/partitions/atari.c from:
2cc76d50d7a14bef8e7b07fab11b26c9e49d36a2
282ceadc3a72fc07dd0388b8880fd751490bb87f
c70b4f2a5b99876d230b8f4f413c3bb3ee6647f1

# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
# blkid -V
blkid from util-linux 2.34 (libblkid 2.34.0, 14-Jun-2019)
# blkid -p -s TYPE -s PTTYPE -o export /dev/mapper/pvc-7b331195-cd5a-4ab6-8fdc-552af4b9139d_encrypted
DEVNAME=dev/mapper/pvc-7b331195-cd5a-4ab6-8fdc-552af4b9139d_encrypted
PTTYPE=atari
# lsblk
...
sdc crypto_LUKS a79d2982-74f2-44c7-bb29-460768ebfe64
`-3600a09803830474a735d4c63744c4a56 crypto_LUKS a79d2982-74f2-44c7-bb29-460768ebfe64
  `-pvc-7b331195-cd5a-4ab6-8fdc-552af4b9139d_encrypted

Related branches

Dominic Evans (oldmanuk)
tags: added: patch
Revision history for this message
Dominic Evans (oldmanuk) wrote :

git format-patch --stdout --no-signoff tags/v2.34... -- libblkid/src/partitions/atari.c

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "2015355.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

Revision history for this message
Dominic Evans (oldmanuk) wrote :

I did a test dpkg-buildpackage after applying the patch and confirmed the fix works as expected.

With libblkid1 2.34-0.1ubuntu9.3
$ blkid example.img
example.img: UUID="b4290c76-d481-4c8b-8407-8e7b6c3f11d5" TYPE="crypto_LUKS" PTTYPE="atari"
# wipefs example.img
DEVICE OFFSET TYPE UUID LABEL
example.img 0x0 crypto_LUKS b4290c76-d481-4c8b-8407-8e7b6c3f11d5
example.img 0x4000 crypto_LUKS b4290c76-d481-4c8b-8407-8e7b6c3f11d5
example.img 0x1c6 atari

Imported patch and bumped dch to build 2.34-0.1ubuntu9.4

curl --fail -sSL -o debian/patches/2015355.patch "https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/2015355/+attachment/5661201/+files/2015355.patch"
quilt import debian/patches/2015355.patch
quilt push -a && quilt refresh && quilt pop -a
dch -n "Apply atari fix from #2015355."
dpkg-buildpackage -us -uc

Tested with libblkid1 2.34-0.1ubuntu9.4
# blkid example.img
example.img: UUID="b4290c76-d481-4c8b-8407-8e7b6c3f11d5" TYPE="crypto_LUKS"
# wipefs example.img
DEVICE OFFSET TYPE UUID LABEL
example.img 0x0 crypto_LUKS b4290c76-d481-4c8b-8407-8e7b6c3f11d5
example.img 0x4000 crypto_LUKS b4290c76-d481-4c8b-8407-8e7b6c3f11d5

(no more false positive PTTYPE="atari")

tags: added: rls-ff-incoming
Steve Langasek (vorlon)
tags: removed: rls-ff-incoming
tags: added: fr-4345
tags: added: foundations-todo
removed: fr-4345
Revision history for this message
Nick Rosbrook (enr0n) wrote :

This bug is not present in Jammy or newer.

Changed in util-linux (Ubuntu):
status: New → Fix Released
description: updated
Changed in util-linux (Ubuntu Focal):
status: New → In Progress
importance: Undecided → Low
assignee: nobody → Nick Rosbrook (enr0n)
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Dominic, or anyone else affected,

Accepted util-linux into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/util-linux/2.34-0.1ubuntu9.4 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in util-linux (Ubuntu Focal):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (util-linux/2.34-0.1ubuntu9.4)

All autopkgtests for the newly accepted util-linux (2.34-0.1ubuntu9.4) for focal have finished running.
The following regressions have been reported in tests triggered by the package:

nfs-utils/1:1.3.4-2.5ubuntu3.4 (amd64)
systemd/245.4-4ubuntu3.21 (armhf)
ubiquity/20.04.15.19 (amd64, arm64, armhf, ppc64el)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/focal/update_excuses.html#util-linux

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Nick Rosbrook (enr0n) wrote :
Download full text (3.9 KiB)

I have verified the fix using util-linux 2.34-0.1ubuntu9.4 from focal-proposed:

$ qemu-img create -f qcow2 test.img 20G
Formatting 'test.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
$ qemu-system-x86_64 -enable-kvm -m 4096 -name test -drive file=test.img,format=qcow2 -net nic,model=virtio -net user,hostfwd=tcp::7022-:22 -vga virtio -cdrom ~/downloads/ubuntu-20.04.6-desktop-amd64.iso
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]

Inside the VM:

ubuntu@ubuntu:~$ sudo parted -s /dev/sda -- mklabel msdos
ubuntu@ubuntu:~$ sudo parted -s /dev/sda -- mkpart primary 0% 10% mkpart primary 10% 30%
ubuntu@ubuntu:~$ sudo wipefs /dev/sda
DEVICE OFFSET TYPE UUID LABEL
sda 0x1fe dos
sda 0x1d2 atari
ubuntu@ubuntu:~$ sudo vi /etc/apt/sources.list
ubuntu@ubuntu:~$ sudo apt update
Ign:1 cdrom://Ubuntu 20.04.6 LTS _Focal Fossa_ - Release amd64 (20230316) focal InRelease
Hit:2 cdrom://Ubuntu 20.04.6 LTS _Focal Fossa_ - Release amd64 (20230316) focal Release
Hit:4 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Get:6 http://security.ubuntu.com/ubuntu focal-proposed InRelease [267 kB]
Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:8 http://security.ubuntu.com/ubuntu focal-proposed/main amd64 Packages [259 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-proposed/main Translation-en [56.7 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-proposed/main amd64 DEP-11 Metadata [9,384 B]
Get:11 http://security.ubuntu.com/ubuntu focal-proposed/main DEP-11 48x48 Icons [10.3 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-proposed/main DEP-11 64x64 Icons [15.7 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-proposed/main DEP-11 64x64@2 Icons [29 B]
Get:14 http://security.ubuntu.com/ubuntu focal-proposed/main amd64 c-n-f Metadata [2,684 B]
Get:15 http://security.ubuntu.com/ubuntu focal-proposed/restricted amd64 Packages [298 kB]
Get:16 http://security.ubuntu.com/ubuntu focal-proposed/restricted Translation-en [43.5 kB]
Get:17 http://security.ubuntu.com/ubuntu focal-proposed/restricted amd64 c-n-f Metadata [316 B]
Fetched 963 kB in 2s (576 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
267 packages can be upgraded. Run 'apt list --upgradable' to see them.
ubuntu@ubuntu:~$ sudo apt install libblkid1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  libblkid1
1 upgraded, 0 newly installed, 0 to remove and 266 not upgraded.
Need to get 137 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://security.ubuntu.com/ubuntu focal-proposed/main amd64 libblkid1 amd64 2.34-0.1ubuntu9.4 [137 kB]
Fetched 137 kB in 1s (179 kB/s)
(Reading database ... 188675 files and directories currently installed.)
Preparing to unpack .../libblkid1_2.34-0.1ubuntu9.4_amd64.deb ...
Unpacking libblkid1:amd64 (2.34-0.1ubuntu9.4) over (2.34-0.1ubuntu9.3...

Read more...

tags: added: verification-done-focal
Revision history for this message
Dominic Evans (oldmanuk) wrote :

Thanks for completing the backport, rolling out the proposed .deb now and will comment again once I've confirmed the fix

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package util-linux - 2.34-0.1ubuntu9.4

---------------
util-linux (2.34-0.1ubuntu9.4) focal; urgency=medium

  * Fix false atari partition detection (LP: #2015355):
    - Backport upstream patches to fix atari partition detection in libblkid:
      + debian/patches/libblkid-fix-Atari-prober-logic.patch
      + debian/patches/libblkid-make-Atari-more-robust.patch
    - Backport upstream patches to fix atari tests:
      + debian/patches/tests-update-atari-partx-tests.patch
      + debian/patches/tests-update-atari-blkid-tests.patch
      + debian/source/include-binaries: Track changes that are not
        representable in quilt patch.

 -- Nick Rosbrook <email address hidden> Tue, 30 May 2023 11:42:35 -0400

Changed in util-linux (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for util-linux has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Benjamin Drung (bdrung)
tags: removed: foundations-todo
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.