Fix labsync not overwriting existing lvm

This commit is contained in:
jalr 2018-03-17 22:53:25 +01:00
parent c69c9654a6
commit 73e65f0500

View file

@ -13,7 +13,7 @@ labsync_create_or_resize_lv() {
if [ -z "$current_lv_size_bytes" ]; then
# no size returned, it's likely that lv doesn't exist
lvm lvcreate -L ${new_size_bytes}b -n "$lv" "$vg"
lvm lvcreate --wipesignatures y -L ${new_size_bytes}b -n "$lv" "$vg"
elif [ "$minimum_size_bytes" != "" ] && [ $minimum_size_bytes -gt 0 ]; then
# lv already exists
if [ $current_lv_size_bytes -lt $minimum_size_bytes ]; then
@ -72,6 +72,9 @@ labsync_premount() {
labsync_mount_root() {
set -x
sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf
vg_name="vglab"
if [ -z "$labsync_localboot" ]; then
labsync_info "Downloading torrent file from ${labsync_torrent}"
while ! wget -T 10 -O /tmp/torrent "${labsync_torrent}"; do sleep 1; done
@ -89,7 +92,18 @@ labsync_mount_root() {
size_part_2=$(((size_disk - labsync_partsize_boot) * 1024 * 1024 / 512))
start_part_2=$((size_part_1 + 2048))
sfdisk -q ${labsync_disk} << PARTTABLE
dmsetup ls --tree
lvm vgs -o NAME --noheadings | while read vg; do
if [ "$vg" != "$vg_name" ]; then
lvm vgchange -an "$vg"
find /dev -mindepth 1 -maxdepth 1 -name "$vg" -exec dmsetup remove '{}' \;
fi
done
dmsetup ls --tree
sfdisk --force -q ${labsync_disk} << PARTTABLE
label: dos
label-id: 0xdeadbeef
device: ${labsync_disk}
@ -99,10 +113,12 @@ ${labsync_disk}1 : start= 2048, size= $size_part_1, type=83
${labsync_disk}2 : start=$start_part_2, size= $size_part_2, type=8e
PARTTABLE
while ! blockdev --rereadpt /dev/sda; do
sleep 1
done
labsync_info "Doing lvm stuff"
pv_device="${labsync_disk}2"
vg_name="vglab"
lvm pvcreate -t "$pv_device"
pvstatus=$?