Fwd: mkuzip and/or geom_uzip changes?

John Baldwin jhb at freebsd.org
Thu Apr 1 12:51:41 UTC 2010


On Wednesday 31 March 2010 6:32:09 pm Tim Judd wrote:
> Hi All,
> 
> Just starting to see if I can find other reports.  You all probably
> have had the "more than one pair of eyes looking at a thing is better
> than my eyes alone."  This is why I'm writing now, as I'm starting the
> discovery.
> 
> Let me background this a little bit.  I only started looking into this
> because mkuzip and it's counterpart, geom_uzip are throwing errors on
> FreeBSD8 i386
> 
> 
> scenario (/etc/src.conf in effect, removing *LOTS* of stuff with knobs):
>   make DESTDIR=/home/small8 installworld installkernel distribution
>   mv /home/small8/boot /home/small8-boot/
>   makefs -t ffs /home/small8/usr.img /home/small8/usr/
>   mkuzip -o /home/small8/usr.uzip /home/small8/usr.img                  [*]
>   chflags -R noschg /home/small8/usr/*
>   rm -rf /home/small8/usr/* /home/small8/usr.img
>   ee /home/small8/etc/rc.d/mountcritlocal
>           [**]
>   makefs -t ffs /home/small8-boot/mfsroot /home/small8/
>   gzip --best /home/small8-boot/mfsroot
>   ee /home/small8-boot/boot/loader.conf
>           [***]
>   rm /home/small8-boot/boot/kernel/*.symbols
>   gzip --best /home/small8-boot/boot/kernel/kernel
>   mkisofs -U -J -r -V "FreeBSD8" -b boot/cdboot -no-emul-boot
> -iso-level 4 -o /home/small8.iso /home/small8-boot/
> 
> 
> [*]: mkuzip inserts a script header that is broken.  module name it's
> searching for may have been renamed?
> [**]: Edited mountcritlocal to mount the usr.uzip file as by using the
> above script header, throws errors
> [***]: added zlib and geom_uzip modules to load to the boot image, to
> satisfy the script header's requirements.
> 
> OK, the above scenario creates about a 33MB usr.uzip, and a 68MB iso.
> Small enough to apparently fit into the undocumented 50 or 100MB size
> limit of mfs_root module

BTW, you can raise this limit by changing NKPT.
 
> The problem:
>   mkuzip generates a few lines as a script in the head of the
> resulting *.uzip file.  Two problems...
> 1) the module it queries for is geom_uzip (kldstat -m $m), but
> FreeBSD8 names the geom_uzip module (i guess, internally) as g_uzip.
> mkuzip's generated image will never find the module if they're not
> named the same.

It is g_uzip even in 7:

DECLARE_GEOM_CLASS(g_uzip_class, g_uzip);
MODULE_DEPEND(g_uzip, zlib, 1, 1, 1);

This has probably just been broken from the start.  If it used 'kldstat -n' 
then it might work.  Well, it probably works (modulo a warning) by accident as 
it doesn't hurt to kldload an already-loaded module.  Note though that it 
assumes the raw usr.img is an ISO image, not a UFS filesystem.

> 2) even with geom_uzip module and it's dependency zlib loaded, i don't
> get a mdconfig node '/dev/md?.uzip' to appear.
> 
> It's been forever since I touched uzip, so I have to ask.

Do you have a md0 device at all?  I think you want to hack the script to do 
something like this:

	disk=`mdconfig -af /path/to/usr.img`
	mount -r /dev/$disk.uzip /usr

-- 
John Baldwin


More information about the freebsd-hackers mailing list