Re: [RFC] mount can figure out fstype automatically
- From: Ceri Davies <ceri@xxxxxxxxxxxxx>
- Date: Tue, 11 Jul 2006 14:27:52 +0100
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
--
That must be wonderful! I don't understand it at all.
-- Moliere
Attachment:
pgpMhINxkeA88.pgp
Description: PGP signature
- Follow-Ups:
- Re: [RFC] mount can figure out fstype automatically
- From: John Baldwin
- Re: [RFC] mount can figure out fstype automatically
- References:
- [RFC] mount can figure out fstype automatically
- From: Craig Rodrigues
- Re: [RFC] mount can figure out fstype automatically
- From: Sam Leffler
- Re: [RFC] mount can figure out fstype automatically
- From: Christoph Hellwig
- Re: [RFC] mount can figure out fstype automatically
- From: Scott Long
- Re: [RFC] mount can figure out fstype automatically
- From: Christoph Hellwig
- Re: [RFC] mount can figure out fstype automatically
- From: Robert Watson
- [RFC] mount can figure out fstype automatically
- Prev by Date: Re: [RFC] mount can figure out fstype automatically
- Next by Date: Re: [RFC] mount can figure out fstype automatically
- Previous by thread: Re: [RFC] mount can figure out fstype automatically
- Next by thread: Re: [RFC] mount can figure out fstype automatically
- Index(es):
Relevant Pages
|
|