diff options
Diffstat (limited to 'server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot')
-rwxr-xr-x | server/modules/hdd-boot/opt/openslx/scripts/systemd-hdd_boot | 23 |
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 } ######################### |