从 raid-1 硬件控制器读取磁盘

从 raid-1 硬件控制器读取磁盘

类似问题没有找到有用的答案。就我而言,我有一个来自戴尔服务器(坏了)的磁盘。它采用 RAID-1 配置。我需要将数据恢复到新的不同服务器中。我可以看到磁盘,并且 fdisk 显示有分区,但如果我尝试挂载它们,我会得到:挂载:特殊设备 /dev/sdb1 不存在

Fdisk 显示分区 (sdb1、sdb2),lsblk 和 blkid 仅显示 /dev/sdb

谢谢,P。

进化:

感谢@jaroslav-kucera 提供的 kpartx 提示。尝试过但没有成功:

完整测试(sdb 是感兴趣的磁盘;sda 和 sdc 是其他不相关的磁盘;使用 SystemRescue-Cd 4.7.1):

root@sysresccd /mnt % fdisk -l /dev/sdb
Disk /dev/sdb: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D75FA363-2D6D-47F6-A79F-6C160BBB38B7

Device          Start         End    Sectors  Size Type
/dev/sdb1        2048  8000002047 8000000000  3.7T Linux filesystem
/dev/sdb2  8000002048 15626928094 7626926047  3.6T Linux filesystem

root@sysresccd /mnt % mount /dev/sdb1 /mnt/1
mount: special device /dev/sdb1 does not exist

root@sysresccd /mnt % kpartx -l /dev/sdb
GPT:Primary header thinks Alt. header is not at the end of the disk.
GPT:Alternate GPT header not at the end of the disk.
GPT: Use GNU Parted to correct GPT errors.
sdb1 : 0 8000000000 /dev/sdb 2048
sdb2 : 0 7626926047 /dev/sdb 8000002048

root@sysresccd /mnt % kpartx -av /dev/sdb
GPT:Primary header thinks Alt. header is not at the end of the disk.
GPT:Alternate GPT header not at the end of the disk.
GPT: Use GNU Parted to correct GPT errors.
device-mapper: reload ioctl on sdb1 failed: Invalid argument
create/reload failed on sdb1
add map sdb1 (0:0): 0 8000000000 linear /dev/sdb 2048
device-mapper: reload ioctl on sdb2 failed: Invalid argument
create/reload failed on sdb2
add map sdb2 (0:0): 0 7626926047 linear /dev/sdb 8000002048

root@sysresccd /mnt % mount /dev/sdb1 /mnt/1
mount: special device /dev/sdb1 does not exist

root@sysresccd /mnt % blkid
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="2TB" UUID="B4B0F3DAB0F3A0D2" TYPE="ntfs"       PARTUUID="ee20b174-01"
/dev/sdb: UUID="Dell    ^P" TYPE="ddf_raid_member"
/dev/sdc1: SEC_TYPE="msdos" LABEL="DellUtility" UUID="5450-4444"    TYPE="vfat" PARTUUID="d636c095-01"
/dev/sdc2: LABEL="RECOVERY" UUID="52428FB1428F97FD" TYPE="ntfs" PARTUUID="d636c095-02"
/dev/sdc3: LABEL="OS" UUID="0C3E92443E92272C" TYPE="ntfs" PARTUUID="d636c095-03"
/dev/sdd: UUID="2016-01-18-20-46-30-00" LABEL="sysrcd-4.7.1" TYPE="iso9660"

root@sysresccd /mnt % lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   1.8T  0 disk
└─sda1   8:1    0   1.8T  0 part
sdb      8:16   0   7.3T  0 disk
sdc      8:32   0 465.8G  0 disk
├─sdc1   8:33   0    40M  0 part
├─sdc2   8:34   0  11.8G  0 part
└─sdc3   8:35   0   454G  0 part
sdd      8:48   1     2G  0 disk /livemnt/boot
loop0    7:0    0 337.6M  1 loop /livemnt/squashfs

HW RAID 控制器通常是一个奇怪的世界。最近我使用了 HP 服务器,磁盘可以毫无问题地读取(好吧,如果我在标准控制器中安装启动盘后将其重新安装在原始控制器中,它无法启动,但数据仍然可以访问)。我想这款戴尔 PERC H330 也有一些技巧...

谢谢,P。

答案1

在对磁盘数据进行任何修改之前,请先创建完整设备的 dd 备份!

dd if=/dev/sdb of=/path/to/somewhere/dell_disk.dump bs=1M

然后您可以尝试使用“kpartx -av”看看它是否找到了什么。

如果没有帮助,请找到具有相同(最佳)控制器的服务器并尝试将其放在那里。

相关内容