Is fdisk broken?

2013-03-22 Thread mla_strick

I recently bought a 4 TB usb disk drive and discovered that it reported
a sector size of 4096 bytes instead of the traditional 512 bytes.  This
is apparently necessary because there may be a 32 bit sector number field
somewhere in the usb mass storage protocols.  It turns out that disk
drive manufacturers have been producing disks with large sector sizes
for some years now.  The feature goes by the name Advanced Format and
other things.  Look it up in Wikipedia.

FreeBSD seems to use the sector size information when interpreting MBR
partition offsets and sizes.  Unfortunately, when I try to use fdisk to
print out the partition table on my new disk drive, fdisk just says
fdisk: could not detect sector size.  Otherwise the MBR partition
table seems to work correctly and newfs seems to have done the right
thing.  (It made the file system fragment size a multiple of the sector
size and I am not getting any weird error messages out of the disk
driver.)  It would be nice if fdisk also worked.  I do have to share
the disk with other operating systems that might not understand other
partition table schemes.

Is may analysis of what is going on essentially correct?
Can fdisk be made happy again?  (At least for a few more years?)

Dan Strick
(mla_str...@att.net)
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Is fdisk broken?

2013-03-22 Thread Michael Sierchio
On Fri, Mar 22, 2013 at 7:33 AM,  mla_str...@att.net wrote:

 Can fdisk be made happy again?  (At least for a few more years?)

The short answer is: no.  Fdisk comes from a world where even 1G
drives were not yet on the horizon.

Use gpart.

The long answer is readily  available in the forums - google is your friend.

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


Re: Is fdisk broken?

2013-03-22 Thread Bruce Evans

On Fri, 22 Mar 2013 mla_str...@att.net wrote:


I recently bought a 4 TB usb disk drive and discovered that it reported
a sector size of 4096 bytes instead of the traditional 512 bytes.  This
is apparently necessary because there may be a 32 bit sector number field
somewhere in the usb mass storage protocols.  It turns out that disk
drive manufacturers have been producing disks with large sector sizes
for some years now.  The feature goes by the name Advanced Format and
other things.  Look it up in Wikipedia.

FreeBSD seems to use the sector size information when interpreting MBR
partition offsets and sizes.  Unfortunately, when I try to use fdisk to
print out the partition table on my new disk drive, fdisk just says
fdisk: could not detect sector size.


It has the following gratuitous breakage at 2K for its probe of the
sector size:

#define MAX_SEC_SIZE 2048   /* maximum section size that is supported */
 
#define MIN_SEC_SIZE 512/* the sector size to start sensing at */

I used 64K for the probe maximum limit when I fixed fsck_msdosfs
(fsck_msdosfs doesn't has a probe and only supports sector sizes of
512 in -current).

Most file systems in FreeBSD have gratuitous limits on the size in their
probe for there superblock, but the limit is mostly larger than 4K.
Most of them don't need to know the sector size and don't have a probe,
but they read a fixed size that is larger than their superblock size,
so they fail if this size is smaller than the the sector size.


Otherwise the MBR partition
table seems to work correctly and newfs seems to have done the right
thing.  (It made the file system fragment size a multiple of the sector
size and I am not getting any weird error messages out of the disk
driver.)  It would be nice if fdisk also worked.  I do have to share
the disk with other operating systems that might not understand other
partition table schemes.

Is may analysis of what is going on essentially correct?
Can fdisk be made happy again?  (At least for a few more years?)


Changing the above should fix fdisk for FreeBSD.  A sector size of
4K gives a limit of 16TB for the partition table data structure,
which is enough for a few more years with single disks.  After that,
double the sector size to 8K to work for another year or two.

However, to share the disk you need all the other operating systems and
BIOS to agree that _this_ partition table scheme (with units of 4K
sectors) is what the partition table records.

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