[arch-releng] [RFC] Improvements in PXE boot (add HTTP/FTP support)
Tested and worked fine both HTTP/FTP on differents servers. Feedback is welcomed! There is no resolver on initramfs so only IP is supported (at least for now). Note 1: This work is in a branch that uses mount from util-linux (mkinitcpio-git) Note 2: Due some issue in mkinitcpio in add_binary() you need curl installed in build enviroment. :: Running Hook [archiso_pxe_common] IP-Config: eth0 hardware address 52:54:00:12:34:57 mtu 1500 IP-Config: eth0 guessed broadcast address 192.168.0.255 IP-Config: eth0 guessed nameserver address 192.168.0.218 IP-Config: eth0 complete (from 192.168.0.218): address: 192.168.0.90 broadcast: 192.168.0.255 netmask: 255.255.255.0 gateway: 192.168.0.218 dns0 : 192.168.0.218 dns1 : 0.0.0.0 rootserver: 192.168.0.218 rootpath: filename : :: Running Hook [archiso_pxe_nbd] :: Running Hook [archiso_pxe_curl] :: Getting info of 'http://192.168.0.218/archlinux-2011.11.21-netinstall-i686.iso' :: Mounting /run/archiso/pxe_curl (tmpfs) filesystem, size='201326592' :: Downloading 'http://192.168.0.218/archlinux-2011.11.21-netinstall-i686.iso' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 192M 100 192M 0 0 141M 0 0:00:01 0:00:01 --:--:-- 141M :: Mounting '/dev/disk/by-label/ARCH_201111' to '/run/archiso/bootmnt' :: Device '/dev/disk/by-label/ARCH_201111' mounted successfully.
One hook only setup the network device (archiso_pxe_common) the other setup the NBD client (archiso_pxe_nbd). New bootparam: archiso_pxe_srv=IP Allow to set an IP different from the PXE server. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- README | 10 ++++++- archiso/Makefile | 4 +++ archiso/hooks/archiso_pxe_common | 34 +++++++++++++++++++++++++++ archiso/hooks/archiso_pxe_nbd | 45 +++++++---------------------------- archiso/install/archiso_pxe_common | 24 +++++++++++++++++++ archiso/install/archiso_pxe_nbd | 9 ------- configs/releng/build.sh | 2 +- configs/releng/mkinitcpio.conf | 2 +- 8 files changed, 81 insertions(+), 49 deletions(-) create mode 100644 archiso/hooks/archiso_pxe_common create mode 100644 archiso/install/archiso_pxe_common diff --git a/README b/README index 4588042..0dd2179 100644 --- a/README +++ b/README @@ -63,7 +63,7 @@ INDEX Default: (architecture of running kernel) -** hooks/archiso_pxe_nbd +** hooks/archiso_pxe_common * ip= This parameter is setup automatically by PXELINUX when option "IPAPPEND" is set to 1 or 2 in config. @@ -73,8 +73,13 @@ INDEX when option "IPAPPEND" is set to 2 or 3 in config. BOOTIF=<hardware-address-of-boot-interface> Default: (set via PXELINUX) + +** hooks/archiso_pxe_nbd + * archiso_nbd_name= Set NBD export name used by the server. Default: archiso +* archiso_nbd_srv= Set an IP address where NBD reside. + Default: "${pxeserver}" (The <boot-server-ip from ip=) ** hooks/archiso_loop_mnt @@ -118,8 +123,9 @@ if nothing is specified on command line. + (none) * archiso_loop_mnt + (none) -* archiso_pxe_nbd +* archiso_pxe_common + mkinitcpio-nfs-utils for ipconfig +* archiso_pxe_nbd + nbd for nbd-client * archiso_shutdown + (none) diff --git a/archiso/Makefile b/archiso/Makefile index aa137b8..115a15b 100644 --- a/archiso/Makefile +++ b/archiso/Makefile @@ -16,6 +16,8 @@ install-hooks: install -D -m 644 hooks/archiso_shutdown $(DESTDIR)/lib/initcpio/hooks/archiso_shutdown install -D -m 644 install/archiso_shutdown $(DESTDIR)/lib/initcpio/install/archiso_shutdown install -D -m 644 archiso_pxe_nbd $(DESTDIR)/lib/initcpio/archiso_pxe_nbd + install -D -m 644 hooks/archiso_pxe_common $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_common + install -D -m 644 install/archiso_pxe_common $(DESTDIR)/lib/initcpio/install/archiso_pxe_common install -D -m 644 hooks/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd install -D -m 644 install/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd install -D -m 644 hooks/archiso_loop_mnt $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt @@ -39,6 +41,8 @@ uninstall: rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_shutdown rm -f $(DESTDIR)/lib/initcpio/install/archiso_shutdown rm -f $(DESTDIR)/lib/initcpio/archiso_pxe_nbd + rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_common + rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_common rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt diff --git a/archiso/hooks/archiso_pxe_common b/archiso/hooks/archiso_pxe_common new file mode 100644 index 0000000..cf9fce8 --- /dev/null +++ b/archiso/hooks/archiso_pxe_common @@ -0,0 +1,34 @@ +# vim: set ft=sh: + +run_hook () { + local i net_mac bootif_mac bootif_dev + # These variables will be parsed from /tmp/net-*.conf generated by ipconfig + local DEVICE + local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1 + local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH + local filename + # /tmp/net-*.conf + + if [[ -n "${ip}" ]]; then + if [[ -n "${BOOTIF}" ]]; then + bootif_mac=${BOOTIF#01-} + bootif_mac=${bootif_mac//-/:} + for i in /sys/class/net/*/address; do + read net_mac < ${i} + if [[ "${bootif_mac}" == "${net_mac}" ]]; then + bootif_dev=${i#/sys/class/net/} + bootif_dev=${bootif_dev%/address} + break + fi + done + ip="${ip}::${bootif_dev}" + fi + + # setup network and save some values + ipconfig "ip=${ip}" + + . /tmp/net-*.conf + + pxeserver=${ROOTSERVER} + fi +} diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd index be3db28..07e6fee 100644 --- a/archiso/hooks/archiso_pxe_nbd +++ b/archiso/hooks/archiso_pxe_nbd @@ -1,36 +1,9 @@ # vim: set ft=sh: -run_hook () { - local line i net_mac bootif_mac bootif_dev - # These variables will be parsed from /tmp/net-*.conf generated by ipconfig - local DEVICE - local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1 - local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH - local filename - # /tmp/net-*.conf - - if [ -n "${ip}" ]; then - if [ -n "${BOOTIF}" ]; then - bootif_mac=${BOOTIF#01-} - bootif_mac=${bootif_mac//-/:} - for i in /sys/class/net/*/address; do - read net_mac < ${i} - if [ "${bootif_mac}" == "${net_mac}" ]; then - bootif_dev=${i#/sys/class/net/} - bootif_dev=${bootif_dev%/address} - break - fi - done - ip="${ip}::${bootif_dev}" - fi - - # setup network and save some values - ipconfig "ip=${ip}" - - . /tmp/net-*.conf - - nbdserver=${ROOTSERVER} +run_hook() { + if [[ -n "${ip}" ]]; then [[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso" + [[ -z "${archiso_nbd_srv}" ]] && archiso_nbd_srv="${pxeserver}" mount_handler="archiso_pxe_nbd_mount_handler" fi @@ -49,19 +22,19 @@ 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 mkdir -p /run/archiso diff --git a/archiso/install/archiso_pxe_common b/archiso/install/archiso_pxe_common new file mode 100644 index 0000000..ebf908e --- /dev/null +++ b/archiso/install/archiso_pxe_common @@ -0,0 +1,24 @@ +# vim: set ft=sh: + +build () +{ + MODULES="${MODULES} $(comm -2 -3 <(checked_modules "/drivers/net/" | sort) \ + <(find $MODULEDIR/kernel/drivers/net/{irda,phy,wimax,wireless} \ + -name '*.ko*' \ + -exec bash -c 'printf "%s\n" "${@%%.ko*}" | sed "s@.*/@@;s@-@_@" | sort' _ {} +) \ + | grep -v -e 'ppp_' -e 'plip' -e 'pppoe')" + BINARIES="" + FILES="" + SCRIPT="archiso_pxe_common" + + add_dir /tmp + + add_binary "/lib/initcpio/ipconfig" "/bin/ipconfig" +} + +help () +{ +cat<<HELPEOF + This hook loads the necessary modules for boot via PXE. +HELPEOF +} diff --git a/archiso/install/archiso_pxe_nbd b/archiso/install/archiso_pxe_nbd index c26648c..4227623 100644 --- a/archiso/install/archiso_pxe_nbd +++ b/archiso/install/archiso_pxe_nbd @@ -3,20 +3,11 @@ build () { MODULES="nbd" - MODULES="${MODULES} $(comm -2 -3 <(checked_modules "/drivers/net/" | sort) \ - <(find $MODULEDIR/kernel/drivers/net/{irda,phy,wimax,wireless} \ - -name '*.ko*' \ - -exec bash -c 'printf "%s\n" "${@%%.ko*}" | sed "s@.*/@@;s@-@_@" | sort' _ {} +) \ - | grep -v -e 'ppp_' -e 'plip' -e 'pppoe')" BINARIES="" FILES="" SCRIPT="archiso_pxe_nbd" - add_dir /tmp - add_binary "/usr/sbin/nbd-client" "/bin/nbd-client" - add_binary "/lib/initcpio/ipconfig" "/bin/ipconfig" - add_file "/lib/initcpio/archiso_pxe_nbd" "/archiso_pxe_nbd" } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index ba5cd2a..f6e0070 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -43,7 +43,7 @@ make_customize_root_image() { make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then local _hook - for _hook in archiso archiso_shutdown archiso_pxe_nbd archiso_loop_mnt; do + for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_loop_mnt; do cp /lib/initcpio/hooks/${_hook} ${work_dir}/root-image/lib/initcpio/hooks cp /lib/initcpio/install/${_hook} ${work_dir}/root-image/lib/initcpio/install done diff --git a/configs/releng/mkinitcpio.conf b/configs/releng/mkinitcpio.conf index 72e6b2a..eb0a68a 100644 --- a/configs/releng/mkinitcpio.conf +++ b/configs/releng/mkinitcpio.conf @@ -1,2 +1,2 @@ -HOOKS="base udev memdisk archiso_shutdown archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata virtio usb fw pcmcia filesystems usbinput" +HOOKS="base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd pata scsi sata virtio usb fw pcmcia filesystems usbinput" COMPRESSION="xz" -- 1.7.7.3
It add support for downloading the iso via HTTP/FTP with curl. The ISO is downloaded on /run (tmpfs) and setup a loop dev from it (like in archiso_loop_mnt) It must be located after archiso_pxe_nbd in mkinitcpio.conf, in that way NBD is the default. bootparm: archiso_curl_url=http://192.168.0.7/archlinux/iso/archlinux.iso (absolute form) Use an absolute URL. archiso_curl_url=ftp://${pxeserver}/archlinux/iso/archlinux.iso (relative form) Use the as IP the same server where PXE reside. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- README | 10 +++++++ archiso/Makefile | 4 +++ archiso/hooks/archiso_pxe_curl | 54 ++++++++++++++++++++++++++++++++++++++ archiso/install/archiso_pxe_curl | 18 ++++++++++++ configs/releng/build.sh | 2 +- configs/releng/mkinitcpio.conf | 2 +- 6 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 archiso/hooks/archiso_pxe_curl create mode 100644 archiso/install/archiso_pxe_curl diff --git a/README b/README index 0dd2179..70aaf9e 100644 --- a/README +++ b/README @@ -74,6 +74,7 @@ INDEX BOOTIF=<hardware-address-of-boot-interface> Default: (set via PXELINUX) + ** hooks/archiso_pxe_nbd * archiso_nbd_name= Set NBD export name used by the server. @@ -82,6 +83,13 @@ INDEX Default: "${pxeserver}" (The <boot-server-ip from ip=) +** hooks/archiso_pxe_curl + +* archiso_curl_url= Set an HTTP/FTP URL where ISO is located. + In the IP part if ${pxeserver} is used, PXE IP will be used. + Default: (unset) + + ** hooks/archiso_loop_mnt * img_label= Set the filesystem label where archiso-image.iso. @@ -127,6 +135,8 @@ if nothing is specified on command line. + mkinitcpio-nfs-utils for ipconfig * archiso_pxe_nbd + nbd for nbd-client +* archiso_pxe_curl + + curl for curl * archiso_shutdown + (none) diff --git a/archiso/Makefile b/archiso/Makefile index 115a15b..0dbbbf8 100644 --- a/archiso/Makefile +++ b/archiso/Makefile @@ -20,6 +20,8 @@ install-hooks: install -D -m 644 install/archiso_pxe_common $(DESTDIR)/lib/initcpio/install/archiso_pxe_common install -D -m 644 hooks/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd install -D -m 644 install/archiso_pxe_nbd $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd + install -D -m 644 hooks/archiso_pxe_curl $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_curl + install -D -m 644 install/archiso_pxe_curl $(DESTDIR)/lib/initcpio/install/archiso_pxe_curl install -D -m 644 hooks/archiso_loop_mnt $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt install -D -m 644 install/archiso_loop_mnt $(DESTDIR)/lib/initcpio/install/archiso_loop_mnt @@ -45,6 +47,8 @@ uninstall: rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_common rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_nbd rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd + rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_pxe_curl + rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_curl rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_loop_mnt rm -f $(DESTDIR)/lib/initcpio/install/archiso_loop_mnt rm -rf $(DESTDIR)/usr/share/archiso/ diff --git a/archiso/hooks/archiso_pxe_curl b/archiso/hooks/archiso_pxe_curl new file mode 100644 index 0000000..5c03034 --- /dev/null +++ b/archiso/hooks/archiso_pxe_curl @@ -0,0 +1,54 @@ +# vim: set ft=sh: + +run_hook() { + if [[ -n "${ip}" && -n "${archiso_curl_url}" ]]; then + mount_handler="archiso_pxe_curl_mount_handler" + fi +} + +archiso_pxe_curl_mount_handler () { + newroot="${1}" + + local _curl_iso _dev_loop _pxe_curl_size _k _v + + archiso_curl_url=$(eval echo ${archiso_curl_url}) + + _curl_iso="/run/archiso/pxe_curl/${archiso_curl_url##*/}" + + msg ":: Getting info of '${archiso_curl_url}'" + if ! curl -s -I "${archiso_curl_url}" -o /tmp/archiso_curl_header; then + echo "ERROR: Getting info of '${archiso_curl_url}'" + echo " Falling back to interactive prompt" + echo " You can try to fix the problem manually, log out when you are finished" + launch_interactive_shell + else + while read _k _v; do + if [[ "${_k}" == "Content-Length:" ]]; then + _pxe_curl_size="${_v%?}" # Remove \r (CRLF) + break + fi + done < /tmp/archiso_curl_header + msg ":: Mounting /run/archiso/pxe_curl (tmpfs) filesystem, size='${_pxe_curl_size}'" + mkdir -p /run/archiso/pxe_curl + mount -t tmpfs -o size="${_pxe_curl_size}",mode=0755 pxe_curl /run/archiso/pxe_curl + fi + + msg ":: Downloading '${archiso_curl_url}'" + if ! curl "${archiso_curl_url}" -o "${_curl_iso}"; then + echo "ERROR: Downloading '${archiso_curl_url}'" + echo " Falling back to interactive prompt" + echo " You can try to fix the problem manually, log out when you are finished" + launch_interactive_shell + fi + + _dev_loop=$(losetup -f) + if ! losetup "${_dev_loop}" "${_curl_iso}"; then + echo "ERROR: Setting loopback device '${_dev_loop}'" + echo " for file '${_curl_iso}'" + echo " Falling back to interactive prompt" + echo " You can try to fix the problem manually, log out when you are finished" + launch_interactive_shell + fi + + archiso_mount_handler ${newroot} +} diff --git a/archiso/install/archiso_pxe_curl b/archiso/install/archiso_pxe_curl new file mode 100644 index 0000000..62fc4b8 --- /dev/null +++ b/archiso/install/archiso_pxe_curl @@ -0,0 +1,18 @@ +# vim: set ft=sh: + +build () +{ + MODULES="" + BINARIES="" + FILES="" + SCRIPT="archiso_pxe_curl" + + add_binary "/usr/bin/curl" "/usr/bin/curl" +} + +help () +{ +cat<<HELPEOF + This hook loads the necessary modules for boot via PXE and curl. +HELPEOF +} diff --git a/configs/releng/build.sh b/configs/releng/build.sh index f6e0070..101a56f 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -43,7 +43,7 @@ make_customize_root_image() { make_setup_mkinitcpio() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then local _hook - for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_loop_mnt; do + for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_pxe_curl archiso_loop_mnt; do cp /lib/initcpio/hooks/${_hook} ${work_dir}/root-image/lib/initcpio/hooks cp /lib/initcpio/install/${_hook} ${work_dir}/root-image/lib/initcpio/install done diff --git a/configs/releng/mkinitcpio.conf b/configs/releng/mkinitcpio.conf index eb0a68a..6387982 100644 --- a/configs/releng/mkinitcpio.conf +++ b/configs/releng/mkinitcpio.conf @@ -1,2 +1,2 @@ -HOOKS="base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd pata scsi sata virtio usb fw pcmcia filesystems usbinput" +HOOKS="base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_curl pata scsi sata virtio usb fw pcmcia filesystems usbinput" COMPRESSION="xz" -- 1.7.7.3
maybe add some documentation too. like, how does the http/ftp support work (downloads the full image first?) and how does it compare to nbd (less efficient?) Dieter
On 11/21/2011 04:58 AM, Dieter Plaetinck wrote:
maybe add some documentation too. like, how does the http/ftp support work (downloads the full image first?) and how does it compare to nbd (less efficient?)
Dieter
* download full image to RAM. This is curl only, not fuse with curlftpfs/httpfs. * compared to nbd, well... much much more memory is needed. Also more memory than when using nbd+copytoram, since copytoram only copies needed *.sfs. So for example if you boot with archiso_pxe_curl and fetch "core-dual.iso", ~700MiB of RAM is needed just for the iso, while using nbd+copytoram ~350MiB needed. Maybe, can be added in a near future a switch or hook to download only *.sfs from http/ftp ;) Now logic parts are split (setup network / pxe mount hook), so the doors are open for another archiso_pxe_*. -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On Mon, 21 Nov 2011 08:53:45 -0300 Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> wrote:
On 11/21/2011 04:58 AM, Dieter Plaetinck wrote:
maybe add some documentation too. like, how does the http/ftp support work (downloads the full image first?) and how does it compare to nbd (less efficient?)
Dieter
* download full image to RAM. This is curl only, not fuse with curlftpfs/httpfs. * compared to nbd, well... much much more memory is needed. Also more memory than when using nbd+copytoram, since copytoram only copies needed *.sfs. So for example if you boot with archiso_pxe_curl and fetch "core-dual.iso", ~700MiB of RAM is needed just for the iso, while using nbd+copytoram ~350MiB needed.
Maybe, can be added in a near future a switch or hook to download only *.sfs from http/ftp ;) Now logic parts are split (setup network / pxe mount hook), so the doors are open for another archiso_pxe_*.
I suggest to document these thoughts in the documentation of archiso. Dieter
On 11/21/2011 08:55 AM, Dieter Plaetinck wrote:
On Mon, 21 Nov 2011 08:53:45 -0300 Gerardo Exequiel Pozzi<vmlinuz386@yahoo.com.ar> wrote:
On 11/21/2011 04:58 AM, Dieter Plaetinck wrote:
maybe add some documentation too. like, how does the http/ftp support work (downloads the full image first?) and how does it compare to nbd (less efficient?)
Dieter
* download full image to RAM. This is curl only, not fuse with curlftpfs/httpfs. * compared to nbd, well... much much more memory is needed. Also more memory than when using nbd+copytoram, since copytoram only copies needed *.sfs. So for example if you boot with archiso_pxe_curl and fetch "core-dual.iso", ~700MiB of RAM is needed just for the iso, while using nbd+copytoram ~350MiB needed.
Maybe, can be added in a near future a switch or hook to download only *.sfs from http/ftp ;) Now logic parts are split (setup network / pxe mount hook), so the doors are open for another archiso_pxe_*.
I suggest to document these thoughts in the documentation of archiso.
Dieter
Yes but README is just a reference, a better explanation/tutorial must go to wiki. DRAFT is comming in fews days, (also for recent archiso_pxe_nfs)... -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 11/21/2011 04:58 AM, Dieter Plaetinck wrote:
maybe add some documentation too. like, how does the http/ftp support work (downloads the full image first?) and how does it compare to nbd (less efficient?)
Dieter
I now reworking this that add support for fetching only needed *.sfs. archiso_curl_url=http://192.168.0.7/archlinux/iso/arch.iso <- Fetch the whole ISO (url does not ends in "/") archiso_curl_url=http://192.168.0.7/archlinux/unpacked/ <- Fetch only needed *.sfs (url ends in "/") -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
participants (2)
-
Dieter Plaetinck
-
Gerardo Exequiel Pozzi