mirror of
https://github.com/pi-farm/Docker-PXE-Server.git
synced 2025-12-10 02:08:26 +00:00
Merge pull request #2 from beta-tester/master
This commit is contained in:
@@ -13,7 +13,7 @@ run: "bash start.sh"
|
|||||||
5. restart your pc
|
5. restart your pc
|
||||||
6. run "bash start.sh" again an choose (u) for update
|
6. run "bash start.sh" again an choose (u) for update
|
||||||
|
|
||||||
afer that, your pc is ready
|
after that, your docker-container is ready
|
||||||
|
|
||||||
|
|
||||||
to check, if the volumes are mounted, go into the running container:
|
to check, if the volumes are mounted, go into the running container:
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# ... break=premount
|
||||||
# ... break=init
|
# ... break=init
|
||||||
# ... debug
|
# ... debug
|
||||||
#
|
#
|
||||||
@@ -7,8 +8,10 @@
|
|||||||
# $ ls /tmp/test/bin/live-*
|
# $ ls /tmp/test/bin/live-*
|
||||||
# $ ls -r /tmp/test/lib/live/*
|
# $ ls -r /tmp/test/lib/live/*
|
||||||
|
|
||||||
|
# 2024-02-27 for tails 6.0, renamed to all-net-blocklist.conf
|
||||||
|
# 2024-02-27 for tails 6.0, updated path from /lib/modules/ to /usr/lib/modules/
|
||||||
# 2023-09-11 skip network de-init on boot option "break=init" to keep network alive for debugging
|
# 2023-09-11 skip network de-init on boot option "break=init" to keep network alive for debugging
|
||||||
# 2021-11-07 /conf/net_drivers.tar.xz, /conf/conf.d/9999-hotfix-pxe, /etc/live/boot/9999-hotfix-pxe
|
# 2021-11-07 /conf/net_drivers.tar.xz, /conf/conf.d/zzzz-hotfix-pxe, /etc/live/boot/zzzz-hotfix-pxe
|
||||||
|
|
||||||
# requires:
|
# requires:
|
||||||
# squashfs-tools (unsquashfs)
|
# squashfs-tools (unsquashfs)
|
||||||
@@ -27,25 +30,25 @@ DST=/srv/nfs/tails-x64-hotfix-pxe.cpio.xz
|
|||||||
|
|
||||||
if [[ -z "${TMP}" ]] || [[ -z "${SRC}" ]] || [[ -z "${DST}" ]]; then
|
if [[ -z "${TMP}" ]] || [[ -z "${SRC}" ]] || [[ -z "${DST}" ]]; then
|
||||||
echo "ERROR: undefined variable"
|
echo "ERROR: undefined variable"
|
||||||
exit -1
|
return -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! [[ -d "$(dirname ${TMP:?})" ]] && ! [[ -r "${SRC:?}" ]] && ! [[ -d "$(dirname ${DST:?})" ]]; then
|
if ! [[ -d "$(dirname ${TMP:?})" ]] && ! [[ -r "${SRC:?}" ]] && ! [[ -d "$(dirname ${DST:?})" ]]; then
|
||||||
echo "ERROR: wrong file or folder"
|
echo "ERROR: wrong file or folder"
|
||||||
exit -2
|
return -2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# kernel version of tails
|
# kernel version of tails
|
||||||
KVER=$(basename $(unsquashfs -l "${SRC:?}" -e /lib/modules/ | grep /lib/modules/ | head -n 1))
|
KVER=$(basename $(unsquashfs -l "${SRC:?}" -e /usr/lib/modules/ | grep /usr/lib/modules/ | head -n 1))
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
|
|
||||||
# test if kernel version is correct
|
# test if kernel version is correct
|
||||||
if [[ -n "${KVER}" ]]; then
|
if [[ -n "${KVER}" ]]; then
|
||||||
echo "INFO: KVER='${KVER:?}'"
|
echo "INFO: KVER='${KVER:?}'"
|
||||||
else
|
else
|
||||||
echo "ERROR: unknown kernel version"
|
echo "ERROR: unknown kernel version"
|
||||||
exit -3
|
return -3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
do_modules() {
|
do_modules() {
|
||||||
@@ -53,24 +56,26 @@ do_modules() {
|
|||||||
sudo unsquashfs \
|
sudo unsquashfs \
|
||||||
-d "${TMP:?}" \
|
-d "${TMP:?}" \
|
||||||
-f "${SRC:?}" \
|
-f "${SRC:?}" \
|
||||||
-e "/lib/modules/${KVER:?}/kernel/drivers/net/phy" \
|
-e "/usr/lib/modules/${KVER:?}/kernel/drivers/net/phy" \
|
||||||
-e "/lib/modules/${KVER:?}/kernel/drivers/net/ethernet" \
|
-e "/usr/lib/modules/${KVER:?}/kernel/drivers/net/ethernet" \
|
||||||
;
|
;
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && exit -4
|
||||||
|
|
||||||
# compress missing network kernel drivers modules to file
|
# compress missing network kernel drivers modules to file
|
||||||
[[ -e "${TMP:?}/conf/" ]] || sudo mkdir -p "${TMP:?}/conf/"
|
[[ -e "${TMP:?}/conf/" ]] || sudo mkdir -p "${TMP:?}/conf/"
|
||||||
sudo tar -ravf "${TMP:?}/conf/net_drivers.tar.xz" -C "${TMP:?}" "lib"
|
sudo tar -ravf "${TMP:?}/conf/net_drivers.tar.xz" -C "${TMP:?}" "usr/lib"
|
||||||
sudo rm -rf "${TMP:?}/lib"
|
sudo rm -rf "${TMP:?}/usr/lib"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_patch_top() {
|
do_patch_top() {
|
||||||
# add hotfix for pxe boot to initrd image
|
# add hotfix for pxe boot to initrd image
|
||||||
[[ -e "${TMP:?}/conf/conf.d/" ]] || sudo mkdir -p "${TMP:?}/conf/conf.d/"
|
[[ -e "${TMP:?}/conf/conf.d/" ]] || sudo mkdir -p "${TMP:?}/conf/conf.d/"
|
||||||
cat << EOF | sudo tee "${TMP:?}/conf/conf.d/9999-hotfix-pxe" &>/dev/null
|
cat << EOF | sudo tee "${TMP:?}/conf/conf.d/zzzz-hotfix-pxe" &>/dev/null
|
||||||
#!/usr/bin/sh
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
patch_top()
|
||||||
|
{
|
||||||
# check if we dealing with same kernel version
|
# check if we dealing with same kernel version
|
||||||
if [ "\$(uname -r)" != "${KVER:?}" ]; then
|
if [ "\$(uname -r)" != "${KVER:?}" ]; then
|
||||||
. /scripts/functions
|
. /scripts/functions
|
||||||
@@ -79,7 +84,7 @@ if [ "\$(uname -r)" != "${KVER:?}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# comment out all blacklist entries
|
# comment out all blacklist entries
|
||||||
sed "s/^install/# install/g" -i /etc/modprobe.d/all-net-blacklist.conf
|
sed "s/^install/# install/g" -i /etc/modprobe.d/all-net-blocklist.conf
|
||||||
|
|
||||||
# replace wget script by busybox, for normal behavior
|
# replace wget script by busybox, for normal behavior
|
||||||
mv /usr/bin/wget /usr/bin/wget.bak
|
mv /usr/bin/wget /usr/bin/wget.bak
|
||||||
@@ -90,22 +95,27 @@ mv /usr/sbin/depmod /usr/sbin/depmod.bak
|
|||||||
ln -sf /usr/bin/kmod /usr/sbin/depmod
|
ln -sf /usr/bin/kmod /usr/sbin/depmod
|
||||||
|
|
||||||
# excract the compressed drivers in place
|
# excract the compressed drivers in place
|
||||||
tar -xf "/conf/net_drivers.tar.xz" -C /usr/
|
tar -xf "/conf/net_drivers.tar.xz" -C /
|
||||||
|
|
||||||
# rebulid dependencies for added network kernel drivers modules
|
# rebulid dependencies for added network kernel drivers modules
|
||||||
depmod -b /usr
|
depmod -b /usr
|
||||||
|
|
||||||
|
# enqueue hot fix for patch_bottom
|
||||||
|
echo '/scripts/init-bottom/zzzz-hotfix-pxe' | tee -a /scripts/init-bottom/ORDER
|
||||||
|
}
|
||||||
|
|
||||||
|
patch_top
|
||||||
EOF
|
EOF
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
sudo chmod +x "${TMP:?}/conf/conf.d/9999-hotfix-pxe"
|
sudo chmod +x "${TMP:?}/conf/conf.d/zzzz-hotfix-pxe"
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
}
|
}
|
||||||
|
|
||||||
do_patch_bottom() {
|
do_patch_bottom() {
|
||||||
[[ -e "${TMP:?}/etc/live/boot/" ]] || sudo mkdir -p "${TMP:?}/etc/live/boot/"
|
[[ -e "${TMP:?}/scripts/init-bottom/" ]] || sudo mkdir -p "${TMP:?}/scripts/init-bottom/"
|
||||||
cat << EOF | sudo tee "${TMP:?}/etc/live/boot/9999-hotfix-pxe" &>/dev/null
|
cat << EOF | sudo tee "${TMP:?}/scripts/init-bottom/zzzz-hotfix-pxe" &>/dev/null
|
||||||
#!/usr/bin/sh
|
#!/usr/bin/sh
|
||||||
|
patch_bottom()
|
||||||
local_bottom ()
|
|
||||||
{
|
{
|
||||||
if ! [ -n "\$break" ]; then
|
if ! [ -n "\$break" ]; then
|
||||||
# hotfix-pxe for issue with network initialisation in tails
|
# hotfix-pxe for issue with network initialisation in tails
|
||||||
@@ -129,10 +139,12 @@ local_bottom ()
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
patch_bottom
|
||||||
EOF
|
EOF
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
sudo chmod +x "${TMP:?}/etc/live/boot/9999-hotfix-pxe"
|
sudo chmod +x "${TMP:?}/scripts/init-bottom/zzzz-hotfix-pxe"
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -140,10 +152,10 @@ do_initrd() {
|
|||||||
# create an initrd image to overlay at boot time
|
# create an initrd image to overlay at boot time
|
||||||
sudo rm "${DST:?}"
|
sudo rm "${DST:?}"
|
||||||
cd "${TMP:?}"
|
cd "${TMP:?}"
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
find . -type f -print0 | cpio --null --create --verbose --format=newc \
|
find . -type f -print0 | cpio --null --create --verbose --format=newc \
|
||||||
| xz --compress --extreme --check=crc32 | sudo tee "${DST:?}" &>/dev/null
|
| xz --compress --extreme --check=crc32 | sudo tee "${DST:?}" &>/dev/null
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
cd -
|
cd -
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +163,7 @@ cd -
|
|||||||
do_cleanup() {
|
do_cleanup() {
|
||||||
# clean up temporary files
|
# clean up temporary files
|
||||||
sudo rm -rf "${TMP:?}"
|
sudo rm -rf "${TMP:?}"
|
||||||
(( $? != 0 )) && exit -4
|
(( $? != 0 )) && return -4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user