diff options
author | torben | 2015-11-12 15:11:29 +0100 |
---|---|---|
committer | torben | 2015-11-12 15:11:29 +0100 |
commit | ba6de8b5b486c9ee70bcbfed7a554350ae919e19 (patch) | |
tree | 909d598cdc9725d786e401f4f23a3aa309dd09da /builder | |
parent | Fixing kcl modification. (diff) | |
download | systemd-init-ba6de8b5b486c9ee70bcbfed7a554350ae919e19.tar.gz systemd-init-ba6de8b5b486c9ee70bcbfed7a554350ae919e19.tar.xz systemd-init-ba6de8b5b486c9ee70bcbfed7a554350ae919e19.zip |
Adding persistent storage support.
Diffstat (limited to 'builder')
-rwxr-xr-x | builder/dnbd3-rootfs/hooks/cmdline/prepare-kernel-command-line-parameter.sh (renamed from builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh) | 0 | ||||
-rwxr-xr-x | builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh | 41 | ||||
-rwxr-xr-x | builder/dnbd3-rootfs/module-setup.sh | 28 | ||||
-rw-r--r-- | builder/dnbd3-rootfs/udev/70-openslx-disk.rules | 8 |
4 files changed, 33 insertions, 44 deletions
diff --git a/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh b/builder/dnbd3-rootfs/hooks/cmdline/prepare-kernel-command-line-parameter.sh index 6d6b9950..6d6b9950 100755 --- a/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh +++ b/builder/dnbd3-rootfs/hooks/cmdline/prepare-kernel-command-line-parameter.sh diff --git a/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh b/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh index a90481c8..91662d6c 100755 --- a/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh +++ b/builder/dnbd3-rootfs/hooks/pre-mount/fetch-config.sh @@ -1,4 +1,4 @@ -# load dracut functions +# Load dracut library if not already loaded. command -v getarg >/dev/null || . /lib/dracut-lib.sh # read SLX_SERVER and SLX_BASE from the kernel command line @@ -8,32 +8,25 @@ SLX_CONFIG_DIR="/opt/openslx" SLX_CONFIG_FILE="/opt/openslx/config" if [ -z "$SLX_SERVER" ]; then - warn "No 'slxsrv' parameter found in the kernel command line!" - warn "Skipping OpenSLX configuration..." - return 1 + warn "No 'slxsrv' parameter found in the kernel command line!" + warn "Skipping OpenSLX configuration..." + return 1 fi if [ -z "$SLX_BASE" ]; then - warn "No 'slxbase' parameter found in the kernel command line!" - warn "Skipping OpenSLX configuration..." - return 1 + warn "No 'slxbase' parameter found in the kernel command line!" + warn "Skipping OpenSLX configuration..." + return 1 fi -info "Getting configuration from OPENSLX-Server..." -WGET="$(busybox which wget)" -if [ -z $WGET ]; then - # do nothing - warn "'wget' not found. Skipping openslx configuration..." - return 1 -fi - -# ok then we are ready to download the config -mkdir -p "${SLX_CONFIG_DIR}" -$WGET -T 5 -q "http://${SLX_SERVER}/${SLX_BASE}/config" -O "${SLX_CONFIG_FILE}" -RET="$?" -if [ $RET -ne 0 ]; then - warn "Downloading OpenSLX configuration from ${SLX_SERVER}/${SLX_BASE} failed: $RET" - emergency_shell -n "$0" - return 1 +info "Getting configuration from OPENSLX-Server..." && \ +mkdir -p "${SLX_CONFIG_DIR}" && \ +wget --timeout 5 --quiet "http://${SLX_SERVER}/${SLX_BASE}/config" \ + --output-document "${SLX_CONFIG_FILE}" && \ +return_code="$?" +if [ $result -ne 0 ]; then + warn "Downloading OpenSLX configuration from ${SLX_SERVER}/${SLX_BASE} failed. Return code: $return_code" + emergency_shell -n "$0" + return 1 else - return 0 + return 0 fi diff --git a/builder/dnbd3-rootfs/module-setup.sh b/builder/dnbd3-rootfs/module-setup.sh index 3c96e1e4..907b5cee 100755 --- a/builder/dnbd3-rootfs/module-setup.sh +++ b/builder/dnbd3-rootfs/module-setup.sh @@ -60,18 +60,13 @@ install() { # region hooks inst_hook cmdline 00 "$moddir/hooks/cmdline/enable-sysrq.sh" - inst_hook cmdline 10 "$moddir/hooks/cmdline/prepare-network-kcl-parameter.sh" + inst_hook cmdline 10 "$moddir/hooks/cmdline/prepare-kernel-command-line-parameter.sh" inst_hook cmdline 90 "$moddir/hooks/cmdline/set-dracut-environment-variables.sh" inst_hook pre-udev 00 "$moddir/hooks/pre-udev/load-custom-kernel-modules.sh" inst_hook pre-udev 00 "$moddir/hooks/pre-udev/setup-loopback-device.sh" - # this is the configuration hook where the config stuff is wget'ed - # TODO - #inst_hook pre-mount 00 "$moddir/hooks/pre-mount/fetch-config.sh" - # this is the main hook where all the magic is triggered - #inst_hook pre-mount 10 "$moddir/hooks/pre-mount/mount-qcow.sh" - + inst_hook pre-mount 00 "$moddir/hooks/pre-mount/fetch-config.sh" inst_hook pre-mount 10 "$moddir/hooks/pre-mount/prepare-root-partition.sh" inst_hook mount 10 "$moddir/hooks/mount/mount-root-device.sh" @@ -83,18 +78,19 @@ install() { # region scripts inst "$moddir/scripts/utils.sh" "/usr/lib/utils.sh" + # This script is triggered by udev upon finding the right partitions for + # persistent sessions. + inst "$moddir/scripts/prepare-persistent-disks" /sbin/prepare-persistent-disks # endregion - ## TODO deprecated - # the main magic script containing all the functions needed - # to prepare the qcow2-based root filesystem - #inst "$moddir/scripts/setup-qcow2" /sbin/setup-qcow2 - # the script triggered by udev upon finding the right partitions - #inst "$moddir/scripts/prepare-disks" /sbin/prepare-disks - # udev rules detecting 44, 45, 46 partitions and running - # 'prepare-disks' to do then format/mount/use them - #inst "$moddir/udev/70-openslx-disk.rules" /etc/udev/rules.d/70-openslx-disk.rules + # region configuration files + + # Udev rules detecting 44, 45, 46 partitions and running + # "prepare-persistent-disks" to prepare persistent partitions. + inst "$moddir/udev/70-openslx-disk.rules" /etc/udev/rules.d/70-openslx-disk.rules + + # endregion # Debugging: inst_multiple lsblk ping ip ifconfig sshd htop tail head vim touch sed \ diff --git a/builder/dnbd3-rootfs/udev/70-openslx-disk.rules b/builder/dnbd3-rootfs/udev/70-openslx-disk.rules index 5cb3fa52..9aad9a41 100644 --- a/builder/dnbd3-rootfs/udev/70-openslx-disk.rules +++ b/builder/dnbd3-rootfs/udev/70-openslx-disk.rules @@ -1,7 +1,7 @@ # GPT rules -KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="gpt" ENV{ID_PART_ENTRY_NAME}=="OPENSLX_TMP" RUN+="/sbin/prepare-disks %E{ID_PART_ENTRY_NAME} %k" -KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="gpt" ENV{ID_PART_ENTRY_NAME}=="OPENSLX_SYS" RUN+="/sbin/prepare-disks %E{ID_PART_ENTRY_NAME} %k" +KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="gpt" ENV{ID_PART_ENTRY_NAME}=="OPENSLX_TMP" RUN+="/sbin/prepare-persistent-disks %E{ID_PART_ENTRY_NAME} %k" +KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="gpt" ENV{ID_PART_ENTRY_NAME}=="OPENSLX_SYS" RUN+="/sbin/prepare-persistent-disks %E{ID_PART_ENTRY_NAME} %k" # MBR rules -KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="dos" ENV{ID_PART_ENTRY_TYPE}=="0x44" RUN+="/sbin/prepare-disks OPENSLX_TMP %k" -KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="dos" ENV{ID_PART_ENTRY_TYPE}=="0x46" RUN+="/sbin/prepare-disks OPENSLX_SYS %k" +KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="dos" ENV{ID_PART_ENTRY_TYPE}=="0x44" RUN+="/sbin/prepare-persistent-disks OPENSLX_TMP %k" +KERNEL=="sd?[0-9]" SUBSYSTEM=="block" ENV{ID_PART_TABLE_TYPE}=="dos" ENV{ID_PART_ENTRY_TYPE}=="0x46" RUN+="/sbin/prepare-persistent-disks OPENSLX_SYS %k" |