X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C7F952.384DA6E8@onstor-exch02.onstor.net>; Mon, 17 Sep 2007 09:43:13 -0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C7F952.384DA6E8"
Content-class: urn:content-classes:message
Subject: FW: migration actions items
Date: Mon, 17 Sep 2007 09:43:12 -0800
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E0587B9DF@onstor-exch02.onstor.net>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: FW: migration actions items
Thread-Index: Acf1mw1/U68mGhDAR4eTp5mNZA6Q5wAAbCzAAN51SiAADYgNoAABTBPw
References: <BB375AF679D4A34E9CA8DFA650E2B04E0579D760@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E0587B7A8@onstor-exch02.onstor.net> 
From: "Deepak Veliath" <deepak.veliath@onstor.com>
To: "dl-Cougar" <dl-Cougar@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7F952.384DA6E8
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C7F952.384DA6E8"


------_=_NextPart_002_01C7F952.384DA6E8
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable



> _____________________________________________=20
> From: 	Deepak Veliath =20
> Sent:	Monday, September 17, 2007 10:21 AM
> To:	Tim Gardner; Andy Sharp
> Cc:	Jeyaram Sankar Gurusamy (HCL)
> Subject:	RE: migration actions items
>=20
> Hello Tim and Andy,
> I'm including a write-up I'd sent Jeyaram on the problem you'll have
> of migrating data from the OpenBSD based Bobcat to Linux based Cougar.
>=20
>=20
>=20
> 	_____________________________________________=20
> 	From: 	Deepak Veliath =20
> 	Sent:	Friday, September 14, 2007 1:40 AM
> 	To:	Jeyaram Sankar Gurusamy (HCL); Narain Ramadass
> 	Subject:	RE: migration actions items
>=20
> 	Hello Jeyaram and Narain,
> 	=20
> 	The problem really is in two parts as Andy said.
> 	The first is being able to read OpenBSD or ONStor's OpenBSD's
> disklabels in linux.
> 	=20
> 	I poked around the disk and found that ONStor's disklabels do
> not reside in the boot sector as the default BSD disklabels do.
>=20
> 		[BTW a disklabel is an extended partitioning scheme used
> by the BSDs.  You give BSD a primary partition and it sub-divides this
> into its own logical partitions.  All Unices except Linux have their
> own extended partitioning scheme including MP-RAS, Solaris, MS-DOS]
>=20
> 	So because of the non-std disklabel location the Linux kernel --
> which can detect BSD disklabels -- does not see these and the /dev/
> entries for these partitions are not created.
> 	=20
> 	The disklabels in ONStor's CFs (OCF) reside in the sector after
> the boot-sector.  Its offset within this sector has also been shifted
> to 0.
> 	=20
> 	I looked around for a tiny disklabel tool for Linux and found
> one called minlabel.  I modified it with the info above.  Running it
> on the OCF shows me the cylinder boundaries of all the ONStor
> partitions (All screen logs begin with my "hanging" shell prompt.  The
> "@" means I'm running whatever follows in quotes as root):
>=20
> 		<veliath@mleccha:/home/veliath/Downloads/minlabel-1.2>
> 		@ 'minlabel -r /dev/sda'
> 		# /dev/sda:
> 		type: ESDI
> 		disk: ESDI/IDE disk, label: cf488.label
> 		flags:
> 		bytes/sector: 512    sectors/track: 63
> 		tracks/cylinder: 16    sectors/cylinder: 1008
> 		cylinders: 993    sectors/unit: 1000944
> 		rpm: 3600    interleave: 1
> 		trackskew: 0    cylinderskew: 0
> 		headswitch: 0           # milliseconds
> 		track-to-track seek: 0  # milliseconds
> 		drivedata: 0
> 		=20
> 		16 partitions:
> 		#        size   offset    fstype   Size(Kb)   Size(Mb)
> 		  1:   643104        0    4.2BSD     321552     314.0
> # (Cyl.    0 - 637)
> 		  2:    59472   643104      swap      29736      29.0
> # (Cyl.  638 - 696)
> 		  3:  1000944        0    unused     500472     488.7
> # (Cyl.    0 - 992)
> 		  4:   159264   702576    4.2BSD      79632      77.7
> # (Cyl.  697 - 854)
> 		  5:    39312   861840    4.2BSD      19656      19.1
> # (Cyl.  855 - 893)
> 		  6:    99792   901152    4.2BSD      49896      48.7
> # (Cyl.  894 - 992)
> 		  7:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  8:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  9:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  ::        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  ;:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  <:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  =3D:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  >:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  ?:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 		  @:        0        0    unused          0       0.0
> # (Cyl.    0 - -1)
> 	=09
> 	A key feature of the BSD disklabeling scheme is that the 3rd
> partition represents the whole disk or primary BSD partition
> (depending on which level the BSD disklabel has been used).
> 	=20
> 	Now the boot sector's partition table (MBR) that Linux sees does
> not seem to be used in the OCF.  So I created the last three
> partitions' information into the MBR using fdisk.  The MBR looks as
> below:
>=20
> 		<veliath@mleccha:/mnt>
> 		@ 'fdisk -l /dev/sda'
> 		This disk has both DOS and BSD magic.
> 		Give the 'b' command to go to BSD mode.
>=20
> 		Disk /dev/sda: 512 MB, 512483328 bytes
> 		16 heads, 63 sectors/track, 993 cylinders Units =3D
> cylinders of 1008 * 512 =3D 516096 bytes
>=20
> 		   Device Boot      Start         End      Blocks   Id
> System
> 		/dev/sda1             698         855       79632   83
> Linux
> 		/dev/sda2             856         894       19656   83
> Linux
> 		/dev/sda3             895         993       49896   83
> Linux
> 	=20
> 	Note that the BSD disklabeling numbers cylinders from 0, while
> Linux numbers from 1.  The reason I did not duplicate the 1st BSD
> partition is that when the Linux fdisk is asked to use cylinder 1, it
> always leaves the first 63 sectors out (it can be changed by entering
> expert mode, but who cares).  So we lose these sectors and cannot
> access the FS in BSD partition a.  However, we can always see BSD
> partition a's contents using the device node for the whole disk --
> /dev/sda in this case.
> 	=20
> 	So after creating these partitions all the four partitions and
> their FS contents are visible:
>=20
> 		<veliath@mleccha:/mnt>
> 		@ 'file - < /dev/sda1'
> 		/dev/stdin: Unix Fast File system [v1] (little-endian),
> last mounted on /var, last written at Sat Sep  8 01:28:42 2007, clean
> flag 1, number of blocks  79632, number of data blocks 77055, number
> of cylinder groups 10, block size 8192, fragment size 1024, minimum
> percentage of free blocks 0, rotational  delay 0ms, disk rotational
> speed 60rps, SPACE optimization
>=20
> 		<veliath@mleccha:/mnt>
> 		@ 'file - < /dev/sda2'
> 		/dev/stdin: Unix Fast File system [v1] (little-endian),
> last mounted on /tmp, last written at Sat Sep  8 01:28:41 2007, clean
> flag 1, number of blocks  19656, number of data blocks 18871, number
> of cylinder groups 3, block size 8192, fragment size 1024, minimum
> percentage of free blocks 0, rotational  delay 0ms, disk rotational
> speed 60rps, SPACE optimization
>=20
> 		<veliath@mleccha:/mnt>
> 		@ 'file - < /dev/sda3'
> 		/dev/stdin: Unix Fast File system [v1] (little-endian),
> last mounted on /onstor/conf, last written at Sat Sep  8 01:28:41
> 2007, clean flag 1, number  of blocks 49896, number of data blocks
> 48087, number of cylinder groups 7, block size 8192, fragment size
> 1024, minimum percentage of free blocks 0,  rotational delay 0ms, disk
> rotational speed 60rps, SPACE optimization
>=20
> 		<veliath@mleccha:/mnt>
> 		@ 'file - < /dev/sda'
> 		/dev/stdin: Unix Fast File system [v1] (little-endian),
> last mounted on /, last written at Sat Sep  8 01:28:42 2007, clean
> flag 1, number of blocks  321552, number of data blocks 311295, number
> of cylinder groups 40, block size 8192, fragment size 1024, minimum
> percentage of free blocks 0,  rotational delay 0ms, disk rotational
> speed 60rps, SPACE optimization=20
> 	=20
> 	The second problem is mounting these file-systems.  Linux 2.6
> has read-only UFS support in the kernel.  So I compiled it in in to
> mine and am able to mount the filesystems.  I then configured the
> kernel for MIPS and ensured that the UFS file-system support exists in
> the MIPS little-endian version as well.  BTW UFS is Sun's name for
> BSD's FFS.  The FFS type has to be passed in as a mount option:
>=20
> 		<veliath@mleccha:/home/veliath/Downloads/minlabel-1.2>
> 		@ 'mount -o ro,ufstype=3D44bsd /dev/sda3 /mnt'
> 	=20
> 	So I hope the MO I'm suggesting is clear:
> 	1) We essentially mount the 1st BSD partition.  Its usually the
> root FS.  From it we find the associations of the partitons with their
> mount points.  We copy out what ever we need from this partition.
> 	2) We dump the disklabels using minlabel and recreate them as
> MBR partitions visible to Linux using fdisk or sfdisk (we delete the
> existing FAT16 partition -- it's a place holder).  Note that we can
> only create 4 partitions in the MBR at a time.  The 1st disklabel
> partition is visible via the "whole disk" device node and so does not
> need a partition.  Most of the recent filers use only a total of 4
> partitions (a, d, e and f) -- so we have an MBR slot extra!  If we are
> to support more than 5 partitions we could consider using the std BSD
> labels or even extended-logical partitions.
> 	3) Force a re-read of the MBR partition table using the ioctl or
> worst-case Eject/Re-insert the OCF or reset the disk drive slot to
> force the updated MBR partitions to become visible.  We can optionally
> validate the partitions on Linux by running "file" on their
> corresponding device nodes to make sure FFS file-systems are visible
> there.
> 	4) Mount the partitions and copy off whatever is needed.
>=20
> 	This can be scripted (hopefully including the eject & re-insert
> if it comes to it)
>=20
> 	You'll could try duplicating it there at the GRO.  You'll will
> need an OCF from a bobcat, a USB CF reader and a Linux machine whose
> kernel you'll can rebuild.  I'm attaching the minlabel source tree and
> binary (built for my gentoo based Linux system).
> 	 <<minlabel-ONStor.tbz2>>=20
>=20
> 	I put the OCF I removed from my filer back into it and made sure
> the filer does not behave any differently now that its MBR has been
> changed.  I booted off it and everythings hunky-dory.
>=20
> 	Let me know what you'll think.
>=20
> 	veliath
>=20
>=20
> u> -----Original Message-----
> u> From: Jeyaram Sankar Gurusamy (HCL)=20
> u> Sent: Monday, September 17, 2007 3:38 AM
> u> To: Tim Gardner
> u> Cc: Deepak Veliath
> u> Subject: RE: migration actions items
> u>=20
> u> Tim,
> u>=20
> u> Veliath has extensive experience in the similar areas.  I=20
> u> have requested him to see if he can suggest a possible=20
> u> solution for this problem and he has come up with a possible=20
> u> approach.  Please feel free to talk him about this if this=20
> u> problem hasn't been addressed.
> u>=20
> u> Thanks and regards,
> u> G. Jeyaram Sankar
> u> HCL Technologies Ltd, 50-53 Greams Road, Chennai - 600006
> u> Phone: +91-44-28293298 x 2413
> u> Fax: +91-44-28294969
> u> Cell: +91 99401 30044

