Subject: misc/33695: Netbsd/Freebsd disklabel syntax compatibility
To: None <misc-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <al@sigfpe.info>
List: netbsd-bugs
Date: 06/10/2006 23:10:00
>Number: 33695
>Category: misc
>Synopsis: Netbsd/Freebsd disklabel syntax compatibility
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: misc-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jun 10 23:10:00 +0000 2006
>Originator: Arnaud Lacombe
>Release: 3.99.21
>Organization:
>Environment:
>Description:
Last day I wanted to be able to access a disk (on an USB<->IDE adapter)
from both freebsd and netbsd. The only problem I encountered was that
netbsd was unable to read properly the label (and thus, it couldn't
configure each slice). I fixed the problem by writing the freebsd
disklabel (given by `disklabel -A /dev/...') on the disk from the netbsd box.
Freebsd disklabel is almost the same as netbsd one, except that the
field `sectors/unit' on freebsd is `total sectors' on netbsd . On both
system, it fills the `d_secperunit' field in the disklabel structure.
Attached patch allows to use both the netbsd and freebsd notation.
Arnaud
>How-To-Repeat:
try to write the disklabel -A output from a freebsd box to a netbsd box
>Fix:
--- disklabel/main.c.orig Sun Jun 11 00:16:58 2006
+++ disklabel/main.c Sun Jun 11 00:19:00 2006
@@ -1459,7 +1459,7 @@
lp->d_ncylinders = v;
continue;
}
- if (!strcmp(cp, "total sectors")) {
+ if (!strcmp(cp, "total sectors") || !strcmp(cp, "sectors/unit")) {
if (GETNUM32(tp, &v) != 0) {
warnx("line %d: bad %s: %s", lineno, cp, tp);
errors++;