类似问题没有找到有用的答案。就我而言,我有一个来自戴尔服务器(坏了)的磁盘。它采用 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”看看它是否找到了什么。
如果没有帮助,请找到具有相同(最佳)控制器的服务器并尝试将其放在那里。