------_=_NextPart_002_01C7F952.384DA6E8
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7652.24">
<TITLE>FW: migration actions items</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>
<BR>
<UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D1 =
FACE=3D"Tahoma">_____________________________________________ =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 FACE=3D"Tahoma">From: =
&nbsp;</FONT></B> <FONT SIZE=3D1 FACE=3D"Tahoma">Deepak Veliath&nbsp; =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">Sent:&nbsp;&nbsp;</FONT></B> <FONT SIZE=3D1 =
FACE=3D"Tahoma">Monday, September 17, 2007 10:21 AM</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">To:&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B> <FONT SIZE=3D1 =
FACE=3D"Tahoma">Tim Gardner; Andy Sharp</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">Cc:&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B> <FONT SIZE=3D1 =
FACE=3D"Tahoma">Jeyaram Sankar Gurusamy (HCL)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">Subject:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>=
</B> <FONT SIZE=3D1 FACE=3D"Tahoma">RE: migration actions =
items</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Verdana">Hello Tim and =
Andy,</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Verdana">I'm including a =
write-up I'd sent Jeyaram on the problem you'll have of migrating data =
from the OpenBSD based Bobcat to Linux based Cougar.</FONT></SPAN></P>
<BR>
<BR>
<UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D1 =
FACE=3D"Tahoma">_____________________________________________ =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 FACE=3D"Tahoma">From: =
&nbsp;</FONT></B> <FONT SIZE=3D1 FACE=3D"Tahoma">Deepak Veliath&nbsp; =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">Sent:&nbsp;&nbsp;</FONT></B> <FONT SIZE=3D1 =
FACE=3D"Tahoma">Friday, September 14, 2007 1:40 AM</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">To:&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B> <FONT SIZE=3D1 =
FACE=3D"Tahoma">Jeyaram Sankar Gurusamy (HCL); Narain =
Ramadass</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 =
FACE=3D"Tahoma">Subject:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>=
</B> <FONT SIZE=3D1 FACE=3D"Tahoma">RE: migration actions =
items</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">Hello Jeyaram and Narain,</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">The problem really is in two parts as Andy =
said.</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">The first</FONT></B><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana"> is being able to read OpenBSD or ONStor's OpenBSD's =
disklabels in linux.</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">I poked around the disk and found that ONStor's =
disklabels do not reside in the boot sector as the default BSD =
disklabels do.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT =
COLOR=3D"#800000" SIZE=3D2 FACE=3D"Verdana">[BTW a disklabel is an =
extended partitioning scheme used by the BSDs.&nbsp; You give BSD a =
primary partition and it sub-divides this into its own logical =
partitions.&nbsp; All Unices except Linux have their own extended =
partitioning scheme including MP-RAS, Solaris, MS-DOS]</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">So because of the non-std disklabel location the Linux =
kernel -- which can detect BSD disklabels -- does not see these and the =
/dev/ entries for these partitions are not created.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">The disklabels in ONStor's CFs (OCF) reside in the =
sector after the boot-sector.&nbsp; Its offset within this sector has =
also been shifted to 0.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">I looked around for a tiny disklabel tool for Linux and =
found one called minlabel.&nbsp; I modified it with the info =
above.&nbsp; Running it on the OCF shows me the cylinder boundaries of =
all the ONStor partitions (All screen logs begin with my =
&quot;hanging&quot; shell prompt.&nbsp; The &quot;@&quot; means I'm =
running whatever follows in quotes as root):</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT =
SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/home/veliath/Downloads/minlabel-1.2&gt;</FONT><=
/SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">@ 'minlabel -r =
/dev/sda'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New"># /dev/sda:</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">type: ESDI</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">disk: ESDI/IDE disk, label: =
cf488.label</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">flags:</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">bytes/sector: 512&nbsp;&nbsp;&nbsp; =
sectors/track: 63</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">tracks/cylinder: =
16&nbsp;&nbsp;&nbsp; sectors/cylinder: 1008</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">cylinders: 993&nbsp;&nbsp;&nbsp; =
sectors/unit: 1000944</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">rpm: 3600&nbsp;&nbsp;&nbsp; =
interleave: 1</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">trackskew: 0&nbsp;&nbsp;&nbsp; =
cylinderskew: 0</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">headswitch: =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # =
milliseconds</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">track-to-track seek: 0&nbsp; # =
milliseconds</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">drivedata: 0</FONT></SPAN>

