kern/120231: GEOM_CONCAT error adding second drive

Richard Bejtlich taosecurity at gmail.com
Sat Feb 2 18:10:01 PST 2008


>Number:         120231
>Category:       kern
>Synopsis:       GEOM_CONCAT error adding second drive
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 03 02:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Richard Bejtlich
>Release:        7.0-RC1
>Organization:
TaoSecurity
>Environment:
uname -a
FreeBSD edited.edited.com 7.0-RC1 FreeBSD 7.0-RC1 #0: Mon Dec 24 12:18:24 UTC 2007     root at logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
I want to use gconcat to make ad4s1h and ad5s1d appear to be a single /dev/concat/nsm partition.  When ad5s1d occupies the entire ad5s1 slice, then GEOM_CONCAT tries to add ad5s1 instead of ad5s1d.  GEOM_CONCAT doesn't work at that point.  Please see text below for an example.
>How-To-Repeat:
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    989M    129M    781M    14%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1e    989M     22K    910M     0%    /home
/dev/ad4s1h    5.9G    4.0K    5.4G     0%    /nsm1
/dev/ad5s1d     72G    4.0K     66G     0%    /nsm2
/dev/ad4s1f    989M     12K    910M     0%    /tmp
/dev/ad4s1d    4.8G    755M    3.7G    17%    /usr
/dev/ad4s1g     20G    232K     18G     0%    /var

# mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s1e on /home (ufs, local, soft-updates)
/dev/ad4s1h on /nsm1 (ufs, local, soft-updates)
/dev/ad5s1d on /nsm2 (ufs, local, soft-updates)
/dev/ad4s1f on /tmp (ufs, local, soft-updates)
/dev/ad4s1d on /usr (ufs, local, soft-updates

# umount /nsm1
# umount /nsm2
# gconcat label -v nsm ad4s1h ad5s1d
Metadata value stored on ad4s1h.
Metadata value stored on ad5s1d.
Done.
# dmesg | tail
ad4: 38146MB <Seagate ST340014AS 8.05> at ata2-master SATA150
ad5: 76293MB <SAMSUNG HD080HJ/P ZH100-34> at ata2-slave SATA150
lapic1: Forcing LINT1 to edge trigger
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ad4s1a
GEOM_CONCAT: Device nsm created (id=3517115025).
GEOM_CONCAT: Disk ad4s1h attached to nsm.
GEOM_CONCAT: Disk ad5s1 attached to nsm.
GEOM_CONCAT: Device nsm activated.
GEOM_CONCAT: Cannot add disk ad5s1d to nsm (error=17).

>Fix:
As a workaround, I can create two partitions on ad5s1 instead of one.

# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    989M    129M    781M    14%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1e    989M     22K    910M     0%    /home
/dev/ad4s1h    5.9G    4.0K    5.4G     0%    /nsm1
/dev/ad5s1e     71G    4.0K     65G     0%    /nsm2
/dev/ad4s1f    989M     12K    910M     0%    /tmp
/dev/ad5s1d    989M    4.0K    910M     0%    /tmp2
/dev/ad4s1d    4.8G    755M    3.7G    17%    /usr
/dev/ad4s1g     20G    232K     18G     0%    /var

# mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s1e on /home (ufs, local, soft-updates)
/dev/ad4s1h on /nsm1 (ufs, local, soft-updates)
/dev/ad5s1e on /nsm2 (ufs, local, soft-updates)
/dev/ad4s1f on /tmp (ufs, local, soft-updates)
/dev/ad5s1d on /tmp2 (ufs, local, soft-updates)
/dev/ad4s1d on /usr (ufs, local, soft-updates)
/dev/ad4s1g on /var (ufs, local, soft-updates)

# umount /nsm1
# umount /nsm2
# gconcat label -v nsm ad4s1h ad5s1e
Metadata value stored on ad4s1h.
Metadata value stored on ad5s1e.
Done.

# dmesg | tail
acd0: DVDR <Optiarc DVD+/-RW ND-3570A/104B> at ata0-master UDMA33
ad4: 38146MB <Seagate ST340014AS 8.05> at ata2-master SATA150
ad5: 76293MB <SAMSUNG HD080HJ/P ZH100-34> at ata2-slave SATA150
lapic1: Forcing LINT1 to edge trigger
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ad4s1a
GEOM_CONCAT: Device nsm created (id=1016589974).
GEOM_CONCAT: Disk ad4s1h attached to nsm.
GEOM_CONCAT: Disk ad5s1e attached to nsm.
GEOM_CONCAT: Device nsm activated.

>From here I can finish the process without a problem.

# newfs /dev/concat/nsm

# mkdir /nsm
# mount /dev/concat/nsm /nsm

# df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a        989M    129M    781M    14%    /
devfs              1.0K    1.0K      0B   100%    /dev
/dev/ad4s1e        989M     22K    910M     0%    /home
/dev/ad4s1f        989M     12K    910M     0%    /tmp
/dev/ad5s1d        989M    4.0K    910M     0%    /tmp2
/dev/ad4s1d        4.8G    755M    3.7G    17%    /usr
/dev/ad4s1g         20G    232K     18G     0%    /var
/dev/concat/nsm     77G    4.0K     71G     0%    /nsm

# mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s1e on /home (ufs, local, soft-updates)
/dev/ad4s1f on /tmp (ufs, local, soft-updates)
/dev/ad5s1d on /tmp2 (ufs, local, soft-updates)
/dev/ad4s1d on /usr (ufs, local, soft-updates)
/dev/ad4s1g on /var (ufs, local, soft-updates)
/dev/concat/nsm on /nsm (ufs, local)

Thank you.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list