Some awesome ideas there, buddy! Sorry for not posting all of the configs... I didn't want you to run away on the amount of content I put in the post... but since you asked, here is how I made the init file. These are basically the same steps on:
http://eduardo-lago.blogspot.com/201...-diskless.html
But they are my exact notes since I didn't follow the howto exactly, but pretty close:
**********************************************************************
//Create a compressed filesystem....
// Create a work zone
[root@sdserver cent]# cd
[root@sdserver ~]# mkdir -p /tmp/cache
[root@sdserver ~]# mkdir /tmp/wrk
[root@sdserver ~]# pushd /tmp/wrk
/tmp/wrk ~
// Create and enter initramfs root directory
[root@sdserver wrk]# mkdir initramfs
[root@sdserver wrk]# ls
initramfs
[root@sdserver wrk]# pwd
/tmp/wrk
[root@sdserver wrk]# pushd initramfs/
/tmp/wrk/initramfs /tmp/wrk ~
[root@sdserver initramfs]# pwd
/tmp/wrk/initramfs
// Create filesystem base directories
[root@sdserver initramfs]# mkdir -p -m 0755 dev etc/{,init,sysconfig} mnt sys usr/{,local} var/{,www,log,lib,cache} run
[root@sdserver initramfs]# mkdir -p -m 0555 {,s}bin lib{,32,64} proc usr/{,s}bin
[root@sdserver initramfs]# mkdir -p -m 0700 root
[root@sdserver initramfs]# mkdir -p -m 1777 tmp
[root@sdserver initramfs]# pushd var
/tmp/wrk/initramfs/var /tmp/wrk/initramfs /tmp/wrk ~
[root@sdserver var]# ln -s ../run run
[root@sdserver var]# popd
/tmp/wrk/initramfs /tmp/wrk ~
// Create /etc/profile to exports environ. variables
[root@sdserver initramfs]# dd of=/etc/profile << EOT
> export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin
> EOT
0+1 records in
0+1 records out
59 bytes (59 B) copied, 0.000161676 s, 365 kB/s
// Create /etc/fstab with mount points
[root@sdserver initramfs]# dd of=etc/fstab << EOT
> devpts /dev/pts devpts nosuid,noexec,gid=5,mode=0620 0 0
> tmpfs /dev/shm tmpfs nosuid,nodev,mode=0755 0 0
> sysfs /sys sysfs nosuid,nodev,noexec 0 0
> proc /proc proc nosuid,nodev,noexec 0 0
> EOT
0+1 records in
0+1 records out
303 bytes (303 B) copied, 6.0199e-05 s, 5.0 MB/s
[root@sdserver initramfs]# vi /etc/fstab
/dev/mapper/vg_sdserver-lv_root / ext4 defaults 1 1
UUID=eb47573a-3ae0-4854-a13b-af4c091e3fd4 /boot ext4 defaults 1 2
/dev/mapper/vg_sdserver-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_sdserver-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
[root@sdserver initramfs]# chmod 0644 etc/fstab
// Config passwd & group settings
[root@sdserver initramfs]# dd of=etc/passwd << EOT
> root:x:0:0:root:/root:/bin/sh
> nobody:x:99:99:NoBody:/none:/bin/false
> www:x:33:33:HTTP Server:/var/www:/bin/false
> EOT
0+1 records in
0+1 records out
113 bytes (113 B) copied, 5.8441e-05 s, 1.9 MB/s
[root@sdserver initramfs]# dd of=etc/group << EOT
> root:x:0:
> nobody:x:99:
> www:x:33:
> EOT
0+1 records in
0+1 records out
33 bytes (33 B) copied, 6.7918e-05 s, 486 kB/s
// Configure some host related settings:
[root@sdserver initramfs]# dd of=etc/host.conf <<< "multi on"
0+1 records in
0+1 records out
9 bytes (9 B) copied, 5.3581e-05 s, 168 kB/s
[root@sdserver initramfs]# dd of=etc/hostname <<< "rambox"
0+1 records in
0+1 records out
7 bytes (7 B) copied, 5.5115e-05 s, 127 kB/s
[root@sdserver initramfs]# dd of=etc/hosts << EOT
> 127.0.0.1 localhost.localdomain localhost
> 127.0.0.1 $(cat etc/hostname)
> EOT
0+1 records in
0+1 records out
59 bytes (59 B) copied, 6.125e-05 s, 963 kB/s
// Configure timezone:
[root@sdserver initramfs]# dd of=etc/timezone <<< "America/Phoenix"
0+1 records in
0+1 records out
16 bytes (16 B) copied, 5.2888e-05 s, 303 kB/s
[root@sdserver initramfs]# cp /usr/share/zoneinfo/$(cat etc/timezone) etc/localtime
// Getting busybox and create sh symbolic link:
[root@sdserver initramfs]# pushd bin
[root@sdserver bin]# dirs -v
0 /tmp/wrk/initramfs/bin
1 /tmp/wrk/initramfs
2 /tmp/wrk
3 ~
[root@sdserver bin]# chmod +w .
[root@sdserver bin]# bb=busybox-x86_64 && wget $bb
http://www.busybox.net/downloads/bin...busybox-x86_64
--2013-07-03 00:10:33--
http://busybox-x86_64/
Resolving busybox-x86_64... failed: Name or service not known.
wget: unable to resolve host address “busybox-x86_64”
--2013-07-03 00:10:33--
http://www.busybox.net/downloads/bin...busybox-x86_64
Resolving
www.busybox.net... 140.211.167.224
Connecting to
www.busybox.net|140.211.167.224|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1089864 (1.0M) [text/plain]
Saving to: “busybox-x86_64”
100%[======================================>] 1,089,864 648K/s in 1.6s
2013-07-03 00:10:35 (648 KB/s) - “busybox-x86_64” saved [1089864/1089864]
FINISHED --2013-07-03 00:10:35--
Downloaded: 1 files, 1.0M in 1.6s (648 KB/s)
[root@sdserver bin]# cp busybox-x86_64 busybox && chmod +x busybox
[root@sdserver bin]# cp busybox /tmp/cache/busybox && chmod +x /tmp/cache/busybox
[root@sdserver bin]# ln -s busybox sh
[root@sdserver bin]# chmod -w .
[root@sdserver bin]# dirs -v
0 /tmp/wrk/initramfs/bin
1 /tmp/wrk/initramfs
2 /tmp/wrk
3 ~
[root@sdserver bin]# popd
/tmp/wrk/initramfs /tmp/wrk ~
// create an script named renew_ip as our DHCP script
[root@sdserver initramfs]# pushd bin
/tmp/wrk/initramfs/bin /tmp/wrk/initramfs /tmp/wrk ~
[root@sdserver bin]# chmod +w .
[root@sdserver bin]# wget
http://git.busybox.net/busybox/plain.../simple.script
[root@sdserver bin]# cp simple.script /tmp/cache/simple.script
[root@sdserver bin]# chmod +x simple.script
[root@sdserver bin]# dd of=renew_ip << EOT
> #!/bin/sh
>
> ifconfig eth0 up
[root@sdserver bin]# dd of=renew_ip << EOT
> udhcpc -t 5 -q -s /bin/simple.script
> EOT
0+1 records in
0+1 records out
37 bytes (37 B) copied, 9.3154e-05 s, 397 kB/s
[root@sdserver bin]# chmod +x renew_ip
[root@sdserver bin]# chmod -w .
[root@sdserver bin]# popd
/tmp/wrk/initramfs /tmp/wrk ~
// launching the shell or by executing our own /sbin/init w/o remounting the
// root (/)
[root@sdserver initramfs]# vi init
#!/bin/sh
. /etc/profile
/bin/busybox --install -s
mkdir dev/pts
mkdir dev/shm
chmod 1777 dev/shm
mount -av
ln -sf /proc/mounts /etc/mtab
touch /etc/mdev.conf
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
hostname=$(cat /etc/hostname)
shell() {
echo "${1}Launching shell..." && exec /bin/sh
}
grep -q 'shell' /proc/cmdline && shell
for i in $(cat /proc/cmdline); do
par=$(echo $i | cut -d "=" -f 1)
val=$(echo $i | cut -d "=" -f 2)
case $par in
root)
root=$val
;;
init)
init=$val
;;
esac
done
init=${init:-/sbin/init}
root=${root:-/dev/hda1}
if grep -q 'rambox' /proc/cmdline ; then
[ -e ${init} ] || shell "Not init found on ramdisk at '${init}'... "
echo "Keeping the ramdisk since rambox param was supplied & executing init... "
exec ${init}
#This will only be run if the exec above failed
shell "Failed keeping the ramdisk and executing '${init}'... "
fi
mkdir /newroot
mount ${root} /newroot || shell "An error ocurred mounting '${root}' at /newroot... "
[ -e /newroot${init} ] || shell "Not init found at '${init}'... "
echo "Resetting kernel hotplugging... "
:> /proc/sys/kernel/hotplug
echo "Umounting all... "
umount -a
echo "Switching to the new root and executing init... "
exec switch_root /newroot ${init}
mount -av
mdev -s
shell "Failed to switch_root... "
[root@sdserver initramfs]# chmod +x init
[root@sdserver initramfs]# chown -R root:root *
[root@sdserver initramfs]# find . -print0 | sudo cpio --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz
[root@sdserver initramfs]# cp ../initramfs.cpio.gz /var/lib/tftpboot
[root@sdserver initramfs]# dirs -v
0 /tmp/wrk/initramfs
1 /tmp/wrk
2 ~
[root@sdserver initramfs]# popd
/tmp/wrk ~
************************************************************************
There is more to it, but the error seems to point to something here in how I made this init script.
As for hardware, the old machine actually the server, the client I'm trying to boot is actually fairly new. The server is an HP ProLiant ml310 g4 (circa 2007 or something... got it at a community college liquidation for 20$!). The client I'm trying to boot is an Asus laptop w/ an Intel i3 and 4GB RAM.
I have managed to get it to successfully catch a PXE install, and then install to an iSCSI device, but never to get it to actually boot the operating system from the same iSCSI. I've got the linux bug though and I can't stop experimenting! PXE booting an actual OS seems to be my kryptonite at the moment!
Thanks again for the time, jefro, much appreciated!