Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jul 2000 21:48:49 +0200
From:      "Leonard den Ottolander" <leonardjo@hetnet.nl>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/19756: Inability to use linux extended partition (type 0x85)
Message-ID:  <39665041.10109.B8D16@localhost>

next in thread | raw e-mail | index | archive | help

>Number:         19756
>Category:       kern
>Synopsis:       Inability to use linux extended partition (type 0x85)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 07 13:00:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Leonard den Ottolander
>Release:        FreeBSD 4.0-RELEASE i386
>Organization:
>Environment:

>Description:

 The kernel is yet unable to use the linux extended partition (type 0x85). The
linux extended partition is just a dos extended partition with a different
identifier, as not to confuse dos.
 Implementing the use of the linux extended partition requires the partition
type to be known, and a check for its presence.

>How-To-Repeat:

>Fix:

 Following is a diff of the original to a patched /sys/kern/subr_diskmbr.c:

*** subr_diskmbr.c.000	Fri Jan 28 11:22:07 2000
--- subr_diskmbr.c	Mon Jun 26 19:42:55 2000
***************
*** 49,55 ****
--- 49,59 ----
  #include <sys/disklabel.h>
  #define	DOSPTYP_EXTENDED	5
  #define	DOSPTYP_EXTENDEDX	15
+ #define	DOSPTYP_LINUXEXTENDED	133
  #define	DOSPTYP_ONTRACK		84
+ #define IS_EXTENDED(p) \
+ 	((p) == DOSPTYP_EXTENDED || (p) == DOSPTYP_EXTENDEDX \
+ 	|| (p) == DOSPTYP_LINUXEXTENDED )
  #include <sys/diskslice.h>
  #include <sys/malloc.h>
  #include <sys/syslog.h>
***************
*** 343,350 ****
  	/* Handle extended partitions. */
  	sp -= NDOSPART;
  	for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
! 		if (sp->ds_type == DOSPTYP_EXTENDED ||
! 		    sp->ds_type == DOSPTYP_EXTENDEDX)
  			mbr_extended(bp->b_dev, lp, ssp,
  				     sp->ds_offset, sp->ds_size, sp->ds_offset,
  				     max_nsectors, max_ntracks, mbr_offset, 1);
--- 347,353 ----
  	/* Handle extended partitions. */
  	sp -= NDOSPART;
  	for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
! 		if (IS_EXTENDED(sp->ds_type))
  			mbr_extended(bp->b_dev, lp, ssp,
  				     sp->ds_offset, sp->ds_size, sp->ds_offset,
  				     max_nsectors, max_ntracks, mbr_offset, 1);
***************
*** 433,440 ****
  		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) {
  			static char buf[32];
  
  			sname = dsname(dev, dkunit(dev), WHOLE_DISK_SLICE,
--- 436,442 ----
  		if (dp->dp_scyl == 0 && dp->dp_shd == 0 && dp->dp_ssect == 0
  		    && dp->dp_start == 0 && dp->dp_size == 0)
  			continue;
! 		if (IS_EXTENDED(dp->dp_typ)) {
  			static char buf[32];
  
  			sname = dsname(dev, dkunit(dev), WHOLE_DISK_SLICE,




>Release-Note:
>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?39665041.10109.B8D16>