PXEBOOT/TFTPBOOT + big MD_ROOT problem

Emmanuel Chriqui wingman at waika9.com
Mon Apr 25 00:58:57 PDT 2005


> 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.



More information about the freebsd-stable mailing list