bug-parted
[Top][All Lists]
Advanced

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

bug#36853: mklabel does not clear mdraid version 0.90 metadata


From: Michael Hudson-Doyle
Subject: bug#36853: mklabel does not clear mdraid version 0.90 metadata
Date: Tue, 30 Jul 2019 21:19:49 +1200

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

reply via email to

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