This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Any way to PXE boot KDE Neon via HTTP?

Tags: None
(comma "," separated)
CyberAngel
Registered Member
Posts
49
Karma
0
Is there any way to PXE boot KDE Neon and download the filesystem.squashfs via HTTP similar to the way described here: https://www.offensive-security.com/kali ... live-http/ for Kali Linux?

From the casper man page: http://manpages.ubuntu.com/manpages/xen ... per.7.html I only see an nfs and cifs option for netboot.
CyberAngel
Registered Member
Posts
49
Karma
0
I found a solution from here if anyone is interested.

Indeed casper doesn't support HTTP, but we can easily add support for that with the following short patch in the casper script:

Code: Select all
--- scripts/casper.orig 2016-10-05 19:07:11.000000000 +0200
+++ scripts/casper      2016-10-05 19:26:58.000000000 +0200
@@ -33,6 +33,10 @@ fi
 parse_cmdline() {
     for x in $(cat /proc/cmdline); do
         case $x in
+            netboot=*)
+                export NETBOOT="${x#netboot=}";;
+            fetch=*)
+                export URL="${x#fetch=}";;
             showmounts|show-cow)
                 export SHOWMOUNTS='Yes' ;;
             persistent)
@@ -212,20 +216,31 @@ do_netmount() {
         NFSROOT=${ROOTSERVER}:${ROOTPATH}
     fi
 
-    [ "$quiet" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}"
-
-    if [ "${NETBOOT}" != "nfs" ] && do_cifsmount ; then
-        rc=0
-    elif do_nfsmount ; then
-        NETBOOT="nfs"
-        export NETBOOT
-        rc=0
-    fi
+    case ${NETBOOT} in
+        nfs)
+            [ "$quiet" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}"
+            if do_nfsmount ; then rc=0; fi     ;;
+        cifs)
+            [ "$quiet" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}"
+            if do_cifsmount ; then rc=0; fi ;;
+        http)
+            [ "$quiet" != "y" ] && log_begin_msg "Trying netboot from ${URL}"
+            if do_httpmount ; then rc=0; fi ;;
+    esac
 
     [ "$quiet" != "y" ] && log_end_msg
     return ${rc}
 }
 
