atom feed14 messages in org.freebsd.freebsd-questionsWhy is 'disklabel'ng a new drive so d...
FromSent OnAttachments
Marc G. FournierMar 28, 2007 8:26 pm 
Kris KennawayMar 28, 2007 8:41 pm 
Marc G. FournierMar 28, 2007 8:48 pm 
ill...@gmail.comMar 28, 2007 9:04 pm 
Jerry McAllisterMar 28, 2007 9:20 pm 
Jerry McAllisterMar 28, 2007 9:24 pm 
Jerry McAllisterMar 28, 2007 9:29 pm 
RWMar 28, 2007 9:48 pm 
Jerry McAllisterMar 28, 2007 10:13 pm 
Antony MawerMar 29, 2007 10:07 pm 
Jerry McAllisterMar 29, 2007 11:22 pm 
Antony MawerMar 29, 2007 11:55 pm 
Jerry McAllisterMar 30, 2007 3:09 pm 
Daniel ErikssonMar 31, 2007 9:35 am 
Subject:Why is 'disklabel'ng a new drive so difficult?
From:Antony Mawer (fbsd@mawer.org)
Date:Mar 29, 2007 10:07:02 pm
List:org.freebsd.freebsd-questions

On 29/03/2007 6:41 AM, Kris Kennaway wrote:

On Wed, Mar 28, 2007 at 05:26:49PM -0300, Marc G. Fournier wrote:

Just bought a new WD SATA drive: WDC WD5000YS-01MPB1 09.02E09

Tried to disklabel it, and it gives me all kinds of warnings when I look at it after running the disklabel:

ganymede# bsdlabel -w ad4s1 auto ganymede# bsdlabel ad4s1c # /dev/ad4s1c: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 976767986 79 unused 0 0 c: 976768002 63 unused 0 0 # "raw" part, don't edit partition a: partition extends past end of unit partition c: partition extends past end of unit bsdlabel: partition c doesn't start at 0! bsdlabel: An incorrect partition c may cause problems for standard system utilities

Even if I try to use /stand/sysinstall to do the fdisk, the end result has 'issues' ...

So, what is the generally accepted method of label'ng a new drive? :(

I learned a useful trick the other day: you can use abbreviations like "1g", also '*' to mean "automatically calculate". See the manpage.

This timely thread came as I was experimenting with disklabel, and I noticed in the man page it says this:

offset The offset of the start of the partition from the beginning of the drive in sectors, or * to have bsdlabel calculate the correct offset to use (the end of the previous partition plus one, ignor- ing partition `c'. For partition `c', * will be interpreted as an offset of 0. The first partition should start at offset 16, because the first 16 sectors are reserved for metadata.

When I tried using "16" as the offset for my 'a' partition, I could no longer user "*" on my last partition to make it auto-size... disklabel then sized the partition so it went past the end of the disk. Presumably it's not taking into account the starting offset when it does this (gm0 is a 3gb gmirror device, with a single slice created on it using fdisk):

$ bsdlabel -R /dev/mirror/gm0s1 /dev/stdin 8 partitions: a: 2097152 16 4.2BSD b: 102400 * swap c: * 0 unused d: 102400 * 4.2BSD e: * * 4.2BSD partition e: partition extends past end of unit

However if I change the 'a' partition offset to 'e', it works:

$ bsdlabel -R /dev/mirror/gm0s1 /dev/stdin 8 partitions: a: 2097152 0 4.2BSD b: 102400 * swap c: * 0 unused d: 102400 * 4.2BSD e: * * 4.2BSD $ disklabel /dev/mirror/gm0s1 # /dev/mirror/gm0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 2097152 0 4.2BSD 0 0 0 b: 102400 2097152 swap c: 6281352 0 unused 0 0 # "raw" d: 102400 2199552 4.2BSD 0 0 0 e: 3979400 2301952 4.2BSD 0 0 0

Is it important to use 16 as the offset still, or is this a historical piece of information that is no longer relevant? Or is this is a bug in disklabel that should be fixed?

--Antony