Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jul 2006 09:54:00 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-arch@freebsd.org
Cc:        Craig Rodrigues <rodrigc@crodrigues.org>, Scott Long <scottl@samsco.org>, Ceri Davies <ceri@submonkey.net>, Robert Watson <rwatson@freebsd.org>, freebsd-current@freebsd.org
Subject:   Re: [RFC] mount can figure out fstype automatically
Message-ID:  <200607110954.01691.jhb@freebsd.org>
In-Reply-To: <20060711132752.GF65857@submonkey.net>
References:  <20060708152801.GA3671@crodrigues.org> <20060711124356.Y78628@fledge.watson.org> <20060711132752.GF65857@submonkey.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 11 July 2006 09:27, Ceri Davies wrote:
> On Tue, Jul 11, 2006 at 12:45:18PM +0100, Robert Watson wrote:
> > 
> > On Mon, 10 Jul 2006, Christoph Hellwig wrote:
> > 
> > >On Mon, Jul 10, 2006 at 01:06:02PM -0600, Scott Long wrote:
> > >>So in your opinion and experience, what are the pros and cons of 
> > >>maintaining a table of magic numbers?
> > >
> > >The feature is imensely useful.  The implementation won't win any points 
> > >for a clean design but works very well in practice.  I think it's 
> > >definitly better than probing in the kernel because letting a filesystem 
> > >driver try to make sense of something that's not it's own format can lead 
> > >to all kinds of funnies.  Linux does this (iterating all filesystem types 
> > >in kernel) for the special case of the root filesystem where mount(8) is 
> > >not available, and it showeds various interesting bugs at least in the 
fat 
> > >driver.
> > 
> > In both FreeBSD and Darwin, I've noticed that the kernel msdosfs code is 
> > excessively permissive as to what it considers a FAT file system.  This is 
> > presumably necessary due to the enourmous diversity of FAT file systems 
> > floating around, but it makes it a little too easy to cause msdos to trip 
> > over layouts that violate its layout assumptions. :-)  FAT is much more 
> > reliably detected by looking at the partition type it lives in than by 
> > looking at the bytes that appear inside the partition, I believe.
> 
> Assuming that there is a valid partition type.  I don't really know what
> this makes, but there's a valid FAT filesystem on it:
> 
> % truncate -s 1440k floppy
> % sudo mdconfig -a -f floppy 
> md1
> % sudo newfs_msdos -f 1440 /dev/md1
> /dev/md1: 2847 sectors in 2847 FAT12 clusters (512 bytes/cluster)
> bps=512 spc=1 res=1 nft=2 rde=224 sec=2880 mid=0xf0 spf=9 spt=18 hds=2 hid=0
> % sudo mount -t msdos /dev/md1 /mnt
> % df -h /mnt
> Filesystem    Size    Used   Avail Capacity  Mounted on
> /dev/md1      1.4M    1.0K    1.4M     0%    /mnt
> {ceri@shrike}-{~} % fdisk /dev/md1
> ******* Working on device /dev/md1 *******
> parameters extracted from in-core disklabel are:
> cylinders=0 heads=255 sectors/track=63 (16065 blks/cyl)
> 
> parameters to be used for BIOS calculations are:
> cylinders=0 heads=255 sectors/track=63 (16065 blks/cyl)
> 
> Media sector size is 512
> Warning: BIOS sector numbering starts with sector 1
> Information from DOS bootblock is:
> The data for partition 1 is:
> <UNUSED>
> The data for partition 2 is:
> <UNUSED>
> The data for partition 3 is:
> <UNUSED>
> The data for partition 4 is:
> <UNUSED>
> 
> Ceri

Dos floppies don't have an MBR (so fdisk on them is meaningless).

-- 
John Baldwin



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