bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#38783: GPT case that parted can't handle


From: Jason Mancini
Subject: bug#38783: GPT case that parted can't handle
Date: Mon, 6 Jan 2020 23:00:03 +0000

> It's certainly possible. But some things to consider:
> 
>  * In commit 7f753b1b0505b Jim mentions that the spec calls this
>    situation an invalid GPT partition. But I'm not sure I agree after
>    reading over section 5.3.2 a few times.
> 
>  * If parted does create a new backup table it needs to make sure that
>    the end of the last partition doesn't interfere with it.
> 
>  * looking at some of the code, things like _parse_header are written to
>    support growing the disk, but will fail on one that has shrunk.
> 
> Given the amount of work that would be needed to support this, and that
> this is a corner case I don't think it's something I want to tackle.
> Really, you shouldn't be copying pieces of disks around. Make a new
> partition and copy the data -- it's safer that way.
> 
> -- 
> Brian C. Lane (PST8PDT) - weldr.io - lorax - parted - pykickstart

This works perfectly with MBR.  It's too bad that such drive mirroring 
functionality is lost moving to GPT, where the target disk is slightly smaller, 
but the partitions don't reach that far.  I can make due with gdisk (or 
manually editing the header + recalc crc32).  But know that Windows boots and 
runs fine, while basically any Linux installer will overwrite what's on the 
disk.  I think that if Windows and gparted can handle the situation, 
fdisk/cfdisk/parted/gparted could too.  End users see conflicting GPT 
interpretation from multiple tools.  It behooves us to handle obscure corner 
case conditions as well as possible.  You never know when someone just might 
recover some data because of it.  I think it's regretful that a dual-header GPT 
is less robust than MBR in this case.  Surely that was never the intention.
Jason





reply via email to

[Prev in Thread] Current Thread [Next in Thread]