Is accessing striped "dynamic disks" from GRML possible?

Hi,
I wanted to rescue some files from a broken Win2000 install with grml. The data to rescue were stored on a striped partition on a dynamic disk (Windows' equivalent to a software raid0).
However, I did not manage it to reassemble or mount this partition. it appeared as two separate partitions (one on each drive). Google suggested to run ldminfo, but that tool is not there, and I could not find it :(
I eventually managed to rescue the files by booting from a BartPE disk and using the commandline "diskpart" tool to reassemble the RAID and assign a drive letter to it.
Does anyone know a way to access these files from grml? Or is it impossible to do this from Linux and I have to include a BartPE disk in my rescue disk set as well?
TIA,
Michael

* Michael Schierl schierlm-public@gmx.de [20061101 19:15]:
I wanted to rescue some files from a broken Win2000 install with grml. The data to rescue were stored on a striped partition on a dynamic disk (Windows' equivalent to a software raid0).
Running on fakeraid? [ http://linux-ata.org/faq-sata-raid.html ]
[...]
Does anyone know a way to access these files from grml? Or is it impossible to do this from Linux and I have to include a BartPE disk in my rescue disk set as well?
Check out dmraid. It's available on grml.
regards, -mika-

* Michael Prokop wrote [02.11.06 16:10]: Hi,
- Michael Schierl schierlm-public@gmx.de [20061101 19:15]:
I wanted to rescue some files from a broken Win2000 install with grml. The data to rescue were stored on a striped partition on a dynamic disk (Windows' equivalent to a software raid0).
Running on fakeraid? [ http://linux-ata.org/faq-sata-raid.html ]
No. dynamic disk is the equivillant on the windows side to the software raid, which you assemble with mdadm. Fakeraid is done by the driver itself, and dynamic disk is done by windows itself. Yes, windows has such things to, oh and you can also "mount" disks to some directorys...
You can get the software which is needed to access such a dynmic disc from http://www.linux-ntfs.org/cvs/vc/dynamic-disk/ But i dont know how good it works.
[...]
Does anyone know a way to access these files from grml? Or is it impossible to do this from Linux and I have to include a BartPE disk in my rescue disk set as well?
Try the link above and build it on you're own. Just do an ,---- | cvs -d:pserver:anonymous@cvs.linux-ntfs.org:/cvs/linux-ntfs login `---- and
,---- | cvs -z3 -d:pserver:anonymous@cvs.linux-ntfs.org:/cvs/linux-ntfs co -P dynamic-disk `----
I've just build a .deb for this package, you can get it from http://schu.la/grml/dynamic-disk_0.8-1_i386.deb Note: I didnt test it, because i dont have any windows partitions right here. Hope that helps someone
regards, -mika-
Uli

[Resend, since first time something (most probably my fingers) ate the CC: to the list]
Ulrich Dangel schrieb:
<offtopic>
oh and you can also "mount" disks to some directorys...
But you should not try to move nonempty folders from there to the recycle bin, since this fails here regularly. And, running "Sysinternals Rootkit Revealer" will find lots of MFT inconsistencies if you use volume junctions on a NTFS drive to "mount" FAT32 drives (which allows you to assign ACLs to the whole drive by assigning them to the volume junction). This has been reported as a bug some time ago, but I did not get any answer.
</offtopic>
Try the link above and build it on you're own.
Building that worked. I set up a test system in a VM where I formatted 2 "dynamic disks" and created spanned and striped volumes between them (mirrored is trivial since you can just mount one of the mirrors readonly). To make it a bit more complicated, I created a partition in the "middle" of the second disk so that the "second part" of the stripes and mirrors got split into two "partitions" each:
----- Stripe1 Size: 0x001FD800 (1019 MB) Stripe1-01 Disk1-01 VolumeOffset: 0x00000000 Offset: 0x00000000 Length: 0x000FEC00 Disk2-02 VolumeOffset: 0x00000000 Offset: 0x0007F800 Length: 0x0007F800 Disk2-04 VolumeOffset: 0x0007F800 Offset: 0x0017E800 Length: 0x0007F400 Volume1 Size: 0x001FE000 (1020 MB) Volume1-01 Disk1-02 VolumeOffset: 0x00000000 Offset: 0x000FEC00 Length: 0x000FF000 Disk2-03 VolumeOffset: 0x0017E800 Offset: 0x00000000 Length: 0x0007F800 Disk2-01 VolumeOffset: 0x000FF000 Offset: 0x000FF000 Length: 0x0007F800 -----
Volume1 worked well like this:
---- 0 1044480 linear /dev/hda2 0 1044480 522240 linear /dev/hdb3 0 1566720 522240 linear /dev/hdb1 0 ----
Stripe1 was a bit more tricky, since I forgot to double the length for the striped parts first, so I always got I/O errors. This one worked:
---- 0 1044480 striped 2 128 /dev/hda1 0 /dev/hdb2 0 1044480 1042432 striped 2 128 /dev/hda1 522240 /dev/hdb4 0 ----
But: What calculator to use in grml for all that hex/decimal conversions (and multiplications and additions)? There is no orpie (great console RPN calculator) and GNU Calculator for Emacs is not there either. Okay, dc/bc is there, but I don't know (and could not figure out by grepping the man page) how they can handle hex numbers...
I've just build a .deb for this package, you can get it from http://schu.la/grml/dynamic-disk_0.8-1_i386.deb Note: I didnt test it, because i dont have any windows partitions right here. Hope that helps someone
libgcc and libstdc++ are too old when "dpkg -i"-ing it from the grml-0.8 CD. Thanks anyway.
Michael

[Resend, since first time something (most probably my fingers) ate the CC: to the list. This time with correct From-Address...]
Ulrich Dangel schrieb:
<offtopic>
oh and you can also "mount" disks to some directorys...
But you should not try to move nonempty folders from there to the recycle bin, since this fails here regularly. And, running "Sysinternals Rootkit Revealer" will find lots of MFT inconsistencies if you use volume junctions on a NTFS drive to "mount" FAT32 drives (which allows you to assign ACLs to the whole drive by assigning them to the volume junction). This has been reported as a bug some time ago, but I did not get any answer.
</offtopic>
Try the link above and build it on you're own.
Building that worked. I set up a test system in a VM where I formatted 2 "dynamic disks" and created spanned and striped volumes between them (mirrored is trivial since you can just mount one of the mirrors readonly). To make it a bit more complicated, I created a partition in the "middle" of the second disk so that the "second part" of the stripes and mirrors got split into two "partitions" each:
----- Stripe1 Size: 0x001FD800 (1019 MB) Stripe1-01 Disk1-01 VolumeOffset: 0x00000000 Offset: 0x00000000 Length: 0x000FEC00 Disk2-02 VolumeOffset: 0x00000000 Offset: 0x0007F800 Length: 0x0007F800 Disk2-04 VolumeOffset: 0x0007F800 Offset: 0x0017E800 Length: 0x0007F400 Volume1 Size: 0x001FE000 (1020 MB) Volume1-01 Disk1-02 VolumeOffset: 0x00000000 Offset: 0x000FEC00 Length: 0x000FF000 Disk2-03 VolumeOffset: 0x0017E800 Offset: 0x00000000 Length: 0x0007F800 Disk2-01 VolumeOffset: 0x000FF000 Offset: 0x000FF000 Length: 0x0007F800 -----
Volume1 worked well like this:
---- 0 1044480 linear /dev/hda2 0 1044480 522240 linear /dev/hdb3 0 1566720 522240 linear /dev/hdb1 0 ----
Stripe1 was a bit more tricky, since I forgot to double the length for the striped parts first, so I always got I/O errors. This one worked:
---- 0 1044480 striped 2 128 /dev/hda1 0 /dev/hdb2 0 1044480 1042432 striped 2 128 /dev/hda1 522240 /dev/hdb4 0 ----
But: What calculator to use in grml for all that hex/decimal conversions (and multiplications and additions)? There is no orpie (great console RPN calculator) and GNU Calculator for Emacs is not there either. Okay, dc/bc is there, but I don't know (and could not figure out by grepping the man page) how they can handle hex numbers...
I've just build a .deb for this package, you can get it from http://schu.la/grml/dynamic-disk_0.8-1_i386.deb Note: I didnt test it, because i dont have any windows partitions right here. Hope that helps someone
libgcc and libstdc++ are too old when "dpkg -i"-ing it from the grml-0.8 CD. Thanks anyway.
Michael

hi,
I wanted to rescue some files from a broken Win2000 install with grml. The data to rescue were stored on a striped partition on a dynamic disk (Windows' equivalent to a software raid0). However, I did not manage it to reassemble or mount this partition. it appeared as two separate partitions (one on each drive). Google suggested to run ldminfo, but that tool is not there, and I could not find it :(
There is some doku on this in the kernel docs about ntfs, usually at: /usr/src/linux/Documentation/filesystems/ntfs.txt
- Using NTFS volume and stripe sets - The Device-Mapper driver - The Software RAID / MD driver - Limitations when using the MD driver
The recommed way is to use the device-mapper for anything but raid5.
There is an allready compiled ldminfo tool in the ldmtool package: http://puzzle.dl.sourceforge.net/sourceforge/linux-ntfs/linux-ldm-0.0.8.tar....
michael
Teilnehmer (5)
-
Michael Gebetsroither
-
Michael Prokop
-
Michael Schierl
-
Michael Schierl
-
Ulrich Dangel