Date: Sun, 9 Aug 1998 20:55:05 -0700 (PDT) From: Jim Mattson <jmattson@sonic.net> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: i386/7549: Logical DOS volumes not recognized in ExtendedX partitions Message-ID: <199808100355.UAA00473@denali.campbell.ca.us>
next in thread | raw e-mail | index | archive | help
>Number: 7549
>Category: i386
>Synopsis: Logical DOS volumes not recognized in ExtendedX partitions
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Aug 9 21:00:01 PDT 1998
>Last-Modified:
>Originator: Jim Mattson
>Organization:
>Release: FreeBSD 2.2.7-RELEASE i386
>Environment:
Windows 9X Extended DOS partitions for large disks (sysid 15)
>Description:
The machine dependent disk slice manager does not recognize
DOS partition type 15 (Extended DOS, LBA) as a container for
DOS logical volumes, so the appropriate slices (e.g. sd1s5)
are not initialized.
Note: This is a duplicate of bin/4120.
>How-To-Repeat:
Try anything that accesses a logical volume in the ExtendedX
partition. For example,
dd if=/dev/sd1s5 of=/dev/null
>Fix:
Look for sysid 15 as well as sysid 5 when looking for extended DOS
partitions in diskslice_machdep.c.
*** diskslice_machdep.c 1998/08/10 03:08:48 1.1
--- diskslice_machdep.c 1998/08/10 03:15:04
***************
*** 44,49 ****
--- 44,50 ----
#include <sys/conf.h>
#include <sys/disklabel.h>
#define DOSPTYP_EXTENDED 5
+ #define DOSPTYP_EXTENDEDX 15
#define DOSPTYP_ONTRACK 84
#include <sys/diskslice.h>
#include <sys/malloc.h>
***************
*** 344,350 ****
/* Handle extended partitions. */
sp -= NDOSPART;
for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
! if (sp->ds_type == DOSPTYP_EXTENDED)
extended(dname, bp->b_dev, strat, lp, ssp,
sp->ds_offset, sp->ds_size, sp->ds_offset,
max_nsectors, max_ntracks, mbr_offset);
--- 345,352 ----
/* Handle extended partitions. */
sp -= NDOSPART;
for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
! if (sp->ds_type == DOSPTYP_EXTENDED ||
! sp->ds_type == DOSPTYP_EXTENDEDX)
extended(dname, bp->b_dev, strat, lp, ssp,
sp->ds_offset, sp->ds_size, sp->ds_offset,
max_nsectors, max_ntracks, mbr_offset);
***************
*** 416,422 ****
if (dp->dp_scyl == 0 && dp->dp_shd == 0 && dp->dp_ssect == 0
&& dp->dp_start == 0 && dp->dp_size == 0)
continue;
! if (dp->dp_typ == DOSPTYP_EXTENDED) {
char buf[32];
sname = dsname(dname, dkunit(dev), WHOLE_DISK_SLICE,
--- 418,425 ----
if (dp->dp_scyl == 0 && dp->dp_shd == 0 && dp->dp_ssect == 0
&& dp->dp_start == 0 && dp->dp_size == 0)
continue;
! if (dp->dp_typ == DOSPTYP_EXTENDED ||
! dp->dp_typ == DOSPTYP_EXTENDEDX) {
char buf[32];
sname = dsname(dname, dkunit(dev), WHOLE_DISK_SLICE,
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808100355.UAA00473>
