Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Apr 2010 02:02:36 -0600
From:      Tim Judd <tajudd@gmail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-hackers@freebsd.org, freebsd-questions@freebsd.org
Subject:   Re: Fwd: mkuzip and/or geom_uzip changes? - SOLVED
Message-ID:  <k2tade45ae91004030102m93a2197bx35a667a89966e157@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
On 4/1/10, Tim Judd <tajudd@gmail.com> wrote:
> On 4/1/10, Tim Judd <tajudd@gmail.com> wrote:
>> On 4/1/10, John Baldwin <jhb@freebsd.org> wrote:
>>> 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
>>>
>>
>>
>>
>> booted single-user
>> md0 is the mfs_root
>>
>> here is the manual attachment of an mdconfig...
>> # mdconfig -af /usr.uzip
>> WARNING: opening backing store: /usr.uzip readonly
>> md1.uzip: block size (24) should be a multiple of 512.
>> md1
>> # ls /dev/md1*
>> /dev/md1
>> #
>>
>
> Forgot the kldstat, which was obviously omitted
>
> # kldstat
> Id Refs Address Size Name
> 1 5 0xc0400000 b6e060 kernel
> 2 1 0xc0f6f000 3ffc   geom_uzip.ko
> 3 2 -xc0f73000 ac20   zlib.ko
>



John, All:

Don't spend any more time on this issue as a show-stopper anymore.  I
understand what was going on enough to realize that the middle line,
rather than a warning, was an outright error and the md?.uzip device
cannot be presented.

When I was trying to diagnose my cascading problems, one of the items
I did was to edit (with ee) the usr.uzip binary file.  I only used the
cursor in the script header part, saved it and tried it out.
Evidentally, that screwed the file up.


Recreating the .img, converting to a .uzip is working.

I'm back on track, no need to continue to search this.



enjoy!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?k2tade45ae91004030102m93a2197bx35a667a89966e157>