9.1 RELENG_9 Unable to cleanly dismount root partition on shutdown

Kevin Oberman kob6558 at gmail.com
Tue Aug 28 01:16:26 UTC 2012

On Mon, Aug 27, 2012 at 1:16 PM, Warren Block <wblock at wonkity.com> wrote:
> On Mon, 27 Aug 2012, Kevin Oberman wrote:
>>> No obvious problems jumped out at me.  Here are my notes:
>>> http://www.wonkity.com/~wblock/docs/html/disksetup.html
>>> The gpart version is halfway down.  I really need to switch that around.
>> Pretty good page, but I would really suggest that you also do either
>> 4k or 1M alignment on your partitions. If you don't and use a disk
>> with 4K blocks (internally), you will have terrible performance.
> You mean add the -a parameter for gpart?  All that -a does is round
> partition starting blocks and sizes to even values.  If the numbers given
> are already even multiples, it does nothing.

You can force alignment by use of -b. I just managed to miss that you
were doing that. '-a' simply does the alignment and I have no reason
to forces the location of any partition as all are multiples of 1M and
4K. Use of -a and -b on the same command seems rather useless, but it
seems that ignoring -b is still a bug. I'm not sure I get your
statement that "All that -a does is round partition starting blocks
and sizes to even values. " -a aligns the start of every partition to
the stated size (as your example showed).

> The reason -a4k is not shown there is because until a few months ago, -a
> overrode -b.  So
>   # gpart add -t freebsd-ufs -l gprootfs -a4k -b 1M -s 2G da0
> did not start that partition at 1M, but instead at the next even 4K block
> after the first 512K partition; block 1064 instead of block 2048, AFAIR.
> The fix to gpart (thanks to ae@) is in 9-stable and 9.1, but not earlier
> releases.
> Mentioned a little farther down in the article is that keeping additional
> partitions to even multiples of 1M or 1G size will keep them in alignment.
>> 1M is recommended by Microsoft and used by Windows, but seems a bit
>> excessive to me.
> Also by some Sun RAID controllers and other systems.  1M is a nice even
> multiple of a lot of common block sizes.

True, but so is 4K (8-512 byte blocks). Obviously 1M is also a
multiple of all powers of 2 below it as is 4K. Even in this age  of
cheap disks, 1G alignment seems a bit extreme, but in most cases, it
really is insignificant for general purpose systems. It is an argument
for single partitions, but I always worry that something screwy will
blow up /var with log messages and I would not want this to fill all
disk space, so I like to keep that, as well as a read-only root. Just
old-fashioned, I guess.
R. Kevin Oberman, Network Engineer
E-mail: kob6558 at gmail.com

More information about the freebsd-stable mailing list