Re: mount_ext2fs: *logische* Partition mounten

From: Franz Urbanski <fou(at)ON-Luebeck.DE>
Date: Thu, 23 Mar 2000 15:43:58 +0100

On Thu, Mar 23, 2000 at 02:02:37PM +0100, Karl-Heinz Haag wrote:
> Probleme habe ich mit dem Mounten von Linux-Filsystemen.
> Und zwar von solchen, die als *logische* in einer
> erweiterten Partition liegen.
> Nach
> mount_ext2fs /dev/wd0s10 /mnt ; ls /mnt
> rebootet das System [^^^^^^=/dev/hda10 in Linux]
> mit einer Fehlermeldung des Kernels.
> Mache ich da was falsch?
>
> Um es vorwegzunehmen:
> -den GENERIC kernel habe ich mit den eingefügten
> zwei Zeilen
> options COMPAT_LINUX
> options "EXT2FS"
> neu kompiliert und installiert (entspr. der Anleitung
> in der FreeX)
> -Zugriff auf _primäre_ Linux-Partitionen klappt sehr gut damit
>
> Die Suche im handbook und im Faq hat zu meinem Problem (logische
> Partitions mounten) nichts erbracht.
>
> Es plagt mich die bange Vermutung daß FreeBSD im Unterschied
> zu Linux nur etwas mit primären Partitionen anfangen kann, wie
> es ja jedenfalls für das Installations-Filesystem gilt :(

Es geht *doch* - jedenfalls in der 3.4.
Dazu muss nur der folgende kleine Patch eingebaut werden:
(die Zeilen, die mit '!' oder '+' beginnen, muessen
 geaendert bzw. eingebaut werden)
--8<----------------------------------------------------------------------
*** /sys/i386/isa/diskslice_machdep.c-old
--- /sys/i386/isa/diskslice_machdep.c
***************
*** 44,49 ****
--- 44,50 ----
  #include <sys/disklabel.h>
  #define DOSPTYP_EXTENDED 5
  #define DOSPTYP_EXTENDEDX 15
+ #define DOSPTYP_EXTENDED_LINUX 0x85
  #define DOSPTYP_ONTRACK 84
  #include <sys/diskslice.h>
  #include <sys/malloc.h>
***************
*** 327,333 ****
          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);
--- 328,335 ----
          sp -= NDOSPART;
          for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
                  if (sp->ds_type == DOSPTYP_EXTENDED ||
! sp->ds_type == DOSPTYP_EXTENDEDX ||
! sp->ds_type == DOSPTYP_EXTENDED_LINUX)
                          extended(dname, bp->b_dev, strat, lp, ssp,
                                   sp->ds_offset, sp->ds_size, sp->ds_offset,
                                   max_nsectors, max_ntracks, mbr_offset);
--8<----------------------------------------------------------------------

Leider funktioniert das ab 4.0 nicht mehr, da es dort kein
diskslice_machdep.c mehr gibt.

Weiss jemand, wo das dort etwas vergleichbares gibt?

Ein grep auf DOSPTYP_EXTENDED war nicht erfolgreich.

Ciao

Franz

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 23 Mar 2000 - 15:44:36 CET

search this site