Re: [RFC] mount can figure out fstype automatically



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
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: checking total and free space
    ... The df command will tell you how much space in the filesystem ... It tells you nothing about unallocated disk space. ... >> and the size of each partition to get the free space. ... Partition Tag Flags Sector Count Sector Mount Directory ...
    (comp.unix.solaris)
  • Re: [RFC] mount can figure out fstype automatically
    ... Linux does this (iterating all filesystem types ... excessively permissive as to what it considers a FAT file system. ... looking at the bytes that appear inside the partition, ... BIOS sector numbering starts with sector 1 ...
    (freebsd-current)
  • Re: [RFC] mount can figure out fstype automatically
    ... Linux does this (iterating all filesystem types ... excessively permissive as to what it considers a FAT file system. ... looking at the bytes that appear inside the partition, ... BIOS sector numbering starts with sector 1 ...
    (freebsd-current)
  • Re: [RFC] mount can figure out fstype automatically
    ... Linux does this (iterating all filesystem types ... excessively permissive as to what it considers a FAT file system. ... looking at the bytes that appear inside the partition, ... BIOS sector numbering starts with sector 1 ...
    (freebsd-arch)
  • Re: bootsect.bak
    ... This first sector on each ... HDD is the MBR - the Master Boot Record. ... there is just enough room to hold the 64-byte Partition Table plus ... extension in the Root of that Active partition. ...
    (microsoft.public.windows.vista.general)