我可以重建 JBOD 吗?

我可以重建 JBOD 吗?

我有一些几年前出现故障的旧硬件,但我仍然有 2 个 HDD,都配置为 JBOD。

有没有办法将这些驱动器转储到一块 HDD 上,并在实际硬件不再可用的情况下移除/重建 JBOD?

JBOD 建立在 Promise 20579 芯片(适用于 AMD 64 的 MSI Mainboard K8T Neo)上。

答案1

你的磁盘可能只是连接的合并到一个大卷中。这是 JBOD 最简单的解决方案。如果只有硬件人员能够跟上KISS 原则,您将可以毫无问题地使用软件而不是硬件来访问/转储数据。

在 Linux 中,正确的工具是dmsetup,但如果您只想将磁盘转储到映像(或另一个磁盘),那么简单的工具cat就足够了。

调查

首先,您需要知道 JBOD 中磁盘的原始顺序。识别第一个磁盘应该很容易;棘手的部分是排列其余磁盘的顺序。对于有两个 HDD 的情况,您应该不会遇到问题。第一个磁盘具有有效的 MBR 分区表或有效的 GPT(主分区表,但不是辅助分区表),它描述了全部的JBOD。除非您使用的 JBOD 没有任何分区表,否则此方法将有效。检查您的磁盘gdisk -l并识别第一个磁盘。

准备

在我的例子中,正确的顺序是/dev/sdb/dev/sdc。请根据需要更改以下变量定义。

device1=/dev/sdb
device2=/dev/sdc

这样,您就可以使用后面的 Bash 命令而无需进行任何更改。

要将磁盘转储到映像,这应该足够了(注意:从现在开始您可能需要sudo):

cat "$device1" "$device2" > image.raw

如果您想要实际使用 JBOD,则需要做更多准备。您需要将设备的大小存储在 512 字节扇区中。检索大小的命令如下blockdev --getsz /dev/sdX,因此

size1="$(blockdev --getsz "$device1")"
size2="$(blockdev --getsz "$device2")"

确认echo "$size1" "$size2"您有两个数字。(完整性检查:如果将它们乘以 512,您应该会得到磁盘的大小。)

映射设备创建

现在该创建一个虚拟串联设备了。以下代码使用这里的文件语法以提高可读性。如果您不使用 Bash,则可能需要对其进行调整。另一方面,使用 Bash 时,只需粘贴到终端即可。

dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF

注意mydevice是任意名称。第二行和第三行创建 的设备映射dmsetup。请参阅man dmsetup了解更多信息。

现在您应该可以/dev/mapper/mydevice使用了;它是​​您的 JBOD。(我不能 100% 确定 的每个实现都会dmsetup在 中创建节点/dev/mapper/;但mydevice应该会出现在某个地方。)像使用任何其他设备一样使用它。

安装

我的另一个答案。 整个安装其中的部分适用于您的情况。

打扫

摧毁/dev/mapper/mydevice

dmsetup remove /dev/mapper/mydevice

当然你应该umount先对它进行分区。

相关内容