Hi, I'm trying to make very big MD_ROOT (300MB) sent using PXEBOOT+TFTPBOOT. No NFS. It's a sort of diskless machine with all the system on ram. There is a problem when the preloaded image is >~32MB. Kernel loads but it does not seem to find the files. It seems as if only part of the image is really there. With a "small" image (<~32MB), no probleme. I use the same image, off course, same init etc... just more data for my application in the big image case. I use a classic mfs_root approche to make my image dd if=/dev/zero of=$MFS_FILE bs=1k count=$SIZE mdconfig -a -t vnode -f $MFS_FILE -u0 bsdlabel -w /dev/md0 newfs /dev/md0a mount /dev/md0a $MFS_FILE_MOUNT cp ... my content... umount $MFS_FILE_MOUNT fsck -t ufs /dev/md0a mdconfig -d -u 0 then I mount the $MFS_FILE_MOUNT . I use i386/5.4RC2/TFTPD/PXEBOOT+TFTPBOOT . (same pb with a 5.3). Am I missing something obvious? Emmanuel.
On Tue, Apr 19, 2005 at 09:52:07AM +0200, Emmanuel Chriqui wrote:> Hi, > > I'm trying to make very big MD_ROOT (300MB) sent using PXEBOOT+TFTPBOOT. No > NFS.Any reasons for not using NFS ?> I use i386/5.4RC2/TFTPD/PXEBOOT+TFTPBOOT . > (same pb with a 5.3). > > Am I missing something obvious?I'm not sure. tftp itself is able to handle 32MB+ files, but maybe the loader isn't. A workaround, no using NFS, could be to tftp a second filesystem image on boot and mount that from the root filesystem. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 187 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20050419/3916437a/attachment.bin
> Hi, > > I'm trying to make very big MD_ROOT (300MB) sent using PXEBOOT+TFTPBOOT. No > NFS. It's a sort of diskless machine with all the system on ram. There is a > problem when the preloaded image is >~32MB. Kernel loads but it does not > seem to find the files. It seems as if only part of the image is really > there. With a "small" image (<~32MB), no probleme. I use the same image, off > course, same init etc... just more data for my application in the big image > case....> Am I missing something obvious?I assume you saw this in the tftpd manual page? BUGS Files larger than 33488896 octets (65535 blocks) cannot be transferred without client and server supporting blocksize negotiation (RFC1783). Many tftp clients will not transfer files over 16744448 octets (32767 blocks). -DG David G. Lawrence President Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500 TeraSolutions, Inc. - http://www.terasolutions.com - (888) 346 7175 The FreeBSD Project - http://www.freebsd.org Pave the road of life with opportunities.
On Tue, Apr 19, 2005 at 04:18:17PM -0700, David G. Lawrence wrote:> > I assume you saw this in the tftpd manual page? > > BUGS > Files larger than 33488896 octets (65535 blocks) cannot be transferred > without client and server supporting blocksize negotiation (RFC1783). > > Many tftp clients will not transfer files over 16744448 octets (32767 > blocks).There is a PR open with a patch to fix this: http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/67550 -- Francois Tigeot
> I'm trying to make very big MD_ROOT (300MB) sent using > PXEBOOT+TFTPBOOT. No NFS. It's a sort of diskless machine with all the > system on ram. There is a problem when the preloaded image is >~32MB. > Kernel loads but it does not seem to find the files. It seems as if > only part of the image is really there. With a "small" image (<~32MB), > no probleme. I use the same image, off course, same init etc... just > more data for my application in the big image case. > > I use a classic mfs_root approche to make my image > > dd if=/dev/zero of=$MFS_FILE bs=1k count=$SIZE mdconfig -a -t vnode -f > $MFS_FILE -u0 bsdlabel -w /dev/md0 newfs /dev/md0a mount /dev/md0a > $MFS_FILE_MOUNT cp ... my content... > umount $MFS_FILE_MOUNT > fsck -t ufs /dev/md0a > mdconfig -d -u 0 > > then I mount the $MFS_FILE_MOUNT . > > I use i386/5.4RC2/TFTPD/PXEBOOT+TFTPBOOT . > (same pb with a 5.3). > > Am I missing something obvious? >It seems not. There seems to be a size limitation in the loader (and pxeboot since it is built using loader code). I've tried loading through pxeboot + TFTP : the tftp pxeboot client is limited to 32MB unfortunately (BTW : the one of the tftp port works fine). I tried to use pxeboot + NFS, kernel hangs because of loader limitation (BTW : you can use only NFS UDP since the pxeboot NFS client don't do TCP which means booting using this this technique using TFTP is not less reliable than NFS). I even tried pxegrub, but again it's the loader ... It seems the only reasonable solution is to make a small jumpstart mfsroot, make a md device (malloc / ..) with any size you want as long as you have enough memory (even 1GB+) and then fetch the mfsroot image using tftp/nfs/scp/.. and chroot to it. Emmanuel.