我可以重建 JBOD 嗎?

我可以重建 JBOD 嗎?

我有一些幾年前就出現故障的舊硬件,但裡面仍然有 2 個 HDD,它們都配置為 JBOD。

有沒有一種方法可以將這些驅動器轉儲到一個 HDD 上,並在實際硬體不再可用的情況下刪除/重建 JBOD?

JBOD 是基於 Promise 20579 晶片(適用於 AMD 64 的 MSI 主機板 K8T Neo)構建。

答案1

您的磁碟有可能只是串聯的成一本大卷。對於 JBOD 來說,這是最簡單的解決方案。如果只有硬體人員跟隨的話KISS原則,您使用軟體而不是硬體存取/轉儲資料將沒有問題。

在 Linux 中,正確的工具是dmsetup,但如果您只想將磁碟轉儲到映像(或另一個磁碟),那麼簡單的工具cat就足夠了。

調查

首先你需要知道JBOD中磁碟的原始順序。應該很容易識別第一個磁碟;棘手的部分是訂購其餘的。在您的情況下,有兩個硬碟驅動器,應該沒有問題。第一個磁碟具有有效的 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首先對其進行分區。

相關內容