<BR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
SIZE=3D2 FACE=3D"Courier New"> </FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">16 partitions:</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier =
New">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp; =
offset&nbsp;&nbsp;&nbsp; fstype&nbsp;&nbsp; Size(Kb)&nbsp;&nbsp; =
Size(Mb)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 1:&nbsp;&nbsp; =
643104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
4.2BSD&nbsp;&nbsp;&nbsp;&nbsp; 321552&nbsp;&nbsp;&nbsp;&nbsp; =
314.0&nbsp;&nbsp; # (Cyl.&nbsp;&nbsp;&nbsp; 0 - 637)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 2:&nbsp;&nbsp;&nbsp; =
59472&nbsp;&nbsp; 643104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
swap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 29736&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
29.0&nbsp;&nbsp; # (Cyl.&nbsp; 638 - 696)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 3:&nbsp; =
1000944&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp; 500472&nbsp;&nbsp;&nbsp;&nbsp; =
488.7&nbsp;&nbsp; # (Cyl.&nbsp;&nbsp;&nbsp; 0 - 992)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 4:&nbsp;&nbsp; =
159264&nbsp;&nbsp; 702576&nbsp;&nbsp;&nbsp; =
4.2BSD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 79632&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
77.7&nbsp;&nbsp; # (Cyl.&nbsp; 697 - 854)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 5:&nbsp;&nbsp;&nbsp; =
39312&nbsp;&nbsp; 861840&nbsp;&nbsp;&nbsp; =
4.2BSD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19656&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
19.1&nbsp;&nbsp; # (Cyl.&nbsp; 855 - 893)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; 6:&nbsp;&nbsp;&nbsp; =
99792&nbsp;&nbsp; 901152&nbsp;&nbsp;&nbsp; =
4.2BSD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49896&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
48.7&nbsp;&nbsp; # (Cyl.&nbsp; 894 - 992)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
::&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
&lt;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
=3D:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
&gt;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
?:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; =
@:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; =
unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp; # =
(Cyl.&nbsp;&nbsp;&nbsp; 0 - -1)</FONT></SPAN>

