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_nbd94
1 files changed, 0 insertions, 94 deletions
diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd
deleted file mode 100644
index 588e033..0000000
--- a/archiso/hooks/archiso_pxe_nbd
+++ /dev/null
@@ -1,94 +0,0 @@
-# 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}
-
- [[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso"
-
- mount_handler="archiso_pxe_nbd_mount_handler"
- fi
-}
-
-archiso_pxe_nbd_mount_handler () {
- newroot="${1}"
-
- # Module autoloading like with loop devices does not work, doing manually...
- modprobe nbd 2> /dev/null
- msg ":: Waiting for boot device..."
- while ! poll_device /dev/nbd0 30; do
- echo "ERROR: boot device didn't show up after 30 seconds..."
- echo " Falling back to interactive prompt"
- echo " You can try to fix the problem manually, log out when you are finished"
- 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
- else
- nbd-client ${nbdserver} -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"
- nbd-client -d /dev/nbd0
- else
- pidof nbd-client > /run/nbd_client.pid
- fi
-}