- Hardcode ROOT_URL and OVERLAYROOT in netboot script - Remove cmdline parsing that was failing silently - Simplify boot.ipxe to chain to netboot.ipxe - Add rebuild-initramfs.sh helper script Resolves kernel panic caused by cmdline parsing issues.
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Netboot HTTP root mounting - HARDCODED VALUES - no cmdline parsing
|
|
|
|
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
|
|
|
|
# HARDCODED CONFIGURATION
|
|
ROOT_URL="http://192.168.100.1:8800/filesystem.squashfs"
|
|
OVERLAYROOT="tmpfs"
|
|
MOUNTPOINT=/root
|
|
SQUASHFS_MOUNT=/mnt/squashfs
|
|
OVERLAY_TMPFS=/mnt/overlay
|
|
|
|
# Debug logging to console
|
|
log() {
|
|
echo "$@" > /dev/console 2>&1
|
|
}
|
|
|
|
# Minimal hook functions
|
|
netboot_top() { :; }
|
|
netboot_premount() { :; }
|
|
netboot_bottom() { :; }
|
|
mount_top() { :; }
|
|
mount_premount() { :; }
|
|
mount_bottom() { :; }
|
|
|
|
mountroot() {
|
|
log "NETBOOT: ========================================"
|
|
log "NETBOOT: mountroot() HARDCODED VERSION"
|
|
log "NETBOOT: ROOT_URL=${ROOT_URL}"
|
|
log "NETBOOT: ========================================"
|
|
|
|
# Load network module
|
|
/sbin/modprobe af_packet
|
|
|
|
# Wait for udev
|
|
wait_for_udev 10
|
|
|
|
# Configure networking via DHCP
|
|
log "NETBOOT: Calling configure_networking..."
|
|
configure_networking
|
|
|
|
# Check we got an IP
|
|
log "NETBOOT: Checking for IP address..."
|
|
if ! ip addr show | grep -q "inet "; then
|
|
log "NETBOOT: FATAL - no IP address"
|
|
return 1
|
|
fi
|
|
log "NETBOOT: Network is up"
|
|
|
|
# Download squashfs
|
|
log "NETBOOT: Downloading ${ROOT_URL}..."
|
|
if ! wget -O /filesystem.squashfs "${ROOT_URL}"; then
|
|
log "NETBOOT: FATAL - wget failed"
|
|
return 1
|
|
fi
|
|
log "NETBOOT: Download complete"
|
|
|
|
# Create mount points
|
|
mkdir -p "${SQUASHFS_MOUNT}" "${OVERLAY_TMPFS}"
|
|
|
|
# Mount squashfs
|
|
log "NETBOOT: Mounting squashfs..."
|
|
if ! mount -t squashfs /filesystem.squashfs "${SQUASHFS_MOUNT}" -o ro; then
|
|
log "NETBOOT: FATAL - squashfs mount failed"
|
|
return 1
|
|
fi
|
|
|
|
# Mount tmpfs for overlay
|
|
log "NETBOOT: Mounting tmpfs..."
|
|
if ! mount -t tmpfs -o size=2G tmpfs "${OVERLAY_TMPFS}"; then
|
|
log "NETBOOT: FATAL - tmpfs mount failed"
|
|
return 1
|
|
fi
|
|
mkdir -p "${OVERLAY_TMPFS}/upper" "${OVERLAY_TMPFS}/work"
|
|
|
|
# Mount overlay
|
|
log "NETBOOT: Mounting overlay..."
|
|
if ! mount -t overlay -o "lowerdir=${SQUASHFS_MOUNT},upperdir=${OVERLAY_TMPFS}/upper,workdir=${OVERLAY_TMPFS}/work" overlay "${MOUNTPOINT}"; then
|
|
log "NETBOOT: FATAL - overlay mount failed"
|
|
return 1
|
|
fi
|
|
|
|
log "NETBOOT: SUCCESS - root mounted at ${MOUNTPOINT}"
|
|
return 0
|
|
}
|