<BR><SPAN LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
</SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">A key feature of the BSD disklabeling scheme is that =
the 3rd partition represents the whole disk or primary BSD partition =
(depending on which level the BSD disklabel has been =
used).</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">Now the boot sector's partition table (MBR) that Linux =
sees does not seem to be used in the OCF.&nbsp; So I created the last =
three partitions' information into the MBR using fdisk.&nbsp; The MBR =
looks as below:</FONT></SPAN></P>
<UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/mnt&gt;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'fdisk -l =
/dev/sda'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">This disk =
has both DOS and BSD magic.</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">Give the =
'b' command to go to BSD mode.</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">Disk =
/dev/sda: 512 MB, 512483328 bytes</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">16 heads, =
63 sectors/track, 993 cylinders Units =3D cylinders of 1008 * 512 =3D =
516096 bytes</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; =
Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp; Id&nbsp; =
System</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; 698&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
855&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 79632&nbsp;&nbsp; 83&nbsp; =
Linux</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">/dev/sda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; 856&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
894&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19656&nbsp;&nbsp; 83&nbsp; =
Linux</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">/dev/sda3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; 895&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
993&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49896&nbsp;&nbsp; 83&nbsp; =
Linux</FONT></SPAN>
</UL>
<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">Note that the BSD disklabeling numbers cylinders from =
0, while Linux numbers from 1.&nbsp; The reason I did not duplicate the =
1st BSD partition is that when the Linux fdisk is asked to use cylinder =
1, it always leaves the first 63 sectors out (it can be changed by =
entering expert mode, but who cares).&nbsp; So we lose these sectors and =
cannot access the FS in BSD partition a.&nbsp; However, we can always =
see BSD partition a's contents using the device node for the whole disk =
-- /dev/sda in this case.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">So after creating these partitions all the four =
partitions and their FS contents are visible:</FONT></SPAN>
</P>
<UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/mnt&gt;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'file - =
&lt; /dev/sda1'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">/dev/stdin: =
Unix Fast File system [v1] (little-endian), last mounted on /var, last =
written at Sat Sep&nbsp; 8 01:28:42 2007, clean flag 1, number of =
blocks&nbsp; 79632, number of data blocks 77055, number of cylinder =
groups 10, block size 8192, fragment size 1024, minimum percentage of =
free blocks 0, rotational&nbsp; delay 0ms, disk rotational speed 60rps, =
SPACE optimization</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/mnt&gt;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'file - =
&lt; /dev/sda2'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">/dev/stdin: =
Unix Fast File system [v1] (little-endian), last mounted on /tmp, last =
written at Sat Sep&nbsp; 8 01:28:41 2007, clean flag 1, number of =
blocks&nbsp; 19656, number of data blocks 18871, number of cylinder =
groups 3, block size 8192, fragment size 1024, minimum percentage of =
free blocks 0, rotational&nbsp; delay 0ms, disk rotational speed 60rps, =
SPACE optimization</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/mnt&gt;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'file - =
&lt; /dev/sda3'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">/dev/stdin: =
Unix Fast File system [v1] (little-endian), last mounted on =
/onstor/conf, last written at Sat Sep&nbsp; 8 01:28:41 2007, clean flag =
1, number&nbsp; of blocks 49896, number of data blocks 48087, number of =
cylinder groups 7, block size 8192, fragment size 1024, minimum =
percentage of free blocks 0,&nbsp; rotational delay 0ms, disk rotational =
speed 60rps, SPACE optimization</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/mnt&gt;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'file - =
&lt; /dev/sda'</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">/dev/stdin: =
Unix Fast File system [v1] (little-endian), last mounted on /, last =
written at Sat Sep&nbsp; 8 01:28:42 2007, clean flag 1, number of =
blocks&nbsp; 321552, number of data blocks 311295, number of cylinder =
groups 40, block size 8192, fragment size 1024, minimum percentage of =
free blocks 0,&nbsp; rotational delay 0ms, disk rotational speed 60rps, =
SPACE optimization</FONT><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana"> </FONT></SPAN></P>
</UL>
<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><B><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">The second</FONT></B><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana"> problem is mounting these file-systems.&nbsp; Linux =
2.6 has read-only UFS support in the kernel.&nbsp; So I compiled it in =
in to mine and am able to mount the filesystems.&nbsp; I then configured =
the kernel for MIPS and ensured that the UFS file-system support exists =
in the MIPS little-endian version as well.&nbsp; BTW UFS is Sun's name =
for BSD's FFS.&nbsp; The FFS type has to be passed in as a mount =
option:</FONT></SPAN></P>
<UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier =
New">&lt;veliath@mleccha:/home/veliath/Downloads/minlabel-1.2&gt;</FONT><=
/SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">@ 'mount -o =
ro,ufstype=3D44bsd /dev/sda3 /mnt'</FONT></SPAN>
</UL>
<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">&nbsp;</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">So I hope the MO I'm suggesting is clear:</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">1) We essentially mount the 1st BSD partition.&nbsp; =
Its usually the root FS.&nbsp; From it we find the associations of the =
partitons with their mount points.&nbsp; We copy out what ever we need =
from this partition.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">2) We dump the disklabels using minlabel and recreate =
them as MBR partitions visible to Linux using fdisk or sfdisk (we delete =
the existing FAT16 partition -- it&#8217;s a place holder).&nbsp; Note =
that we can only create 4 partitions in the MBR at a time.&nbsp; The 1st =
disklabel partition is visible via the &quot;whole disk&quot; device =
node and so does not need a partition.&nbsp; Most of the recent filers =
use only a total of 4 partitions (a, d, e and f) -- so we have an MBR =
slot extra!&nbsp; If we are to support more than 5 partitions we could =
consider using the std BSD labels or even extended-logical =
partitions.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">3) Force a re-read of the MBR partition table using the =
ioctl or worst-case Eject/Re-insert the OCF or reset the disk drive slot =
to force the updated MBR partitions to become visible.&nbsp; We can =
optionally validate the partitions on Linux by running &quot;file&quot; =
on their corresponding device nodes to make sure FFS file-systems are =
visible there.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">4) Mount the partitions and copy off whatever is =
needed.</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">This can be scripted (hopefully including the eject =
&amp; re-insert if it comes to it)</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">You'll could try duplicating it there at the GRO.&nbsp; =
You'll will need an OCF from a bobcat, a USB CF reader and a Linux =
machine whose kernel you'll can rebuild.&nbsp; I'm attaching the =
minlabel source tree and binary (built for my gentoo based Linux =
system).</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT FACE=3D"Arial" SIZE=3D2 COLOR=3D"#000000"> =
&lt;&lt;minlabel-ONStor.tbz2&gt;&gt; </FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">I put the OCF I removed from my filer back into it and =
made sure the filer does not behave any differently now that its MBR has =
been changed.&nbsp; I booted off it and everythings =
hunky-dory.</FONT></SPAN></P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">Let me know what you'll think.</FONT></SPAN>
</P>

