debcrafters-packages team mailing list archive
-
debcrafters-packages team
-
Mailing list archive
-
Message #01112
[Bug 1940691] Re: sfdisk fails to overwrite disks that contain a pre-existing linux partition
@Keelung: if you have a _similar_ issue, I suggest filing a separate bug
report providing context on what you are trying to do and on what fails.
This bug looks very specific, and may not apply to your case.
@Bill: could it just be that you do not specify the size= field in the
new partition table, so maybe sfdisk assumes size=0, which means the
partition stards _and_ ends at 2048, which causes the error? What do you
expect the size to be?
I'm marking this report as Incomplete for now.
** Changed in: util-linux (Ubuntu)
Status: Confirmed => Incomplete
--
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to util-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1940691
Title:
sfdisk fails to overwrite disks that contain a pre-existing linux
partition
Status in util-linux package in Ubuntu:
Incomplete
Bug description:
This command should non-interactively obliterate whatever partition
table is on /dev/sde, and create a new table with a linux partition
that spans the whole disk:
$ sfdisk --label gpt /dev/sde <<< 'start=2048, type='"$(sfdisk
--label gpt -T | awk '{IGNORECASE = 1;} /linux filesystem/{print
$1}')"
Sometimes it works correctly; sometimes not. It seems to work
correctly as long as the pre-existing partition table does not already
contain a linux partition. E.g. if the existing table just contains
an exFAT partition, there's no issue. But if there is a linux
partition, it gives this output:
-----
Old situation:
Device Start End Sectors Size Type
/dev/sde1 2048 1953525134 1953523087 931.5G Linux root (x86-64)
>>> Created a new GPT disklabel (GUID: <redacted>).
/dev/sde1: Sector 2048 already used.
Failed to add #1 partition: Numerical result out of range
Leaving.
-----
sfdisk should *always* overwrite the target disk unconditionally.
This is what the dump of the target drive looks like in the failure
case:
$ sfdisk -d /dev/sdd
label: gpt
label-id: <redacted>
device: /dev/sdd
unit: sectors
first-lba: 34
last-lba: 1953525134
grain: 33553920
sector-size: 512
/dev/sdd1 : start= 2048, size= 1953523087,
type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=<redacted>,
name="Linux x86-64 root (/)"
$ sfdisk -v
sfdisk from util-linux 2.36.1
Even the workaround is broken. That is, running the following:
$ wipefs -a /dev/sde
should put the disk in a state that can be overwritten. But whatever
residual metadata it leaves behind still triggers the sfdisk bug:
$ sfdisk --label gpt /dev/sde <<< 'start=2048, type='"$(sfdisk --label gpt -T | awk '{IGNORECASE = 1;} /linux filesystem/{print $1}')"
Checking that no-one is using this disk right now ... OK
Disk /dev/sde: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
>>> Created a new GPT disklabel (GUID: <redacted>).
/dev/sde1: Sector 2048 already used.
Failed to add #1 partition: Numerical result out of range
Leaving.
Workaround 2 (also fails):
$ dd if=/dev/zero of=/dev/sde bs=1M count=512
$ sfdisk -d /dev/sde
sfdisk: /dev/sde: does not contain a recognized partition table
^ the nuclear option did the right thing, but sfdisk still fails to
partition the drive (same error).
The *only* workaround that works is an interactive partitioning with
gdisk.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1940691/+subscriptions