index : archiso32 | |
Archlinux32 iso tools | gitolite user |
summaryrefslogtreecommitdiff |
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2010-03-17 23:23:13 -0300 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2010-03-18 01:01:13 -0300 |
commit | fffe690a7361b8e36bf67db1a1ad1dc524489e67 (patch) | |
tree | 0675df2cf3a5c687a48a0d6395adde9396bab325 /archiso/hooks/archiso_pxe_nbd | |
parent | 2c00b5508db31d57f2eec3bc149b4e7dbf193a25 (diff) |
-rw-r--r-- | archiso/hooks/archiso_pxe_nbd | 63 |
diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd new file mode 100644 index 0000000..9df5a95 --- /dev/null +++ b/archiso/hooks/archiso_pxe_nbd @@ -0,0 +1,63 @@ +# 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 +} |