+do_httpmount() {
+    rc=1
+    mkdir -p ${mountpoint}
+    mount -t tmpfs -o size=`wget ${URL} --spider --server-response -O - 2>&1 | sed -ne '/Content-Length/{s/.*: //;p}'` tmpfs ${mountpoint}
+    mkdir -p ${mountpoint}/casper
+    if wget ${URL} -O ${mountpoint}/casper/root.squashfs; then rc=0; fi
+    return ${rc}
+}
+
 do_nfsmount() {
     rc=1
     modprobe "${MP_QUIET}" nfs


The procedure:

Copy in a directory where you have write access to, the file initrd.lz from the casper folder that is found in the KDE Neon ISO.

Then execute the following commands to apply the patch and generate a new initrd.lz that we will call http-initrd.lz

Code: Select all
mkdir initrd
cd initrd
lzma -dc -S .lz ../initrd.lz | cpio -id

echo 'LS0tIHNjcmlwdHMvY2FzcGVyLm9yaWcJMjAxNi0xMC0wNSAxOTowNzoxMS4wMDAwMDAwMDAgKzAy
MDAKKysrIHNjcmlwdHMvY2FzcGVyCTIwMTYtMTAtMDUgMTk6MjY6NTguMDAwMDAwMDAwICswMjAw
CkBAIC0zMyw2ICszMywxMCBAQCBmaQogcGFyc2VfY21kbGluZSgpIHsKICAgICBmb3IgeCBpbiAk
KGNhdCAvcHJvYy9jbWRsaW5lKTsgZG8KICAgICAgICAgY2FzZSAkeCBpbgorICAgICAgICAgICAg
bmV0Ym9vdD0qKQorICAgICAgICAgICAgICAgIGV4cG9ydCBORVRCT09UPSIke3gjbmV0Ym9vdD19
Ijs7CisgICAgICAgICAgICBmZXRjaD0qKQorICAgICAgICAgICAgICAgIGV4cG9ydCBVUkw9IiR7
eCNmZXRjaD19Ijs7CiAgICAgICAgICAgICBzaG93bW91bnRzfHNob3ctY293KQogICAgICAgICAg
ICAgICAgIGV4cG9ydCBTSE9XTU9VTlRTPSdZZXMnIDs7CiAgICAgICAgICAgICBwZXJzaXN0ZW50
KQpAQCAtMjEyLDIwICsyMTYsMzEgQEAgZG9fbmV0bW91bnQoKSB7CiAgICAgICAgIE5GU1JPT1Q9
JHtST09UU0VSVkVSfToke1JPT1RQQVRIfQogICAgIGZpCiAKLSAgICBbICIkcXVpZXQiICE9ICJ5
IiBdICYmIGxvZ19iZWdpbl9tc2cgIlRyeWluZyBuZXRib290IGZyb20gJHtORlNST09UfSIKLQot
ICAgIGlmIFsgIiR7TkVUQk9PVH0iICE9ICJuZnMiIF0gJiYgZG9fY2lmc21vdW50IDsgdGhlbgot
ICAgICAgICByYz0wCi0gICAgZWxpZiBkb19uZnNtb3VudCA7IHRoZW4KLSAgICAgICAgTkVUQk9P
VD0ibmZzIgotICAgICAgICBleHBvcnQgTkVUQk9PVAotICAgICAgICByYz0wCi0gICAgZmkKKyAg
ICBjYXNlICR7TkVUQk9PVH0gaW4gCisgICAgICAgIG5mcykKKyAgICAgICAgICAgIFsgIiRxdWll
dCIgIT0gInkiIF0gJiYgbG9nX2JlZ2luX21zZyAiVHJ5aW5nIG5ldGJvb3QgZnJvbSAke05GU1JP
T1R9IgorICAgICAgICAgICAgaWYgZG9fbmZzbW91bnQgOyB0aGVuIHJjPTA7IGZpIAk7OworICAg
ICAgICBjaWZzKQorICAgICAgICAgICAgWyAiJHF1aWV0IiAhPSAieSIgXSAmJiBsb2dfYmVnaW5f
bXNnICJUcnlpbmcgbmV0Ym9vdCBmcm9tICR7TkZTUk9PVH0iCisgICAgICAgICAgICBpZiBkb19j
aWZzbW91bnQgOyB0aGVuIHJjPTA7IGZpIDs7CisgICAgICAgIGh0dHApCisgICAgICAgICAgICBb
ICIkcXVpZXQiICE9ICJ5IiBdICYmIGxvZ19iZWdpbl9tc2cgIlRyeWluZyBuZXRib290IGZyb20g
JHtVUkx9IgorICAgICAgICAgICAgaWYgZG9faHR0cG1vdW50IDsgdGhlbiByYz0wOyBmaSA7Owor
ICAgIGVzYWMKIAogICAgIFsgIiRxdWlldCIgIT0gInkiIF0gJiYgbG9nX2VuZF9tc2cKICAgICBy
ZXR1cm4gJHtyY30KIH0KIAorZG9faHR0cG1vdW50KCkgeworICAgIHJjPTEKKyAgICBta2RpciAt
cCAke21vdW50cG9pbnR9CisgICAgbW91bnQgLXQgdG1wZnMgLW8gc2l6ZT1gd2dldCAke1VSTH0g
LS1zcGlkZXIgLS1zZXJ2ZXItcmVzcG9uc2UgLU8gLSAyPiYxIHwgc2VkIC1uZSAnL0NvbnRlbnQt
TGVuZ3RoL3tzLy4qOiAvLztwfSdgIHRtcGZzICR7bW91bnRwb2ludH0KKyAgICBta2RpciAtcCAk
e21vdW50cG9pbnR9L2Nhc3BlcgorICAgIGlmIHdnZXQgJHtVUkx9IC1PICR7bW91bnRwb2ludH0v
Y2FzcGVyL3Jvb3Quc3F1YXNoZnM7IHRoZW4gcmM9MDsgZmkKKyAgICByZXR1cm4gJHtyY30KK30K
KwogZG9fbmZzbW91bnQoKSB7CiAgICAgcmM9MQogICAgIG1vZHByb2JlICIke01QX1FVSUVUfSIg
bmZzCg==' | base64 --decode > casper_http.patch

patch -p0 < casper_http.patch
rm casper_http.patch

find . | cpio --quiet -o -H newc | lzma -5 > ../http-initrd.lz

cd ..
rm -rf initrd
rm -f initrd.lz


Eventually, copy the files vmlinuz from the casper folder, and http-initrd.lz you just generated, in your tftpboot directory and add the following boot lines in your pxelinux.cfg/default file:

Code: Select all
MENU BEGIN neonuseredition
        MENU TITLE KDE Neon
        LABEL Main Menu
                MENU LABEL ^Back..
                MENU EXIT
        LABEL KDE Neon User Edition Live/Setup (Requires 2GB Min RAM)
                linux images/neon-useredition/vmlinuz
                initrd images/neon-useredition/http-initrd.lz
                append boot=casper netboot=http fetch=http://<web-server-ip>/filesystem.squashfs
MENU END


Also copy the file filesystem.squashfs file in a web server, and try PXE-http-booting your KDE Neon Live session.


Bookmarks



Who is online

Registered users: bancha, Bing [Bot], Evergrowing, Google [Bot], lockheed, mesutakcan, mickae, Sogou [Bot]