summaryrefslogtreecommitdiffstats
path: root/server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot
diff options
context:
space:
mode:
Diffstat (limited to 'server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot')
-rwxr-xr-xserver/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot23
1 files changed, 21 insertions, 2 deletions
diff --git a/server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot b/server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot
index 3696dc7b..5e255d46 100755
--- a/server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot
+++ b/server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot
@@ -1,4 +1,5 @@
#!/bin/bash
+set -x
# Downloading all in SLX_BASE_PATH to /boot Example: Ubuntu_1404_x64
# wget -N, update if the file has been changed
@@ -26,6 +27,24 @@ for opts in ${KCL}; do
done
KCL=$(echo "$KCL" | sed "s|SLX_BASE_PATH|$SLX_BASE_PATH|g;s|$BOOT_IMAGE||g;s|$initrd||g")
+# Scan vm-store dir for vmware image xmls and copy
+if [ -d /cache/export/dnbd3 -a -d /mnt/vmstore ]; then
+ [ ! -d /boot/vmstore ] && mkdir /boot/vmstore
+ for FILE in $(find /cache/export/dnbd3 -iname "*.vmdk*" ! -iname "*map"); do
+ [ -e "${FILE}.map" ] && continue
+ image_name=$(echo $(basename "$FILE") | cut -d "." -f1)
+ for XML in $(grep -rIl --include "*.xml" "$image_name" /mnt/vmstore); do
+ cp $XML /boot/vmstore
+ done
+ done
+fi
+
+# Bind mount available vmstore in /boot to /mnt/vmstore if not already present
+if ! grep -qs '/mnt/vmstore' /proc/mounts; then
+ [ ! -d /mnt/vmstore ] && mkdir -p /mnt/vmstore
+ [ -d /boot/vmstore ] && mount --bind /boot/vmstore /mnt/vmstore
+fi
+
# if SLX_BASE_PATH already exists, just update. Does not make the menu again.
[ -d /boot/$SLX_BASE_PATH ] && { boot_download; echo "$SLX_BASE_PATH updated"; exit 0; } || boot_download
@@ -63,10 +82,10 @@ echo "GRUB_DISK $GRUB_DISK" #Just for test
[ -e /boot/grub/grub.cfg ] || { echo "Could not find grub.cfg"; exit 1; }
-cat <<EOF >> grub.cfg
+cat <<EOF >> /boot/grub/grub.cfg
#########################
menuentry '$SLX_BASE_PATH' {
- linux ($GRUB_DISK,msdos$BOOT_PART)/$SLX_BASE_PATH/kernel hdd_boot=$BOOT_DISK$BOOT_PART $KCL
+ linux ($GRUB_DISK,msdos$BOOT_PART)/$SLX_BASE_PATH/kernel hdd_boot=$BOOT_PART $KCL
initrd ($GRUB_DISK,msdos$BOOT_PART)/$SLX_BASE_PATH/initramfs-stage31
}
#########################