我们有五个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
解决方法
该程序确实有一些限制,主要是因为它根本不修改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分区.请享用!