bug#80093: libparted: gpt: Partition type is not updated after changing file system
Pascal Hambourg <[email protected]> Mon, 23 Mar 2026 21:37:47 +0100
| Newsgroups | gmane.comp.gnu.parted.bugs |
|---|---|
| Organization | Plouf ! |
| Message-ID | <[email protected]> |
On 23/03/2026 at 19:49, Brian C. Lane wrote: >> >> In a GPT partition table, when the file system type of a partition is set to >> a Microsoft filesystem (ex: FAT) with ped_partition_set_system(), >> gpt_partition_set_system() sets the partition type to >> PARTITION_BASIC_DATA_GUID (Microsoft basic data partition type GUID), >> resulting in the "msftdata" flag being set. As expected. >> >> However when a partition has the PARTITION_BASIC_DATA_GUID type, if the >> filesystem type is changed to a non-Microsoft filesystem (ex: ext4), >> gpt_partition_set_system() does not reset the partition type to the >> associated partition type GUID (ex: PARTITION_LINUX_DATA_GUID), resulting in >> the "msftdata" flag still being set. >> >> It is the same with the PARTITION_SWAP_GUID partition type. >> >> This is caused by PARTITION_BASIC_DATA_GUID and PARTITION_SWAP_GUID being >> included in skip_set_system_guids[]. Is there a reason for this or is it a >> bug ? Shouldn't all filesystem-specific partition types be excluded from >> this list ? > > This isn't a bug. The partition GUID is only set at creation time, using > input from the user to pick the most appropriate type. But parted isn't > (and should not be) tracking filesystem changes and changing the GUID. This does not match my observations: - ped_partition_set_system() can set the 'msftdata' or 'swap' flag on an existing partition, it just cannot clear it. - ped_partition_set_flag() sets the 'msftdata' or 'swap' flag in accordance with the detected filesystem when clearing the GUID type flag (esp, raid...) on an existing partition. Easy to reproduce with parted.