[Bug 232175] Re: Partition tables sometimes misdetected as single large FAT file system
dino99
232175 at bugs.launchpad.net
Fri Feb 27 14:18:37 UTC 2015
outdated flavor, report about a newer active version if needed
** Changed in: parted
Importance: Unknown => Undecided
** Changed in: parted
Remote watch: Parted tracker #14 => None
** Changed in: parted
Status: New => Invalid
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to parted in Ubuntu.
https://bugs.launchpad.net/bugs/232175
Title:
Partition tables sometimes misdetected as single large FAT file system
Status in GNU Parted - Partition manager:
Invalid
Status in parted package in Ubuntu:
Fix Released
Status in parted source package in Hardy:
Fix Released
Bug description:
When a FAT file system is written to a whole disk device, it appears
rather like a DOS partition table in some ways. libparted therefore
needs to detect this situation and explicitly bail out of treating it
as a DOS partition table. However, its detection is a bit broken at
the moment and has some false positives. Specifically, if the disk
previously had a FAT file system covering its entire extent, but then
had a partition table written to it, it can happen that the FAT
signature is left around and confuses libparted.
Both the Linux kernel and fdisk use a more reliable method, namely
checking the boot indicator byte of all four partitions in the primary
partition table to ensure that each one is either 0 or 0x80. libparted
should be in sync with these. I sent a patch upstream
(http://lists.alioth.debian.org/pipermail/parted-
devel/2008-May/002243.html and thread) which has been accepted, and I
uploaded this to intrepid as parted 1.7.1-5.1ubuntu10.
Attached is the diff between 1.7.1-5.1ubuntu9 in hardy and the
proposed 1.7.1-5.1ubuntu9.1.
TEST CASE: This is a bit tricky to set up. The most obvious way is
probably to replicate the reporter's partition table on a loopback
device. To do this, download
http://launchpadlibrarian.net/14818962/232175, then:
dd if=/dev/zero of=parted-test bs=1024 count=$((1100*1024))
dd if=232175 of=parted-test bs=512 count=1 conv=notrunc
parted -s parted-test print
With the old libparted1.7-1, this erroneously prints:
Disk /home/cjwatson/parted-test: 1153MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00kB 1153MB 1153MB fat32
The new one correctly prints:
Disk /home/cjwatson/parted-test: 1153MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16.4kB 751MB 751MB primary boot
2 751MB 1027MB 276MB primary
Please also check that parted still understands your own partition
table correctly: 'sudo parted -s /dev/sda print', replacing /dev/sda
with each of whichever disk devices you have.
Regression potential: We'll have to watch out for new partitioner bugs
of the form "partitions on this disk not recognised at all". However,
given that we're now in sync with the Linux kernel, I suspect that
it's more likely that any regressions would be FAT file systems
erroneously detected as partition tables (i.e. the other way round).
It might be worth trying this out with USB sticks.
To manage notifications about this bug go to:
https://bugs.launchpad.net/parted/+bug/232175/+subscriptions
More information about the foundations-bugs
mailing list