Arch-Linux

mdadm RAID 陣列在重新啟動後消失

  • April 12, 2020

我正在執行 manjaro,我只是使用 mdadm 設置了一個額外的 RAID 0 並將其格式化為 ext4。我開始使用它,一切都很好。然而,在我重新啟動後,陣列消失了。我認為它只是沒有自動重新組裝,但它似乎已經完全消失了:

sudo mdadm --assemble --force /dev/md0 /dev/nvme0 /dev/nvme1 /dev/nvme2
mdadm: cannot open device /dev/nvme0: Invalid argument
mdadm: /dev/nvme0 has no superblock - assembly aborted

cat /proc/mdstat
cat: /proc/mdstat: No such file or directory

cat /etc/mdstat/mdstat.conf
cat: /etc/mdstat/mdstat.conf: No such file or directory

sudo mdadm --assemble --scan --force
mdadm: No arrays found in config file or automatically

sudo mdadm --assemble --force /dev/md0 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1
mdadm: Cannot assemble mbr metadata on /dev/nvme0n1
mdadm: /dev/nvme0n1 has no superblock - assembly aborted

所以看起來連那個 Array 的配置都消失了?還有超級方塊?現在讓我們假設驅動器在重新啟動期間沒有隨機故障,即使這並非不可能。當然,我沒有在該數組上儲存任何關鍵數據,但我必須了解哪裡出了問題。當然,恢復陣列會很棒,可以節省我幾個小時的設置時間。

一些額外的資訊

mdadm: Cannot assemble mbr metadata on /dev/nvme0n1"

據我所知,磁碟應該使用 GPT。是否需要設置一些參數才能嘗試使用 GPT?

我後來發現在不格式化的情況下重新創建數組將恢復對其中所有數據的訪問:

sudo mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=3 /dev/md/hpa /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 

但是每次我重新啟動它都會再次消失,我必須重新創建它。

sudo mdadm --detail --scan
ARRAY /dev/md/hpa metadata=1.2 name=Mnemosyne:hpa UUID=02f959b6:f432e82a:108e8b0d:8df6f2bf

cat /proc/mdstat 
Personalities : [raid0] 
md127 : active raid0 nvme2n1[2] nvme1n1[1] nvme0n1[0]
       1464763392 blocks super 1.2 512k chunks

unused devices: <none>

我還能嘗試分析這個問題嗎?

基本上,對我有用的解決方案是使用單個 fd00 linux raid 分區格式化我的 nvme 驅動器,然後將其用於 RAID。

gdisk /dev/nvme[0-2]n1

命令 n,然後按 enter 直到提示輸入十六進制程式碼分區類型。輸入 fd00,輸入。命令 w 並確認。對所有驅動器重複此操作,然後像以前一樣繼續創建陣列,但這次使用您為塊設備創建的分區,例如:

mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=3 /dev/md/hpa /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1

引用自:https://unix.stackexchange.com/questions/578130