使用Linux恢复Windows跨磁盘(LDM)?

前端之家收集整理的这篇文章主要介绍了使用Linux恢复Windows跨磁盘(LDM)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在 Linux中读取Windows 2008 LDM分区?

我们有五个512GB LUN通过ISCSI导出到死Windows 2008,这个盒子不再需要它们了. Windows认为它们现在是原始设备……所以我想用Linux读取分区.我正在使用最新的ubuntu来尝试保存至少一些数据.问题是我到目前为止找到的所有文档似乎都已过时(经常谈论w2k或XP逻辑磁盘管理器(LDM).但我认为现在它与2008年不同.

Testdisk [0]给我以下输出

testdisk /list LUN01
TestDisk 6.11,Data Recovery Utility,April 2009
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
Please wait...
Disk LUN01 - 536 GB / 500 GiB - CHS 65271 255 63,sector size=512

Disk LUN01 - 536 GB / 500 GiB - CHS 65271 255 63
     Partition                  Start        End    Size in sectors
 1 P MS LDM MetaData               34       2081       2048 [LDM Metadata partition]
No FAT,NTFS,EXT2,JFS,Reiser,cramfs or XFS marker
 2 P MS Reserved                 2082     262177     260096 [Microsoft reserved partition]
 2 P MS Reserved                 2082     262177     260096 [Microsoft reserved partition]
 3 P MS LDM Data               262178 1048576966 1048314789 [LDM data partition]

注意:5 LUN中的每一个都具有相同的分区表.

在许多文献[1]中,他们谈论的是ldminfo,它不会返回任何有用的信息.我怀疑它现在已经过时,只是因为它很难找到:)而且因为它不起作用我猜Windows 2008使用不同的格式.

# ldminfo LUN01
Something went wrong,skipping device 'LUN01'
# losetup /dev/loop1 LUN01
# losetup -a
/dev/loop1: [fd00]:14 (/mnt/LUN01)
# ldminfo /dev/loop1 
Something went wrong,skipping device '/dev/loop1'

然后,我尝试用dmsetup连接它们,但再次没有运气.这就是我使用dmsetup的方式:

# losetup /dev/loop1 LUN01
# losetup /dev/loop2 LUN02
# losetup /dev/loop3 LUN03
# losetup /dev/loop4 LUN04
# losetup /dev/loop5 LUN05
# blockdev --getsize /dev/loop1
1048577000
# cat > w2008.mapping
# Offset into   Size of this    Raid type       Device          Start sector
# volume        device                                          of device
0               1048577000  linear          /dev/loop1       0
1048577000      1048577000  linear          /dev/loop2       0
2097154000      1048577000  linear          /dev/loop3       0
3145731000      1048577000  linear          /dev/loop4       0
4194308000      1048577000  linear          /dev/loop5       0
# dmsetup create myfs w2008.mapping
# mount -t ntfs /dev/mapper/myfs /mnt/final
NTFS signature is missing.
Failed to mount '/dev/loop1': Invalid argument
The device '/dev/loop1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda,not /dev/sda1)? Or the other way around?
# echo Poo.

所以仍然没有NTFS文件系统:)

有没有人对如何从那里提取数据或给我一些指示有任何想法?

> [0]:http://www.cgsecurity.org/wiki/TestDisk
> [1]:http://www.kernel.org/doc/Documentation/filesystems/ntfs.txt

解决方法

这是(更容易)答案,现在ldmtool存在. ldmtool读取LDM(也称为Windows动态磁盘)元数据,并且(除其他外)为相应的驱动器,分区和RAID阵列创建设备映射器条目,允许您随后像Linux中的其他块设备一样访问和安装它们.

该程序确实有一些限制,主要是因为它根本不修改LDM元数据.因此,您无法在Linux中创建LDM磁盘(请使用Windows),并且不应以读写模式安装缺少磁盘的RAID卷. (ldmtool不会修改元数据以反映这种情况,并且下次Windows组装RAID阵列时,会出现问题,因为并非所有驱动器都会同步.)

以下是要遵循的步骤:

>安装ldmtool.在Debian和Ubuntu系统上,输入apt-get install ldmtool.在大多数其他最新的Linux发行版中应该同样容易.
>运行ldmtool create all.
>您现在应该在/ dev / mapper中有一堆新条目.找到正确的一个(在我的例子中,是一个RAID1数组,所以/ dev / mapper / ldm_vol_VOLNAMEHERE-Dg0_Volume2),然后使用mount -t ntfs / dev / mapper / ldm_vol_VOLNAMEHERE-Dg0_Volume2之类的东西来安装它.

要在引导时自动完成此操作,您可能需要在挂载/ etc / fstab的内容之前,在引导顺序中的正确位置插入对ldm create all的调用.拨打电话的好方法是:

[ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || true

但是,如何让这个代码片段在启动过程中的正确时间运行会有很大的不同,具体取决于您使用的分发版本.对于Ubuntu 13.10,我在/etc/init/mountall.conf中插入了该行,就在脚本部分末尾的exec mountall …调用之前.我现在可以在/ etc / fstab中安装我的Windows LDM RAID1分区.请享用!

猜你在找的Linux相关文章