Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-15 Thread Gary Jennejohn
On Tue, 15 Feb 2011 01:19:45 +0100
Julian H. Stacey j...@berklix.com wrote:

 Could author p...@freebsd.org cc'd (or someone else if they are clear)
 please explain what cmdline is ? 
 Possibly commit an appended // comment after int cmdline = 0; 
 (in line 76 of 8.1  current src/sbin/mdconfig/mdconfig.c) wgat it's for ?
 
   (cmdline seems in most places to maybe be an enum { 1
   2 3 } for { a d l } alternate forms of command mdconfig,
   ...  yet case 'd': sets cmdline = 3 not 2 ?
   ( 't'  'f' sets cmdline=2 ; not 1.Puzzling.
 

It's simply a state machine to ensure that mutually exclusive options
aren't used together.  See the manpage; it's pretty clear from it that
only certain combinations of options are allowed.

-- 
Gary Jennejohn
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-15 Thread Julian H. Stacey
Gary Jennejohn wrote:
 On Tue, 15 Feb 2011 01:19:45 +0100
 Julian H. Stacey j...@berklix.com wrote:
 
  Could author p...@freebsd.org cc'd (or someone else if they are clear)
  please explain what cmdline is ? 
  Possibly commit an appended // comment after int cmdline = 0; 
  (in line 76 of 8.1  current src/sbin/mdconfig/mdconfig.c) wgat it's for ?
  
  (cmdline seems in most places to maybe be an enum { 1
  2 3 } for { a d l } alternate forms of command mdconfig,
  ...  yet case 'd': sets cmdline = 3 not 2 ?
  ( 't'  'f' sets cmdline=2 ; not 1.Puzzling.
  
 
 It's simply a state machine to ensure that mutually exclusive options
 aren't used together.

I'd wondered that, but 
  ...  yet case 'd': sets cmdline = 3 not 2 ?
ie both case 'd':  case 'l': cmdline = 3;
which implies:
Either a mistake in the code there, 
Or cmdline not a state table of 1,2,3 for the 3 alternate
invocations 'a', 'd', 'l' shown in man mdconfig  usage().


 See the manpage; it's pretty clear from it that
 only certain combinations of options are allowed.

Agreed.
But cmdline doesnt seem to be [just] doing that, 
ay least not doing case a d l = 1 2 3, else cmdline usage would be
about as in my diff appended.

So is cmdline is doing something else ?   What ?

*** mdconfig.c  Tue Feb 15 18:05:56 2011
--- mdconfig_jhs.c  Tue Feb 15 19:05:59 2011
***
*** 74,79 
--- 74,86 
int ch, fd, i, vflag;
char *p;
int cmdline = 0;
+ /* JHS: Assume cmdline is to indicate 1 of the 3 states shown in usage() ?, 
eg:
+  * 1 usage: mdconfig -a -t type [-n] [-o [no]option] ... [-f file]\n
+  *   [-s size] [-S sectorsize] [-u unit]\n
+  *   [-x sectors/track] [-y heads/cyl]\n
+  * 2mdconfig -d -u unit [-o [no]force]\n
+  * 3mdconfig -l [-v] [-n] [-u unit]\n);
+  */
char *mdunit;
  
bzero(mdio, sizeof(mdio));
***
*** 98,104 
usage();
action = DETACH;
mdio.md_options = MD_AUTOUNIT;
!   cmdline = 3;
break;
case 'l':
if (cmdline != 0)
--- 105,111 
usage();
action = DETACH;
mdio.md_options = MD_AUTOUNIT;
!   cmdline = 2;// JHS: was 3
break;
case 'l':
if (cmdline != 0)
***
*** 128,134 
} else {
usage();
}
!   cmdline=2;
break;
case 'f':
if (cmdline == 0) {
--- 135,141 
} else {
usage();
}
!   // JHS: cmdline=2;
break;
case 'f':
if (cmdline == 0) {
***
*** 139,147 
/* Imply ``-t vnode'' */
mdio.md_type = MD_VNODE;
mdio.md_options = MD_CLUSTER | MD_AUTOUNIT | 
MD_COMPRESS;
!   cmdline = 2;
}
!   if (cmdline != 2)
usage();
if (realpath(optarg, mdio.md_file) == NULL) {
err(1, could not find full path for %s,
--- 146,154 
/* Imply ``-t vnode'' */
mdio.md_type = MD_VNODE;
mdio.md_options = MD_CLUSTER | MD_AUTOUNIT | 
MD_COMPRESS;
!   // JHS: cmdline = 2;
}
!   if (cmdline != 1)   // JHS: was 2
usage();
if (realpath(optarg, mdio.md_file) == NULL) {
err(1, could not find full path for %s,
***
*** 200,206 
errx(1, Unknown option: %s., optarg);
break;
case 'S':
!   if (cmdline != 2)
usage();
mdio.md_sectorsize = strtoul(optarg, p, 0);
break;
--- 207,213 
errx(1, Unknown option: %s., optarg);
break;
case 'S':
!   if (cmdline != 1)   // JHS: Was 2
usage();
mdio.md_sectorsize = strtoul(optarg, p, 0);
break;
***
*** 214,222 
/* Imply ``-t swap'' */
mdio.md_type = 

Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-14 Thread Julian H. Stacey
 But from the manual page:
 
 -f file
  Filename to use for the vnode type memory disk. Options -a
  and -t vnode are implied if not specified.
 
 So if you specify -f then you get -t vnode automatically.

Ah yes.  Reading src/sbin/mdconfig/mdconfig.c with your mdconfig
-a -f mfsroot it seems the manual correctly represents the code
... except I'm lost what the purpose of cmdline is ?

( BTW I was wrong re:
 I suspect -t default is malloc, though manual doesnt say that
'f' actually follows with: mdio.md_type = MD_VNODE; )


Could author p...@freebsd.org cc'd (or someone else if they are clear)
please explain what cmdline is ? 
Possibly commit an appended // comment after int cmdline = 0; 
(in line 76 of 8.1  current src/sbin/mdconfig/mdconfig.c) wgat it's for ?

(cmdline seems in most places to maybe be an enum { 1
2 3 } for { a d l } alternate forms of command mdconfig,
...  yet case 'd': sets cmdline = 3 not 2 ?
( 't'  'f' sets cmdline=2 ; not 1.Puzzling.

Cheers,
Julian
-- 
Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com
 Mail plain text;  Not quoted-printable, Not HTML, Not base 64.
 Reply below text sections not at top, to avoid breaking cumulative context.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Julian H. Stacey
Bruce Cran wrote:
 On Sat, 12 Feb 2011 01:54:58 +0100
 Julian H. Stacey j...@berklix.com wrote:

   -O filesystem-type
   Use 1 to specify that a UFS1 format file system be
  built; use 2 to specify that a UFS2 format file system be built.  The
  default format is UFS2.
  If anyone fancies looking deeper, please do :-)

 I checked with dumpfs that memstick.img is UFS1.

 Also, mounting /dev/md0 confuses the kernel into ultimately panic'ing,
 since /dev/md0a is the proper slice.

I'm suprised it mounts. Not suprised it crashes.

 For the mfsroot.gz file from the
 CD ISOs:

 # mdconfig -a -f mfsroot
 md0
 # mount /dev/md0a /mnt
 # ls /mnt
 ls: /mnt: Bad file descriptor
 # cd /mnt
 cd: /mnt: Not a directory
 # vim /mnt

 panic: ffs_read: type 0

It's not so obvious but in man mdconfig, there's no [] around -t
type, I read that as -t something is mandatory, (though it starts
without for you ...  I suspect -t default is malloc, though manual
doesnt say that, but look what manual says re. malloc ... panic ).

I use -t vnode, which doesn't crash here on 8.1-RELEASE i686:
mdconfig -a -t vnode -f FreeBSD-8.2-RC3-amd64-memstick.img
mount /dev/md0a /mnt
cd /mnt
tar cf - . | ( cd /pri/FreeBSD/releases/amd64/ISO-IMAGES/8.2\
/FreeBSD-8.2-RC3-amd64-memstick  tar xf - )
dumpfs /dev/md0a # UFS1
mdconfig -a -t vnode -f FreeBSD-8.2-RC3-amd64-livefs.iso
mount -t cd9660 /dev/md1 /mnt1
cd /mnt1
tar cf - . | ( cd /pri/FreeBSD/releases/amd64/ISO-IMAGES/8.2\
/FreeBSD-8.2-RC3-amd64-livefs  tar xf - )
mdconfig -a -t vnode -f FreeBSD-8.2-RC3-amd64-disc1.iso
xs mount -t cd9660 /dev/md2 /mnt2
cd /mnt2
tar cf - . | ( cd /pri/FreeBSD/releases/amd64/ISO-IMAGES/8.2\
/FreeBSD-8.2-RC3-amd64-disc1  tar xf - )
cd / ; umount /mnt2 ; umount /mnt1 ; umount /mnt
mdconfig -d -u 2 ; mdconfig -d -u 1 ; mdconfig -d -u 0

Analysing sizes:
ls -l
 723834880 FreeBSD-8.2-RC3-amd64-disc1.iso
 348796928 FreeBSD-8.2-RC3-amd64-livefs.iso
1087467520 FreeBSD-8.2-RC3-amd64-memstick.img
cd /pri/FreeBSD/releases/amd64/ISO-IMAGES/8.2 ; du -s -k /mnt* *
988708  /mnt# memstick.img
985807  /mnt1   # livefs.iso
705444  /mnt2   # disc1.iso
999340  FreeBSD-8.2-RC3-amd64-memstick
1023032 FreeBSD-8.2-RC3-amd64-livefs
711640  FreeBSD-8.2-RC3-amd64-disc1
df /mnt
FilesystemSizeUsed   Avail Capacity  Mounted on
/dev/md0a 1.1G1.0G-14M   101%/mnt
umount /mnt ; tunefs -m 0 /dev/md0a
tunefs: minimum percentage of free space changes from 8% to 0%
tunefs: should optimize for space with minfree  8%
df /dev/md0a
Filesystem   SizeUsed   Avail Capacity  Mounted on
/dev/md0a1.1G1.0G 73M93%
cd /pri/FreeBSD/releases/amd64/ISO-IMAGES/8.2 ; /bin/pwd
mount | grep /usra
/dev/ad4s4e on /usra (ufs, NFS exported, local, soft-updates)
dumpfs /dev/ad4s4e | head -1# UFS2

Note du on UFS1 stick (988708) is near the same as tree
copied by tar to UFS2 hard disc (999340), so its not the
differerence between UFS1  UFS2 that wastes the space
(though good guess  thanks for suggesting it pushed me to
investigate more :-)

We are distributing 7% null space:
Mainly because the file system is too big. We probably don't
need 7% free space on stick just to install or repair,
though that might be useful (if slow) for demos )

+ Also each file will have unused bytes at end, (but so will 
  livefs.iso have padding per file  not near so bloated,
  albeit probably some other fragment size.  Per my first post:
  2K blocks of nulls.
  FreeBSD-8.2-RC3-i386-disc1.iso:565
  FreeBSD-8.2-RC3-i386-livefs.iso:   905
  FreeBSD-8.2-RC3-i386-memstick.img:   34521

As a sample test of what makefs produces:
makefs /tmp/bla /usr/share
Extent size set to 8192 block size 8192, fragment size 1024
du -s -k  /usr/share# 54 108   
ls -l /tmp/bla  # 54 927 360 
df /tmp/bla
Filesystem SizeUsed   Avail Capacity  Mounted on
/dev/ad0s2e520M 55M423M12%/tmp
# PS Note df lies 520M - some bug as not a node ?
mdconfig -a -t vnode -f /tmp/bla# md2
df /dev/md2*
Filesystem1K-blocks  UsedAvail Capacity  
/dev/md2  51175 48723-1642   103%
tunefs -m 2 /dev/md2
 

Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Bruce Cran
On Sat, 12 Feb 2011 17:56:08 +0100
Julian H. Stacey j...@berklix.com wrote:

 It's not so obvious but in man mdconfig, there's no [] around -t
 type, I read that as -t something is mandatory, (though it starts
 without for you ...  I suspect -t default is malloc, though manual
 doesnt say that, but look what manual says re. malloc ... panic ).

But from the manual page:

-f file
 Filename to use for the vnode type memory disk. Options -a
 and -t vnode are implied if not specified.

So if you specify -f then you get -t vnode automatically.

-- 
Bruce Cran
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Tim Kientzle

On Feb 11, 2011, at 11:09 AM, Julian H. Stacey wrote:

 memstick.img wastes 7% with 2K blocks of nulls.
 shown by:
   8f -b 0 -n 2048 -l -f Fr*
   http://berklix.com/~jhs/src/bsd/jhs/bin/public/8f/  8f.c 8f.1
 
 ...
 The CD  DVD images are not nearly so wasteful, see above.
 As near 1G ( 959467520 FreeBSD-8.2-RC3-i386-memstick.img ) it will
 soon not fit on 1G sticks.

There is a big difference between laying out a read-only filesystem
and laying out a read-write disk image.  CD/DVD writers do pack
file contents one after the other on the image.  The current UFS code
is designed to leave enough slack space to support future
file writes.

The strategy used by libarchive's recent ISO writer
is to concatenate the file bodies into a temp file
(with minimal padding between entries to meet alignment
requirements) while storing directory information
in memory.  The final output then consists of the
directory information followed by the concatenated
file bodies.

I suspect a similar strategy could be used to lay out
and write a read-only optimized UFS image.
A few folks have asked about a UFS writer for
libarchive; I think it's probably feasible but I doubt
very much of the existing UFS code can be recycled
for such a project.

Alternatively, of course, is there any way to use
isofs instead of ufs for memstick.img?

Tim

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Warren Block

On Sat, 12 Feb 2011, Tim Kientzle wrote:


Alternatively, of course, is there any way to use
isofs instead of ufs for memstick.img?


Devin Teske's DruidBSD (http://druidbsd.sourceforge.net/) uses the same 
image for CD, hard disk, or memstick.  I don't know the technical 
details.  (VirtualBox didn't like it, but maybe it's a trivial fix.)

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Daniel O'Connor

On 13/02/2011, at 8:45, Warren Block wrote:
 On Sat, 12 Feb 2011, Tim Kientzle wrote:
 Alternatively, of course, is there any way to use
 isofs instead of ufs for memstick.img?
 
 Devin Teske's DruidBSD (http://druidbsd.sourceforge.net/) uses the same image 
 for CD, hard disk, or memstick.  I don't know the technical details.  
 (VirtualBox didn't like it, but maybe it's a trivial fix.)

I would guess it uses ISOLinux plus some voodoo hackery the same as various 
Linux distros which do the same trick.

For work I have made a FAT32 USB stick which uses syslinux to load an MFS 
containing the loader  kernel and sysinstall then reads the install files off 
FAT32. I did it this way so that people using it could edit the configuration 
file without needing a BSD box handy.

In theory the loader can read off FAT32 so the kernel could go onto the flash 
drive too, however I couldn't get it to work :(

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
The nice thing about standards is that there
are so many of them to choose from.
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C






___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread dieterbsd
Tim Kientzle wrote:
 The current UFS code is designed to leave enough slack space to
 support future file writes.

What if you turned the knob all the way down and had just one
cylinder group?  I assume that newfs would need to be fixed to
allow this, but would anything break?

The current limits are also wasteful for normal read/write
filesystems with large files.  Too many cylinder groups, too many
inodes, block/frag size too small, etc...


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread perryh
Tim Kientzle t...@kientzle.com wrote:

 The strategy used by libarchive's recent ISO writer
 is to concatenate the file bodies into a temp file
 (with minimal padding between entries to meet alignment
 requirements) while storing directory information
 in memory.  The final output then consists of the
 directory information followed by the concatenated
 file bodies.

 I suspect a similar strategy could be used to lay
 out and write a read-only optimized UFS image ...
 I think it's probably feasible but I doubt very
 much of the existing UFS code can be recycled for
 such a project.

There was at one time a capability in mkfs(8) -- which no
longer even exists as a separate entity, having been absorbed
into newfs(8) -- to pre-populate the filesystem with specified
content.  Dunno if it was ever in any BSD release -- it's not
mentioned in the 4.2BSD-derived SunOS 4.1.1 manpage -- so
I may be remembering it from Bell Labs 6th edition on the PDP-11.

The code to collect and write all of an existing filesystem's
directories, followed by all of its files, exists in dump(8).
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-12 Thread Julian Elischer

On 2/12/11 7:45 PM, per...@pluto.rain.com wrote:

Tim Kientzlet...@kientzle.com  wrote:


The strategy used by libarchive's recent ISO writer
is to concatenate the file bodies into a temp file
(with minimal padding between entries to meet alignment
requirements) while storing directory information
in memory.  The final output then consists of the
directory information followed by the concatenated
file bodies.

I suspect a similar strategy could be used to lay
out and write a read-only optimized UFS image ...
I think it's probably feasible but I doubt very
much of the existing UFS code can be recycled for
such a project.

There was at one time a capability in mkfs(8) -- which no
longer even exists as a separate entity, having been absorbed
into newfs(8) -- to pre-populate the filesystem with specified
content.  Dunno if it was ever in any BSD release -- it's not
mentioned in the 4.2BSD-derived SunOS 4.1.1 manpage -- so
I may be remembering it from Bell Labs 6th edition on the PDP-11.


man makefs


The code to collect and write all of an existing filesystem's
directories, followed by all of its files, exists in dump(8).
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org



___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


memstick.img is bloated with 7% 2K blocks of nulls

2011-02-11 Thread Julian H. Stacey
memstick.img wastes 7% with 2K blocks of nulls.
shown by:
8f -b 0 -n 2048 -l -f Fr*
http://berklix.com/~jhs/src/bsd/jhs/bin/public/8f/  8f.c 8f.1

FreeBSD-8.1-RELEASE-amd64-bootonly.iso:543
FreeBSD-8.1-RELEASE-amd64-disc1.iso:   543
FreeBSD-8.1-RELEASE-amd64-dvd1.iso:   1125
FreeBSD-8.1-RELEASE-amd64-livefs.iso: 1109
FreeBSD-8.1-RELEASE-amd64-memstick.img:  38722
FreeBSD-8.1-RELEASE-i386-bootonly.iso: 511
FreeBSD-8.1-RELEASE-i386-disc1.iso:511
FreeBSD-8.1-RELEASE-i386-dvd1.iso: 865
FreeBSD-8.1-RELEASE-i386-dvd1.iso: 893
FreeBSD-8.1-RELEASE-i386-livefs.iso:   850
FreeBSD-8.1-RELEASE-i386-memstick.img:   34066
FreeBSD-8.2-RC3-amd64-bootonly.iso:594
FreeBSD-8.2-RC3-amd64-disc1.iso:   594
FreeBSD-8.2-RC3-amd64-dvd1.iso:   1167
FreeBSD-8.2-RC3-amd64-livefs.iso: 1166
FreeBSD-8.2-RC3-amd64-memstick.img:  39216
FreeBSD-8.2-RC3-i386-bootonly.iso: 565
FreeBSD-8.2-RC3-i386-disc1.iso:565
FreeBSD-8.2-RC3-i386-dvd1.iso: 906
FreeBSD-8.2-RC3-i386-livefs.iso:   905
FreeBSD-8.2-RC3-i386-memstick.img:   34521

It's not just one big block of trailing nulls.
od -c FreeBSD-8.2-RC3-i386-memstick.img  tmp.od ; tail tmp.od
  7114017760@ 244 377 344   Q  \b   * 325  \t 333   y   `  '  \n   W
  711402   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
  *
  711405
05 - 02 = 03 = 0x3000 = 12288

It's a lot of bursts of null blocks, seen by either:
grep -n '^*' tmp.od
8f -f -c -b 0 -n 2048 FreeBSD-8.2-RC3-i386-memstick.img 

The CD  DVD images are not nearly so wasteful, see above.
As near 1G ( 959467520 FreeBSD-8.2-RC3-i386-memstick.img ) it will
soon not fit on 1G sticks.
If its not easy for someone to find  trim, xz compression would at 
least save 27% of transmission bandwidth,
( dc 702447528 100 * 959467520 / p 73 )
a much higher % than DVD that also uses compression.

PS I sent this to hackers@ rather than re@ as I imagine re@ are
busy with more urgent matters at present :-)

Cheers,
Julian
-- 
Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com
 Mail plain text;  Not quoted-printable, Not HTML, Not base 64.
 Reply below text sections not at top, to avoid breaking cumulative context. 
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-11 Thread Bruce Cran
On Fri, 11 Feb 2011 20:09:30 +0100
Julian H. Stacey j...@berklix.com wrote:

 memstick.img wastes 7% with 2K blocks of nulls.

Could this be due to using UFS1 instead of UFS2?

On a related note, at some point the release scripts should be updated
to use gpart instead of fdisk/bsdlabel.

-- 
Bruce Cran
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-11 Thread Julian H. Stacey
Bruce Cran wrote:
 On Fri, 11 Feb 2011 20:09:30 +0100
 Julian H. Stacey j...@berklix.com wrote:
 
  memstick.img wastes 7% with 2K blocks of nulls.
 
 Could this be due to using UFS1 instead of UFS2?

Don't know, Looking:
8.1 /usr/src/release/scripts/make-memstick.sh
man makefs
-t fs-type ... The following file system
   types are supported:
 ffs  BSD fast file system (default).

FFS-specific options

version   UFS version. 1 for FFS (default), 2 for UFS2

/usr/src/release/Makefile --
  scripts/doFS.sh:
newfs -i ${FSINODE} -o space -m 0 /dev/r${VNDEVICE}c
...
newfs -O1 -b 4096 -f 512 -i ${FSINODE} -o space -m 0 /dev/${MDDEVICE}
  man newfs:
 -O filesystem-type
 Use 1 to specify that a UFS1 format file system be built; use 2
 to specify that a UFS2 format file system be built.  The default
 format is UFS2.
If anyone fancies looking deeper, please do :-)

Cheers,
Julian
-- 
Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com
 Mail plain text;  Not quoted-printable, Not HTML, Not base 64.
 Reply below text sections not at top, to avoid breaking cumulative context.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: memstick.img is bloated with 7% 2K blocks of nulls

2011-02-11 Thread Bruce Cran
On Sat, 12 Feb 2011 01:54:58 +0100
Julian H. Stacey j...@berklix.com wrote:

-O filesystem-type
  Use 1 to specify that a UFS1 format file system be
 built; use 2 to specify that a UFS2 format file system be built.  The
 default format is UFS2.
 If anyone fancies looking deeper, please do :-)

I checked with dumpfs that memstick.img is UFS1.

Also, mounting /dev/md0 confuses the kernel into ultimately panic'ing,
since /dev/md0a is the proper slice. For the mfsroot.gz file from the
CD ISOs:

# mdconfig -a -f mfsroot
md0
# mount /dev/md0a /mnt
# ls /mnt
ls: /mnt: Bad file descriptor
# cd /mnt
cd: /mnt: Not a directory
# vim /mnt

panic: ffs_read: type 0

kdb_enter()
panic()
ffs_read()
vn_read
dofileread()
kern_readv()
read()
syscallenter()
syscall()
Xfast_syscall()

-- 
Bruce Cran
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org