Re: Windows Logical Disk Manager error

From: Anton Altaparmakov
Date: Fri Oct 01 2004 - 18:44:15 EST


On Fri, 1 Oct 2004, Anton Altaparmakov wrote:
> On Fri, 2004-10-01 at 15:26, Marcin Gibuÿÿa wrote:
> > > I would not advise you to use volume6 without the md driver. You are
> > > then missing the last 32kb off the end and you never know when they
> >
> > Well, I can't even build it... mdadm failes and driver complains with
> > md: Dev sda2 smaller than chunk_size: 0k < 32k
> > Different chunk size doesn't make any difference.
>
> That is a bug in the md driver then.
>
> > > direction. Fortunately you can fix this case by using the "--rounding="
> > > parameter to mdadm. So if you have a cluster size of 4k try
> > > --rounding=4. (If you don't know your cluster size enable debugging in
> > > the ntfs driver and then do the mount and "dmesg | grep cluster_size"
> > > will tell you the answer. To enable debugging in the driver it must be
> > > compiled with debugging enabled and you need to, as root, do: "echo 1 >
> > > /proc/sys/fs/ntfs-debug" after loading the module if modular and before
> > > doing the mount command.)
> >
> > According to ntfs driver output my cluster size is indeed 4kb, but it still
> > failes to read mounted fs.
> >
> > Error is now:
> > NTFS-fs error (device md1): ntfs_readdir(): Actual VCN (0x20006500680054) of
> > index buffer is different from expected VCN (0x4). Directory inode 0x5 is
> > corrupt or driver bug.
>
> So the number has changed. Means it is aligning the two pieces
> differently. But still not correctly. Actually, having looked at the
> dump of your LDM database again, it is not rounding anything at all. It
> behaves exactly like the NT4 fault tolerant arrays, i.e. it uses all
> 512-byte sectors to store data.
>
> You can see it from:
>
> Volume2 Size: 0x05AB2EA2 (46437 MB)
> Volume2-01
> Disk2-01 VolumeOffset: 0x00000000 Offset: 0x00000000 Length:
> 0x033A186B
> Disk2-02 VolumeOffset: 0x033A186B Offset: 0x033A18AA Length:
> 0x02711637
>
> Disk2-01 contains 0x033a186B sectors == 5413987 in decimal an you can
> see the number is odd and hence the Linux md driver cannot work as it
> uses 1024 bytes minimum so it can never work. )-:
>
> Disk2-02 starts at the offset Disk2-01 stops and hence the Linux md
> driver again cannot work.
>
> Sorry but with current Linux md driver and tools it is not possible to
> make your linear arrays work.

I should add an AFAIK here. I am by no means familiar (enough) with EVMS,
LVM1/2, and the kernel Device Mapper itself, to be able to tell if there
isn't some clever way of making it work with existing drivers and tools...

Best regards,

Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/