X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C7F94F.2E39E7FB@onstor-exch02.onstor.net>; Mon, 17 Sep 2007 09:21:27 -0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C7F94F.2E39E7FB"
Content-class: urn:content-classes:message
Subject: RE: migration actions items
Date: Mon, 17 Sep 2007 09:21:26 -0800
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E0587B974@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E0587B7A8@onstor-exch02.onstor.net>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: migration actions items
Thread-Index: Acf1mw1/U68mGhDAR4eTp5mNZA6Q5wAAbCzAAN51SiAADYgNoA==
References: <BB375AF679D4A34E9CA8DFA650E2B04E0579D760@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E0587B7A8@onstor-exch02.onstor.net>
From: "Deepak Veliath" <deepak.veliath@onstor.com>
To: "Tim Gardner" <tim.gardner@onstor.com>,
	"Andy Sharp" <andy.sharp@onstor.com>
Cc: "Jeyaram Sankar Gurusamy (HCL)" <jeyaramg@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7F94F.2E39E7FB
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C7F94F.2E39E7FB"


------_=_NextPart_002_01C7F94F.2E39E7FB
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

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
	From: 	Deepak Veliath =20
	Sent:	Friday, September 14, 2007 1:40 AM
	To:	Jeyaram Sankar Gurusamy (HCL); Narain Ramadass
	Subject:	RE: migration actions items

	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.

		[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]

	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
	 <<minlabel-ONStor.tbz2>>=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):

		<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:

		<veliath@mleccha:/mnt>
		@ 'fdisk -l /dev/sda'
		This disk has both DOS and BSD magic.
		Give the 'b' command to go to BSD mode.

		Disk /dev/sda: 512 MB, 512483328 bytes
		16 heads, 63 sectors/track, 993 cylinders Units =3D
cylinders of 1008 * 512 =3D 516096 bytes

		   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:

		<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

		<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

		<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

		<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:

		<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.

	This can be scripted (hopefully including the eject & re-insert
if it comes to it)

	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).

	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.

	Let me know what you'll think.

	veliath


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_01C7F94F.2E39E7FB
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>RE: migration actions items</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<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 FACE=3D"Arial" SIZE=3D2 =
COLOR=3D"#000000"> &lt;&lt;minlabel-ONStor.tbz2&gt;&gt; </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 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>

</BODY>
</HTML>
------_=_NextPart_002_01C7F94F.2E39E7FB--

------_=_NextPart_001_01C7F94F.2E39E7FB
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_01C7F94F.2E39E7FB--
