Partition

如何告訴 mdadm 使用分區作為/而不是塊設備?

  • July 31, 2015

我有四個 500GB 磁碟,它們在 Debian 安裝期間設置為 Linux Software-RAID 5 卷(在系統驅動器旁邊是 SSD)。其中一個驅動器 (sda) 壞了,現在我正在嘗試更換它,但遇到了一些麻煩。

在 mdadm 中從陣列中刪除壞驅動器後,我用新購買的 PC 附帶的另一個 500GB 備用驅動器替換了該驅動器。該驅動器上有一個帶有 Windows 的 NTFS 分區(已立即更換為 SSD)。

第一次嘗試(或多或少)出錯 - NTFS3G 看到了分區,我能夠將 NTFS 卷添加到陣列並開始重建。在我的 RAID 下使用 NTFS 絕對不是我的意圖,所以我停止了重建並開始重新分區驅動器。

起初我嘗試使用 fdisk 手動分區(最大大小,預設值,分區類型“fd”) - 沒用,mdadm 拒絕了 sda1。使用 fdisk 快速檢查 - Start、Blocknumber 和 End 不匹配 - 好的,我看到了問題。

第二次嘗試是使用“sfdisk -d /dev/sdd | sfdisk /dev/sda”從其他磁碟之一複制分區數據。我什至將第一個 512Byte 歸零,正如 sfdisk 在他的評論末尾推薦的那樣。比較分區數據——開始、結束和匹配的塊數——看起來不錯。

但是現在 mdadm 告訴我, /dev/sda1 不是塊設備,不會讓我添加它。但是可以破壞 /dev/sda 上的分區數據並給 mdadm 整個驅動器,它會重建,但現在看起來有點錯誤:

Number   Major   Minor   RaidDevice State
  4       8        0        0      active sync   /dev/sda
  1       8       17        1      active sync   /dev/sdb1
  2       8       33        2      active sync   /dev/sdc1
  3       8       49        3      active sync   /dev/sdd1

當 fdisk 現在在 /dev/sda 上找不到分區時,我絕對對此感覺不太好 - 在系統崩潰的情況下,當整個系統崩潰時,在不同的系統上重新組裝陣列似乎有點棘手使用驅動器代替分區(另請參見:此處)。

我錯過了什麼?如何告訴 mdadm 將該分區用於其 RAID?還是有人仍然建議使用整個驅動器(甚至轉換其他驅動器)?或者debian安裝程序在那裡做了什麼(在整個驅動器上設置分區以從分區創建RAID)真的更有意義嗎?

我希望我沒有提供太多的文字和太多的細節,但是我現在有點困惑,因為我做了一些推薦的教程,現在我偶然發現了這些基本問題……

感謝您的幫助!

首先,我認為使用完整的驅動器進行mdadm有什麼問題。換句話說,你的設置現在可以工作了,你不會再繼續擺弄它了。從您所指的答案中:

RAID-on-partition 有其用途,但是當您在偽儲存池設置中使用驅動器時,有時最好使用“整個驅動器”而不是“分區”RAID 成員。


現在,如果您仍然想使用分區:您第一次做的事情是正確的,但看起來核心沒有註冊/dev/sda1. 要麼核心沒有註冊(只需重新啟動,它就會自行解決)或者你對其他驅動器使用了 GPT 分區(sfdisk 不支持 AFAIK - 你只是複制了保護性 MBR)。使用 gdisk 或 gparted 之類的工具再試一次。

您可以/dev/sda從 RAID 中移除(標記為失敗,將其從陣列中移除),進行合理的分區佈局(如果您使用 GPT,請確保使用 gdisk 等),必要時重新啟動並添加/dev/sda1到您的 RAID 陣列.

引用自:https://serverfault.com/questions/709573