summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortorben2015-11-05 17:59:37 +0100
committertorben2015-11-05 17:59:37 +0100
commit736da5c94132ed207fd302d1fa4e32d78ca16876 (patch)
treee5cb467b48fd9c3b6a3df146f81859e7936239d7
parentbug fixing (diff)
downloadsystemd-init-736da5c94132ed207fd302d1fa4e32d78ca16876.tar.gz
systemd-init-736da5c94132ed207fd302d1fa4e32d78ca16876.tar.xz
systemd-init-736da5c94132ed207fd302d1fa4e32d78ca16876.zip
Fix parameter.
-rwxr-xr-xbuilder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh32
-rwxr-xr-xbuilder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh30
-rwxr-xr-xbuilder/dnbd3-rootfs/module-setup.sh6
-rw-r--r--builder/dnbd3-rootfs/scripts/utils.sh22
4 files changed, 53 insertions, 37 deletions
diff --git a/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh b/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh
index 9f617b09..2000d3fb 100755
--- a/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh
+++ b/builder/dnbd3-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh
@@ -7,22 +7,22 @@ command -v warn >/dev/null || . /lib/dracut-lib.sh
mount -t tmpfs tmpfs /fake
for parameter in $(getargs ip=); do
- local temp="$parameter:"
- set --
- while [ -n "$temp" ]; do
- set -- "$@" "${temp%%:*}"
- temp=${temp#*:}
- done
-
- [ -n "$1" ] && ip=$1
- [ -n "$2" ] && server_ip=$2
- [ -n "$3" ] && gateway_ip=$3
- [ -n "$4" ] && net_mask=$4
-
- warn "PXE given net configuration: ip: $ip server_ip: $server_ip gateway_ip: $gateway_ip net_mask: $net_mask"
- local final_dracut_ip_config="$ip::$gateway_ip:$net_mask:hiwi-test-28:eno1:none"
- warn "Final dracut ip config: $final_dracut_ip_config"
- sed --regexp-extended "s/ip=[^ ]*/ip=$final_dracut_ip_config/g" /proc/cmdline > /fake/cmdline
+ local temp="$parameter:"
+ set --
+ while [ -n "$temp" ]; do
+ set -- "$@" "${temp%%:*}"
+ temp=${temp#*:}
+ done
+
+ [ -n "$1" ] && ip=$1
+ [ -n "$2" ] && server_ip=$2
+ [ -n "$3" ] && gateway_ip=$3
+ [ -n "$4" ] && net_mask=$4
+
+ warn "PXE given net configuration: ip: $ip server_ip: $server_ip gateway_ip: $gateway_ip net_mask: $net_mask"
+ local final_dracut_ip_config="$ip::$gateway_ip:$net_mask:hiwi-test-28:eno1:none"
+ warn "Final dracut ip config: $final_dracut_ip_config"
+ sed --regexp-extended "s/ip=[^ ]*/ip=$final_dracut_ip_config/g" /proc/cmdline > /fake/cmdline
done
diff --git a/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh b/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
index 8b5ea48e..ade25de0 100755
--- a/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
+++ b/builder/dnbd3-rootfs/hooks/pre-mount/prepare-root-partition.sh
@@ -1,29 +1,17 @@
-function create_partition_via_offset() {
- local device="$1"
- local nameOrUUID="$2"
- local loopDevice=$(losetup -f)
+source "/usr/lib/utils.sh"
- local sectorSize=$(blockdev --getbsz $device)
- local partitionInfo=$(partx --raw --noheadings --output START,NAME,UUID /dev/nbd0 2>/dev/null| grep $nameOrUUID)
- local offsetSectors=$(echo $partitionInfo | cut -d' ' -f1)
- if [ -z "$offsetSectors" ]; then
- warn "could not find partition with label/uuid '$nameOrUUID' on device $device"
- return 1
- fi
- #warn $(($offsetSectors*512)) # could overflow on 32bit systems
- local offsetBytes=$(echo $| awk -v x=$offsetSectors -v y=$sectorSize '{print x * y}')
-
- # test if mount works directly (problem with btrfs device id)
- #mount -v -o loop,offset=$offsetBytes $device $mountPoint
- losetup -v -o $offsetBytes $loopDevice $device
- echo $loopDevice
-}
+declare -rg DNBD3_SERVER="gateway"
+declare -rg DNBD3_IMAGE="archLinux.qcow2"
+declare -rg DNBD3_RID="0"
+declare -rg DNBD3_DEVICE="/dev/dnbd0"
# Close previous connections to be able to run this script many times.
dnbd3-client --device /dev/dnbd0 --close && \
-dnbd3-client --host gateway --image archLinux.qcow2 --device /dev/dnbd0 && \
+dnbd3-client --host "$DNBD3_SERVER" --image "$DNBD3_IMAGE" --device \
+ "$DNBD3_DEVICE" --rid "$DNBD3_RID" && \
qemu-nbd --connect=/dev/nbd0 /dev/dnbd0 --read-only && \
-local read_only_partition="$(create_partition_via_offset /dev/nbd0 system)" && \
+local read_only_partition="$(utils_create_partition_via_offset \
+ /dev/nbd0 system)" && \
# Make read-only partition writable.
# TODO implement persistent available indicator.
if true; then
diff --git a/builder/dnbd3-rootfs/module-setup.sh b/builder/dnbd3-rootfs/module-setup.sh
index f29a71c9..b2307a77 100755
--- a/builder/dnbd3-rootfs/module-setup.sh
+++ b/builder/dnbd3-rootfs/module-setup.sh
@@ -56,6 +56,12 @@ install() {
inst_hook pre-pivot 00 "$moddir/hooks/pre-pivot/mount-tmp.sh"
+ # endregion
+
+ # region scripts
+
+ inst "$moddir/scripts/utils.sh" "/usr/lib/utils.sh"
+
# endregion
## TODO deprecated
diff --git a/builder/dnbd3-rootfs/scripts/utils.sh b/builder/dnbd3-rootfs/scripts/utils.sh
index 4c0ffee2..95a17af4 100644
--- a/builder/dnbd3-rootfs/scripts/utils.sh
+++ b/builder/dnbd3-rootfs/scripts/utils.sh
@@ -99,3 +99,25 @@ function utils_dependency_check() {
done
return $result
}
+function utils_create_partition_via_offset() {
+ local device="$1"
+ local nameOrUUID="$2"
+ local loopDevice=$(losetup -f)
+
+ local sectorSize=$(blockdev --getbsz $device)
+ local partitionInfo=$(partx --raw --noheadings --output START,NAME,UUID /dev/nbd0 2>/dev/null| grep $nameOrUUID)
+ local offsetSectors=$(echo $partitionInfo | cut -d' ' -f1)
+ if [ -z "$offsetSectors" ]; then
+ warn "could not find partition with label/uuid '$nameOrUUID' on device $device"
+ return 1
+ fi
+ #warn $(($offsetSectors*512)) # could overflow on 32bit systems
+ local offsetBytes=$(echo $| awk -v x=$offsetSectors -v y=$sectorSize '{print x * y}')
+
+ # test if mount works directly (problem with btrfs device id)
+ #mount -v -o loop,offset=$offsetBytes $device $mountPoint
+ losetup -v -o $offsetBytes $loopDevice $device
+ echo $loopDevice
+}
+
+