<P><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" SIZE=3D2 =
FACE=3D"Verdana">veliath</FONT></SPAN>
</P>
<BR>
</UL>
<P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
-----Original Message-----</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; From: =
Jeyaram Sankar Gurusamy (HCL) </FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Sent: =
Monday, September 17, 2007 3:38 AM</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; To: Tim =
Gardner</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Cc: Deepak =
Veliath</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Subject: =
RE: migration actions items</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
Tim,</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Veliath has =
extensive experience in the similar areas.&nbsp; I </FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; have =
requested him to see if he can suggest a possible </FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; solution =
for this problem and he has come up with a possible </FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
approach.&nbsp; Please feel free to talk him about this if this =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; problem =
hasn't been addressed.</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; =
</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Thanks and =
regards,</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; G. Jeyaram =
Sankar</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; HCL =
Technologies Ltd, 50-53 Greams Road, Chennai &#8211; =
600006</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Phone: =
+91-44-28293298 x 2413</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Fax: =
+91-44-28294969</FONT></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">u&gt; Cell: +91 =
99401 30044</FONT></SPAN>
</P>
</UL>
</BODY>
</HTML>
------_=_NextPart_002_01C7F952.384DA6E8--

------_=_NextPart_001_01C7F952.384DA6E8
Content-Type: application/octet-stream;
	name="minlabel-ONStor.tbz2"
Content-Transfer-Encoding: base64
Content-Description: minlabel-ONStor.tbz2
Content-Disposition: attachment;
	filename="minlabel-ONStor.tbz2"

QlpoOTFBWSZTWd0A0sEATPF//////////////////////////9///97/////////////4EUvrR6B
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

------_=_NextPart_001_01C7F952.384DA6E8--
