mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
87ee401eea
Move extra md component detection into the label scan phase. It had been in set_pv_devices which was deep within the vg_read phase, which wasn't a good place (better to detect that earlier.) Now that pv metadata info is available in the scan phase, the pv details (size and device_hint) can be used for extra md checking. Use the device_hint from the pv metadata to trigger a full md component check if the device_hint begins with /dev/md. Stop triggering full md component checks based on missing udev info for a dev. Changes to tests to reflect that the code is now detecting md components in some test case that it wasn't before.
584 lines
14 KiB
Bash
584 lines
14 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (C) 2012 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions
|
|
# of the GNU General Public License v.2.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
# . different PV/VG's that happen to have the same PVID
|
|
# . a single PV/VG cloned to another device
|
|
# . dm wrapper around a PV
|
|
# . a single PV/VG cloned plus a dm wrapper (two separate dups of a PV)
|
|
|
|
SKIP_WITH_LVMPOLLD=1
|
|
SKIP_WITH_LVMLOCKD=1
|
|
|
|
RUNDIR="/run"
|
|
test -d "$RUNDIR" || RUNDIR="/var/run"
|
|
PVS_ONLINE_DIR="$RUNDIR/lvm/pvs_online"
|
|
VGS_ONLINE_DIR="$RUNDIR/lvm/vgs_online"
|
|
HINTS="$RUNDIR/lvm/hints"
|
|
|
|
_clear_online_files() {
|
|
# wait till udev is finished
|
|
aux udev_wait
|
|
rm -f "$PVS_ONLINE_DIR"/*
|
|
rm -f "$VGS_ONLINE_DIR"/*
|
|
}
|
|
|
|
. lib/inittest
|
|
|
|
test -f /proc/mdstat && grep -q raid1 /proc/mdstat || \
|
|
modprobe raid1 || skip
|
|
|
|
mddev="/dev/md33"
|
|
not grep $mddev /proc/mdstat || skip
|
|
|
|
aux lvmconf 'devices/md_component_detection = 1'
|
|
|
|
# This stops lvm from asking udev if a dev is an md component.
|
|
# LVM will ask udev if a dev is an md component, but we don't
|
|
# want to rely on that ability in this test.
|
|
aux lvmconf 'devices/obtain_device_list_from_udev = 0'
|
|
|
|
aux extend_filter_md "a|/dev/md|"
|
|
|
|
aux prepare_devs 4
|
|
|
|
# Create an unused PV so that there is at least one PV in the hints
|
|
# when the MD dev is stopped. If there are no PVs, the hints are
|
|
# empty, and the code falls back to scanning all, and we do not end
|
|
# up testing the code with hints actively used.
|
|
pvcreate "$dev3"
|
|
|
|
## Test variations:
|
|
# PV on md raid1|raid0, md_component_checks auto|start, mddev start|stopped,
|
|
# one leg disabled when mddev is stopped.
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, auto+started
|
|
# md_component_checks: auto (not start)
|
|
# mddev: started (not stopped)
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "auto"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
# pvs shows only the md dev as PV
|
|
pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
pvs > out
|
|
grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
# normal activation works
|
|
lvchange -ay $vg/$lv1
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation all works
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation from mddev works
|
|
_clear_online_files
|
|
pvscan --cache -aay "$mddev"
|
|
ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation from md components does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
pvscan --cache -aay "$dev2"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
not grep "active" out
|
|
|
|
vgchange -an $vg
|
|
vgremove -f $vg
|
|
mdadm --stop "$mddev"
|
|
aux udev_wait
|
|
aux wipefs_a "$dev1"
|
|
aux wipefs_a "$dev2"
|
|
aux udev_wait
|
|
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, start+started
|
|
# md_component_checks: start (not auto)
|
|
# mddev: started (not stopped)
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "start"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
# pvs shows only the md dev as PV
|
|
pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
pvs > out
|
|
grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
# N.B. in this case hints are disabled for duplicate pvs seen by scan
|
|
# it would be preferrable if this didn't happen as in auto mode, but it's ok.
|
|
# grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
# normal activation works
|
|
lvchange -ay $vg/$lv1
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation all works
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation from mddev works
|
|
_clear_online_files
|
|
pvscan --cache -aay "$mddev"
|
|
ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
vgchange -an $vg
|
|
|
|
# pvscan activation from component should do nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
not grep "active" out
|
|
|
|
# pvscan activation from mddev first, then try from component which fails
|
|
_clear_online_files
|
|
pvscan --cache -aay "$mddev"
|
|
ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
lvs -o active $vg |tee out || true
|
|
grep "active" out
|
|
rm "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
|
|
|
|
vgchange -an $vg
|
|
vgremove -f $vg
|
|
mdadm --stop "$mddev"
|
|
aux udev_wait
|
|
aux wipefs_a "$dev1"
|
|
aux wipefs_a "$dev2"
|
|
aux udev_wait
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, auto+stopped
|
|
# md_component_checks: auto (not start)
|
|
# mddev: stopped (not started)
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "auto"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# pvs does not show the PV
|
|
not pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
# the vg is not seen, normal activation does nothing
|
|
not lvchange -ay $vg/$lv1
|
|
not lvs $vg
|
|
|
|
# pvscan activation all does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
# pvscan activation from md components does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
pvscan --cache -aay "$dev2"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux wipefs_a "$dev1"
|
|
aux wipefs_a "$dev2"
|
|
aux udev_wait
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, start+stopped
|
|
# md_component_checks: start (not auto)
|
|
# mddev: stopped (not started)
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "start"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# pvs does not show the PV
|
|
not pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
# the vg is not seen, normal activation does nothing
|
|
rm $HINTS
|
|
not lvs $vg
|
|
not lvchange -ay $vg/$lv1
|
|
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux wipefs_a "$dev1" || true
|
|
aux wipefs_a "$dev2" || true
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, start+stopped
|
|
# md_component_checks: start (not auto)
|
|
# mddev: stopped (not started)
|
|
# only one raid image online
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "start"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# disable one leg of the md device, with raid1 this means duplicates
|
|
# will not be seen for the legs. duplicate handling can trigger
|
|
# md component detection, so no duplicates means md components may
|
|
# not be detected as easily.
|
|
aux disable_dev "$dev2"
|
|
|
|
# pvs does not show the PV
|
|
rm $HINTS
|
|
not pvs "$mddev"
|
|
rm $HINTS
|
|
not pvs "$dev1"
|
|
rm $HINTS
|
|
not pvs "$dev2"
|
|
rm $HINTS
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
rm $HINTS
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
not lvs $vg
|
|
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
not lvs $vg
|
|
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux enable_dev "$dev2"
|
|
aux udev_wait
|
|
cat /proc/mdstat
|
|
# for some reason enabling dev2 starts an odd md dev
|
|
mdadm --stop $(lsblk -al -o NAME --noheadings "$dev2" | grep '^md') || true
|
|
cat /proc/mdstat
|
|
aux wipefs_a "$dev1" || true
|
|
aux wipefs_a "$dev2" || true
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, auto+stopped
|
|
# md_component_checks: auto (not start)
|
|
# mddev: stopped (not started)
|
|
# only one raid image online
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "auto"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# disable one leg
|
|
aux disable_dev "$dev2"
|
|
|
|
# pvs does not show the PV
|
|
not pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
|
|
# the vg is not seen, normal activation does nothing
|
|
not lvchange -ay $vg/$lv1
|
|
not lvs $vg
|
|
|
|
# pvscan activation all does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
# pvscan activation from md components does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
pvscan --cache -aay "$dev2"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux enable_dev "$dev2"
|
|
aux udev_wait
|
|
cat /proc/mdstat
|
|
# for some reason enabling dev2 starts an odd md dev
|
|
mdadm --stop $(lsblk -al -o NAME --noheadings "$dev2" | grep '^md') || true
|
|
cat /proc/mdstat
|
|
aux wipefs_a "$dev1" || true
|
|
aux wipefs_a "$dev2" || true
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, auto+stopped
|
|
# md_component_checks: auto (not start)
|
|
# mddev: stopped (not started)
|
|
# three raid images
|
|
#
|
|
|
|
aux lvmconf 'devices/md_component_checks = "auto"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=3 "$dev1" "$dev2" "$dev4"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# pvs does not show the PV
|
|
not pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
not pvs "$dev4"
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
not grep "$dev4" out
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
not grep "$dev4" $HINTS
|
|
|
|
# the vg is not seen, normal activation does nothing
|
|
not lvchange -ay $vg/$lv1
|
|
not lvs $vg
|
|
|
|
# pvscan activation all does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
# pvscan activation from md components does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
pvscan --cache -aay "$dev2"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
pvscan --cache -aay "$dev4"
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux wipefs_a "$dev1"
|
|
aux wipefs_a "$dev2"
|
|
aux wipefs_a "$dev4"
|
|
aux udev_wait
|
|
|
|
|
|
|
|
##########################################
|
|
# PV on an md raid1 device, start+stopped
|
|
# md_component_checks: start (not auto)
|
|
# mddev: stopped (not started)
|
|
# three raid images
|
|
|
|
aux lvmconf 'devices/md_component_checks = "start"'
|
|
|
|
mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=3 "$dev1" "$dev2" "$dev4"
|
|
aux wait_md_create "$mddev"
|
|
pvcreate "$mddev"
|
|
PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
|
|
echo $PVIDMD
|
|
vgcreate $vg "$mddev"
|
|
lvcreate -n $lv1 -l 2 -an $vg
|
|
|
|
mdadm --stop "$mddev"
|
|
cat /proc/mdstat
|
|
|
|
# pvs does not show the PV
|
|
not pvs "$mddev"
|
|
not pvs "$dev1"
|
|
not pvs "$dev2"
|
|
not pvs "$dev4"
|
|
pvs > out
|
|
not grep $mddev out
|
|
not grep "$dev1" out
|
|
not grep "$dev2" out
|
|
not grep "$dev4" out
|
|
pvscan --cache
|
|
not grep "$mddev" $HINTS
|
|
not grep "$dev1" $HINTS
|
|
not grep "$dev2" $HINTS
|
|
not grep "$dev4" $HINTS
|
|
|
|
# the vg is not seen, normal activation does nothing
|
|
not lvchange -ay $vg/$lv1
|
|
not lvs $vg
|
|
|
|
# pvscan activation all does nothing
|
|
_clear_online_files
|
|
pvscan --cache -aay
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
_clear_online_files
|
|
pvscan --cache -aay "$dev1" || true
|
|
not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
|
not ls "$RUNDIR/lvm/vgs_online/$vg"
|
|
|
|
aux enable_dev "$dev2"
|
|
aux enable_dev "$dev4"
|
|
aux udev_wait
|
|
cat /proc/mdstat
|
|
# for some reason enabling dev2 starts an odd md dev
|
|
mdadm --stop $(lsblk -al -o NAME --noheadings "$dev2" | grep '^md') || true
|
|
cat /proc/mdstat
|
|
aux wipefs_a "$dev1" || true
|
|
aux wipefs_a "$dev2" || true
|
|
aux wipefs_a "$dev4" || true
|
|
|