我在带有 Intel RAID 控制器的笔记本电脑上将两个 512GB SSD 设置为 RAID0。我一直在该笔记本电脑上运行 Windows 7 Pro,直到我在笔记本电脑的另一个驱动器上安装 Windows 10 和 Linux Mint 时弄乱了 RAID 中的 MBR。安装 Windows 10 后,两个版本的 Windows 都启动并运行正常。安装 Linux Mint 后问题出现,因为我相当确定它将其启动管理器安装到了 RAID MBR 中,尽管我将该操作系统安装到了另一个驱动器中。现在,RAID 已无法启动,并且 RAID MBR 已无法修复,因为显然 Windows 10 启动管理器对其做了什么。并且 Windows 7 修复工具说它们与 RAID 中安装的 Windows 版本不兼容,即使修复磁盘是由 RAID 中安装的 Windows 版本制作的。
我从笔记本电脑的另一个驱动器上取下了 Win 10 和 Linux 安装,并在该驱动器上安装了一份全新的 Win7 Pro,安装后第一次重新启动时无法启动,并且像第一次一样立即变得无法修复。因此,这引出了如何恢复 RAID 中的数据的任务。由于 RAID 系统仍然在具有创建它的 Intel RAID 控制器的原始机器上,并且除了 MBR 混乱之外似乎仍在运行,因此我想使用 Linux 安装 RAID 并复制数据。
在实时模式下运行 Mint,fdisk -l 显示以下内容:
mint@mint:~$ sudo fdisk -l
Disk /dev/loop0: 2.13 GiB, 2285047808 bytes, 4462984 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: ADATA SU800
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf3828d07
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 46897151 46895104 22.4G 7 HPFS/NTFS/exFAT
/dev/sda2 * 46897152 2000420863 1953523712 931.5G 7 HPFS/NTFS/exFAT
Disk /dev/sdb: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: ADATA SU800
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10SPZX-00Z
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: dos
Disk identifier: 0x0b6bc22a
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 2052 205199 203148 99.2M 7 HPFS/NTFS/exFAT
/dev/sdc2 205200 1953522467 1953317268 931.4G 7 HPFS/NTFS/exFAT
Partition 1 does not start on physical sector boundary.
Disk /dev/sdd: 29.25 GiB, 31406948352 bytes, 61341696 sectors
Disk model: Cruzer Glide
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0013118d
Device Boot Start End Sectors Size Id Type
/dev/sdd1 * 2048 61341695 61339648 29.2G c W95 FAT32 (LBA)
Disk /dev/mapper/isw_ddiheaeib_SSRAID: 953.88 GiB, 1024215744512 bytes, 2000421376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 131072 bytes / 262144 bytes
Disklabel type: dos
Disk identifier: 0xf3828d07
Device Boot Start End Sectors Size Id Type
/dev/mapper/isw_ddiheaeib_SSRAID-part1 2048 46897151 46895104 22.4G 7 HPFS
/dev/mapper/isw_ddiheaeib_SSRAID-part2 * 46897152 2000420863 1953523712 931.5G 7 HPFS
最后,有关 RAID 和设备 /dev...part1 和 /dev...part2 的详细信息似乎合理且正确,这让我相信除了 MBR 故障外,RAID 仍在工作。我尝试安装第 2 部分,因为第 1 部分是第 2 部分安装的 Win7 恢复映像。我得到了以下信息:
mint@mint:~$ sudo mount -o ro -t hpfs /dev/mapper/isw_ddiheaeib_SSRAID-part2 /mnt/win7
mount: /mnt/win7: special device /dev/mapper/isw_ddiheaeib_SSRAID-part2 does not exist.
我无法理解最后的结果,这让我想到了我的问题:
安装失败是否表明 RAID 存在问题,或者只是安装方式错误?
...
我现在明白我安装的方式是错误的,或者至少期望 Linux Mint 和 Intel RAID 控制器能够协同工作。我一直在查找有关硬件 RAID 和 Linux 的帖子,它们通常暗示它无法正常工作。因此,再看一眼我的机器,我得到了这个:
mint@mint:/$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 2.1G 1 loop /rofs
sda 8:0 0 476.9G 0 disk
└─isw_ddiheaeib_SSRAID 253:0 0 953.9G 0 dmraid
sdb 8:16 0 476.9G 0 disk
└─isw_ddiheaeib_SSRAID 253:0 0 953.9G 0 dmraid
我想我可以使用它们来软件安装 RAID,这将是我第二次这样做。
...
读了更多内容后,我尝试这样做:
mint@mint:/$ sudo mount -o ro -t ntfs /dev/mapper/isw_ddiheaeib_SSRAID-part2 /mnt/RAID
ntfs-3g: Failed to access volume '/dev/mapper/isw_ddiheaeib_SSRAID-part2': No such file or directory
当 Linux Mint 尝试安装其引导加载程序时,它尝试在其默认位置执行此操作,该位置显然是 sda,而不是 linux 安装驱动器 sdc,而这正是我想要它去的地方。假设就这么多了……
无论如何,这损坏了 RAID 中的旧 MBR。我再次假设——这是一个很难戒掉的习惯,它还试图将 Linux 安装驱动器 sdc 的分区表安装到 RAID MBR 中,这就是为什么我认为 Windows 和 Linux 显然都无法在那里找到有用的东西。至少令人鼓舞的是,设备映射器可以正确读取 RAID 分区。
答案1
安装失败是否表明 RAID 存在问题,或者只是安装方式错误?
它存在两个问题:
-t hpfs
是错误的。fdisk 显示为“类型”的内容不是真的文件系统类型——该字段最初是用来对应分区的内容的,但并不总是如此;它更像是一个“用途/目的”字段(这个特定的值“7(HPFS/NTFS/exFAT)”仅仅表示“这是一个 Windows NT 数据分区”)。您可以确定该分区不包含 HPFS 文件系统 - 支持 IBM OS/2 这一遗留系统的最后一个 Windows 版本是 1995 年的 NT 3.51。因此,在您的情况下,它实际上是 NTFS(
-t ntfs-3g
或-t ntfs3
)。-part2
是虚构的。由于 fdisk 只读取“整个磁盘”设备以获取其分区表,因此它会做一些最大努力从“/dev/something 上的分区 2”到该分区的 /dev 名称的翻译,但这些翻译并不总是与现实相符。您看到的设备
lsblk
是您实际拥有的设备。由于它是 dm-raid 设备,因此内核不会自动检测其中的分区 - 它希望 dm(设备映射器)也能处理该任务。安装并使用kpartx
(来自“多路径工具”包)以在此 RAID 设备上设置基于 dm 的分区设备。
或者至少希望 Linux Mint 和 Intel RAID 控制器能够协同工作。我一直在查找有关硬件 RAID 和 Linux 的帖子,它们通常都暗示它无法正常工作
您在这里根本没有使用 Intel RAID 控制器。您的阵列是在软件中组装的,使用 Linux 的 dm-raid 子系统(它拥有的两个软件 RAID 子系统之一)。