PXEBOOT/TFTPBOOT + big MD_ROOT problem
Emmanuel Chriqui
wingman at waika9.com
Mon Apr 25 01:08:17 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-hackers
mailing list