diff options
Diffstat (limited to 'archiso/hooks/archiso_pxe_nbd')
-rw-r--r-- | archiso/hooks/archiso_pxe_nbd | 73 |
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 } |