# vim: set ft=sh: run_hook () { local line i address netmask gateway dns0 dns1 rootserver rootpath filename : > /ip_opts if [ -n "${ip}" ]; then # 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}" modprobe nbd 2> /dev/null msg ":: Waiting for boot device..." while ! poll_device /dev/nbd0 10; do echo "ERROR: boot device didn't show up after 10 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 ${rootserver}:9040 at /dev/nbd0 ..." nbd-client ${rootserver} 9040 /dev/nbd0 -persist archisodevice=/dev/nbd0 fi }