devfs problem: creating new partition in empty slice

Eugene Grosbein eugen at www.svzserv.kemerovo.su
Sun Mar 11 05:33:09 UTC 2007


On Sat, Mar 10, 2007 at 10:30:21PM -0600, illoai at gmail.com wrote:

> >There is FreeBSD 6.2-STABLE (updated yesterday) having single
> >SATA drive. The drive has two equal-sized slices ad4s1 and ad4s2,
> >both marked with sysid 165 (FreeBSD).
> >
> >The system occupies ad4s1 (partitions from a to h),
> >and ad4s2 is empty. This scheme was created at installation time
> >with sysinstall started by system boot CD (official disk1).
> >
> >Now, when the system is up and running, I need to create partitions
> >within slice ad4s2. Questions are:
> >
> >1. Do I really need 'sysctl kern.geom.debugflags=16'
> >if I do not want to touch MBR or living slice at all, and why, if I do?
> 
> In my experience (for this type of use) no.  You do not need
> to set the sysctl.

Sysinstall insists on that to proceed. Erroneously?

> >2. How should I create new partitions within ad4s2? I've tried
> >to use sysinstall, it fills bsdlabel right but fails to newfs/mount
> >new partitions because device nodes do not exist. So now I have this:
> >
> ># bsdlabel ad4s2
> ># /dev/ad4s2:
> >8 partitions:
> >#        size   offset    fstype   [fsize bsize bps/cpg]
> >  a:   524288  2097152    4.2BSD        0     0     0
> >  b:  2097152        0      swap
> >  c: 78702435        0    unused        0     0         # "raw" part, 
> >  don't edit
> >  d:   524288  2621440    4.2BSD        0     0     0
> >  e:  4194304  3145728    4.2BSD        0     0     0
> >  f: 20971520  7340032    4.2BSD        0     0     0
> >  g: 20971520 28311552    4.2BSD        0     0     0
> >  h: 29419363 49283072    4.2BSD        0     0     0
> >
> ># ls -l /dev/ad4s2*
> >crw-r-----  1 root  operator    0,  75 10 мар 14:53 /dev/ad4s2
> >crw-r-----  1 root  operator    0,  84 10 мар 14:53 /dev/ad4s2c
> >
> >What should I do now to get needed device nodes? The server is remote one,
> >it runs in production and I'd prefer to not reboot it.
> 
> The device nodes are automagically created and managed
> on all versions of FreeBSD after 5.0.

More precisely, they should be automagically created, but they are not
in this case.

>  Attemting to write to
> or read from any device node will create it (if possible) or
> chuck an error.

# true > /dev/ad4s2a                                                  
bash: /dev/ad4s2a: Operation not supported

I don't think it is not possible for devfs to create device node
but it does not. Why?

> It appears that the bsdlabel from ad4s1 is also being read,
> or has been copied to, ad4s2.  You might want to
> % fdisk ad4
> and assure yourself that the slices do not overlap before
> continuing.

They do not overlap:

The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 77593887 (37887 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 1/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 77593950, size 78702435 (38428 Meg), flag 80 (active)
        beg: cyl 1023/ head 255/ sector 63;
        end: cyl 1023/ head 14/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

By the way, I doubt that sysinstall would create overlaping slices.

And labels was not "copied". I manually duplicated partitioning
of first slice in the second using sysinstall to learn how such task
should be done in 6.x. I did not encounter such problems in 2.2.x, 3.x
and 4.x where device nodes must be created manually with /dev/MAKEDEV.

Now, either I did not read some manual (I did read recent Handbook, though)
or this is a bug.

> % bsdlabel -w ad4s2 auto
> % bsdlabel -e ad4s2
> You can probably copy and paste those above values
> if you wish,

Thanks a lot! Bsdlabel did a trick and missing device nodes have appeared.

> but putting swap in two different slices of
> the same disk is a bit . . . unoptimal.

I have no intent to use both swap partition at the same time really :-)

So I think there is a time to discover why bsdlabel leads
to automagical rising of device nodes but sysinstall does not...

Eugene Grosbein


More information about the freebsd-stable mailing list