Subject: bug#36853: closed (Re: bug#36853: mklabel does not clear mdraid version 0.90 metadata)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 30 Jul 2019 17:30:03 +0000

Your bug report

#36853: mklabel does not clear mdraid version 0.90 metadata

which was filed against the parted package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36853: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36853
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#36853: mklabel does not clear mdraid version 0.90 metadata
From: "Brian C. Lane" <[email-masked]>
To: Michael Hudson-Doyle <[email-masked]>
Cc: [email-masked]
Date: Tue, 30 Jul 2019 10:29:48 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On Tue, Jul 30, 2019 at 09:19:49PM +1200, Michael Hudson-Doyle wrote:
> Chasing down a bug report
> https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1828558 where
> installing over a device previously used in a RAID array, I found that
> parted's mklabel does not erase mdraid metadata 0.90 metadata (and only
> that version). Here's my test script

This is working as expected, parted tries not to touch more than it
needs to and this situation will often come up when you re-partition a
disk using the same values as a previous installation. You need to use
something like wipefs on the disk before creating the new partitions.

Thanks,

-- 
Brian C. Lane (PST8PDT) - weldr.io - lorax - parted

Subject: mklabel does not clear mdraid version 0.90 metadata
From: Michael Hudson-Doyle <[email-masked]>
To: [email-masked]
Date: Tue, 30 Jul 2019 21:19:49 +1200
List-Id: <debbugs-submit.debbugs.gnu.org>

Chasing down a bug report
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1828558 where
installing over a device previously used in a RAID array, I found that
parted's mklabel does not erase mdraid metadata 0.90 metadata (and only
that version). Here's my test script

#!/bin/bash
set -xeu
parted --version
rm -f image.img
truncate -s 1G image.img
n=$(uuidgen | cut -d- -f1)
dev="$(losetup -Pf --show image.img)"
mdadm --create --metadata 0.90 --force --level 1 -n 1 --assume-clean
/dev/md/$n $dev
mdadm --stop /dev/md/$n
losetup -d $dev
parted --script --align optimal image.img --  mklabel msdos
wipefs image.img

and here's the output on my system:

+ parted --version
parted (GNU parted) 3.2
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by <
http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.
+ rm -f image.img
+ truncate -s 1G image.img
++ uuidgen
++ cut -d- -f1
+ n=e0c43267
++ losetup -Pf --show image.img
+ dev=/dev/loop44
+ mdadm --create --metadata 0.90 --force --level 1 -n 1 --assume-clean
/dev/md/e0c43267 /dev/loop44
mdadm: array /dev/md/e0c43267 started.
+ mdadm --stop /dev/md/e0c43267
mdadm: stopped /dev/md/e0c43267
+ losetup -d /dev/loop44
+ parted --script --align optimal image.img -- mklabel msdos
+ wipefs image.img
DEVICE    OFFSET     TYPE              UUID
LABEL
image.img 0x3fff0000 linux_raid_member 6dbbfe69-809c-7a77-14d5-894fb9296617
image.img 0x1fe      dos

Looking at ped_disk_clobber none of this is surprising: the 0.90 metadata
is somewhere between 127 and 64 kiB from the end of the device and this
isn't touched.

If this is indeed deemed a bug it could be pragmatically fixed by wiping
more from the end of the disk or more cleverly by using libblkid to locate
and zap all superblocks.

Cheers,
mwh