diff --git a/packer/initramfs/labsync b/packer/initramfs/labsync index ca8599d..ac1e327 100755 --- a/packer/initramfs/labsync +++ b/packer/initramfs/labsync @@ -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=$?