summaryrefslogtreecommitdiff
path: root/archiso/hooks/archiso_pxe_nbd
diff options
context:
space:
mode:
Diffstat (limited to 'archiso/hooks/archiso_pxe_nbd')
-rw-r--r--archiso/hooks/archiso_pxe_nbd73
1 files changed, 12 insertions, 61 deletions
diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd
index 588e033..6147d06 100644
--- a/archiso/hooks/archiso_pxe_nbd
+++ b/archiso/hooks/archiso_pxe_nbd
@@ -1,60 +1,9 @@
# vim: set ft=sh:
-run_hook () {
- local line i address netmask gateway dns0 dns1 rootserver rootpath filename
- : > /ip_opts
-
- if [ -n "${ip}" ]; then
- if [ -n "${BOOTIF}" ]; then
- bootif_mac=${BOOTIF#01-}
- bootif_mac=${bootif_mac//-/:}
- bootif_dev=$(grep -l $bootif_mac /sys/class/net/*/address)
- bootif_dev=${bootif_dev#/sys/class/net/}
- bootif_dev=${bootif_dev%/address}
- ip="$ip::$bootif_dev"
- fi
-
- # setup network and save some values
- ipconfig "ip=${ip}" | while read line; do
- # echo ":: ${line}"
- if [ "${line#"IP-Config:"}" != "${line}" ]; then
- continue
- fi
- line="$(echo ${line} | sed -e 's/ :/:/g;s/: /=/g')"
- for i in ${line}; do
- case "${i}" in
- address=*)
- echo "${i}" >> /ip_opts
- ;;
- netmask=*)
- echo "${i}" >> /ip_opts
- ;;
- gateway=*)
- echo "${i}" >> /ip_opts
- ;;
- dns0=*)
- echo "${i}" >> /ip_opts
- ;;
- dns1=*)
- echo "${i}" >> /ip_opts
- ;;
- rootserver=*)
- echo "${i}" >> /ip_opts
- ;;
- rootpath=*)
- echo "${i}" >> /ip_opts
- ;;
- esac
- done
- done
-
- . /ip_opts
-
- echo "IP-Config: ${address}/${netmask}"
- echo "IP-Config: gw: ${gateway} dns0: ${dns0} dns1: ${dns1}"
-
- nbdserver=${rootserver}
+run_hook() {
+ if [[ -n "${ip}" && -n "${archiso_nbd_srv}" ]]; then
+ archiso_nbd_srv=$(eval echo ${archiso_nbd_srv})
[[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso"
mount_handler="archiso_pxe_nbd_mount_handler"
@@ -74,21 +23,23 @@ archiso_pxe_nbd_mount_handler () {
launch_interactive_shell
done
- msg "::: Setup NBD from ${nbdserver} at /dev/nbd0"
- if [ "${copytoram}" = "y" ]; then
- nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0
+ msg ":: Setup NBD from ${archiso_nbd_srv} at /dev/nbd0"
+ if [[ "${copytoram}" = "y" ]]; then
+ nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} /dev/nbd0
else
- nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0 -persist
+ nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} /dev/nbd0 -persist
fi
archisodevice=/dev/nbd0
archiso_mount_handler ${newroot}
- if [ "${copytoram}" = "y" ]; then
- msg "::: Disconnect NBD from ${nbdserver} at /dev/nbd0"
+ if [[ "${copytoram}" = "y" ]]; then
+ msg ":: Disconnect NBD from ${archiso_nbd_srv} at /dev/nbd0"
nbd-client -d /dev/nbd0
else
- pidof nbd-client > /run/nbd_client.pid
+ mkdir -p /run/archiso
+ pidof nbd-client > /run/archiso/nbd_client.pid
+ cp /archiso_pxe_nbd ${newroot}/etc/rc.d/functions.d/
fi
}