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_at_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 BaldwinReceived on Tue Jul 11 2006 - 13:02:23 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:58 UTC