Posted: Wed 18 Mar 2009, 16:07
Woohoo
Well done Rob, MZ & others
Online beers all round
Aitch
Well done Rob, MZ & others
Online beers all round
Aitch
READ-ONLY Archive
https://oldforum.puppylinux.com/
Code: Select all
makenetboot ./initrd.gz ./pup_420.sfs
Code: Select all
DEFAULT Puppy
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 100
MENU TITLE Puppy Network Booting!
# Puppy Linux Loader
LABEL Puppy
MENU Puppy Net-Booting
KERNEL vmlinuz
APPEND initrd=initrd.gz ramdisk_size=[b]102013040[/b]
EOF
Code: Select all
Loading the pup_420.sfs file
The ramdisk_size parameter could be unique to Philip Jounin's TFTP (in Windows). MZ does not mention it for dnsmasq. Here is a Debian guide mentioning dnsmasq config options: http://www.debian-administration.org/articles/478ecomoney wrote:I have a theory that the netboot protocol on the client machines reserves an amount [of RAM] to copy the the initrd.gz file into. Raffy suggested that 102000kb be used for this...
"pfix=noram" is the usual parameter, and it must be placed along the APPEND line.ecomoney wrote:What are the boot parameters to force non-loading of the pup_420.sfs file into [Puppy's tmpfs]? and where would I put them?
Code: Select all
APPEND initrd=initrd.gz pfix=noram
Code: Select all
#now supporting a boot menu...
if [ "$pfix" ];then
for ONEFIX in `echo -n "$pfix" | tr ',' ' '`
do
case $ONEFIX in
ram) PRAMONLY="yes";; #run in ram only (do not load pup_save).
rdsh) RDSH="yes";; #exit to shell in initial ramdisk.
nox) PNOX="yes";; #do not start X.
clean) PCLEAN="yes";; #force version upgrade and cleanup.
purge) PPURGE="yes";; #radical cleanup for broken system.
copy) PCOPY="yes";; #copy .sfs files into ram.
noram) PNORAM="yes";; #v412 partial restore no copy sfs to ram.
fsck) PFSCK="yes";; #do a fsck of pup_save file.
[0-9]*) PIGNORELAST=$ONEFIX;; #blacklist last $ONEFIX folders (multisession).
esac
done
fi
[ "$PNORAM" = "yes" ] && PCOPY="no" #v412
Code: Select all
dhcpcd eth0
In theory, it should say "copying to RAM" if it is copying pup_420.sfs to RAM.ecomoney wrote:.. the boot section still read "loading main pup_420.sfs" file (which it shouldnt do...
Puppy uses another tmpfs for /tmp (the scratch file), and that consumes RAM, too. The free RAM is displayed with "free" in console.ecomoney wrote:It could also just be that the size of the free RAM in the final netbooted puppy is reported as larger, because I did hear that if Linux does find extra ram then it just uses it.
If you follow the old network wizard and save the setting, you will have eth0mode in /etc. Copy that into the remastered /etc and you will have autodhcp at boot time.ecomoney wrote:Im also going to have to add code to this file to autodhcp eth0 at bootup
Code: Select all
tftp-max=<connections>
This blew me away that the author of such a popular piece of software should go out of his way to contact me in this way to offer his knowledge. How come free software has better "customer support" than anything commercial I have ever paid for?Hello,
I'm the author of dnsmasq. I have a regular Google-groups search going to keep an eye on how my baby is doing out in the world, and it found the thread on Murga-linux.com where you are talking about netbooting stuff.
I don't want to create yet another account to post there, so I though I'd just mail you, feel free to repost any of this stuff.
File descriptors: the limit is the number of descriptors available to a process: this is normally 1024, with a dozen of so used for other things, so you have plenty of room to increase the default tftp-max limit. The descriptors are only used while the tftp transfer is happening, and released afterwards. Each transfer uses two, one to read the file and one for a UDP socket, but if many transfers of the same file are going on, that only takes one descriptor plus one for the socket for each transfer.
Booting 100 machines should not take 100 times longer than booting one: TFTP uses the network very inefficiently, so there should be enough bandwidth for many transfers simultaneously.
Security. You should be OK, the dnsmasq TFTP server doesn't accept writes, and only gives access to stuff under --tftp-root. Look at the man page entry for tftp-secure too, If you're running dnsmasq as a dedicated user, you can make it serve only files owned by that user.
HTH
Simon.