Debian

為什麼我創建時的 /dev/md1 現在顯然稱為 /dev/md127 或 /dev/md127p1?

  • October 2, 2017

我最近安裝了一台新的 Debian 9(“stretch”)機器。

最初它有 2 個驅動器。我使用 Debian 安裝程序將它們配置為 RAID1,它給了我一個/dev/md0with

/etc/mdadm/mdadm.conf:

包含

# definitions of existing MD arrays
ARRAY /dev/md/0  metadata=1.2 UUID=3d21d0e0:2758c58e:962b5191:98e225c1 name=MYHOSTNAME:0

/proc/mdstat顯示:

md0 : active raid1 sda1[0] sdb1[1]
     488253440 blocks super 1.2 [2/2] [UU]
     bitmap: 0/4 pages [0KB], 65536KB chunk

我格式化為ext4UUID 並安裝為 ‘/’ in 的那個設備/etc/fstab。一切正常,正如預期的那樣。

後來我添加了幾個更大的驅動器。對它們進行分區(每個第一個都有一個小的交換分區)並使用它們配置它們mdadm -C -n 2 -l raid1 /dev/md1 /dev/sdc2 /dev/sdd2(這絕對是我所做的,因為它仍然在我的 root 的 shell 歷史中,以及隨後的幾個mdadm --examine /dev/md1and mdadm --detail --verbose /dev/md1)。

我還添加了一行/etc/mdadm/mdadm.conf(僅遵循初始設備的模式):

ARRAY /dev/md/1  metadata=1.2 UUID=47492bd7:08d1fd1c:418dad41:2aa7d77f name=MYHOSTNAME:1

當然,我ext4格式化了設備並添加了一個 UUID 條目以/etc/fstab將其安裝在我選擇的/data安裝點。

這一切似乎都執行良好,並且在多次重新啟動機器之後,我很高興地對新磁碟進行了大量的 rsync。

但是今天我碰巧看了 etc/mtab 和 /proc/mdstat,我注意到我的 /dev/md1 似乎已經消失並變成了 /dev/md127(在 /proc/mdstat 中)和/或 /dev/md127p1在 /etc/mtab 中:

/proc/mdstat:

顯示:

md127 : active raid1 sdc2[0] sdd2[1]
     3904788480 blocks super 1.2 [2/2] [UU]
     bitmap: 2/30 pages [8KB], 65536KB chunk

md0 : active raid1 sda1[0] sdb1[1]
     488253440 blocks super 1.2 [2/2] [UU]
     bitmap: 0/4 pages [0KB], 65536KB chunk

/etc/mtab:

顯示:

/dev/md0 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
/dev/md127p1 /data ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

這一切似乎仍然執行良好,但到底發生了什麼?我之前(誠然很多年前)在其他幾台機器上以幾乎相同的方式配置 RAID1,並且 RAID 陣列最終被稱為/dev/md0and /dev/md1. 這是從哪裡來的?和127有什麼區別?有什麼方法可以將它們重命名為,或者這是我堅持的東西?/dev/md127``/dev/md127p1``/dev/md1

  1. 使用以下命令確保您處理的是正確的 UUID:
mdadm --detail /dev/md* | grep -e /dev/md -e UUID
  1. 編輯您的數組列表,如果不確定,您可以使用 nano:
nano /etc/mdadm/mdadm.conf

讓它包含你想要的數組的 UUID;或仔細檢查:

ARRAY /dev/md/0 metadata=1.2 name=MYHOSTNAME:0 UUID=3d21d0e0:2758c58e:962b5191:98e225c1
ARRAY /dev/md/1 metadata=1.2 name=MYHOSTNAME:1 UUID=47492bd7:08d1fd1c:418dad41:2aa7d77f

根據您的喜好命名您的陣列。 3. 使用以下命令確保安裝正確的文件系統:

blkid /dev/md*

/etc/fstab這種方式包含這些:

UUID=...
  1. 我懷疑,您可能錯過的最重要的一步是更新您的initramfs
update-initramfs -u

應該是這樣的。我自己在同一個系統上遇到了確切的問題。如果我錯過了一步或忘記了什麼,請發表評論,我將在明天早上編輯這個答案。

問答:

這個 127 是從哪裡來的?

由於您忘記更新initramfs,在引導期間系統不知道您的新陣列,預設情況下從末尾開始命名 (127)。

/dev/md127和有什麼區別/dev/md127p1

  • /dev/md127是數組的名稱
  • /dev/md127p1是陣列上分區的名稱

OP的補充資訊:

如上所述,這update-initramfs -u確實似乎是至關重要的!但是,事實證明可以進行更多調整,我將在此處進行編輯,而不是在其他答案或評論中進行編輯:

完成上述步驟後,我有了/dev/md0/dev/md1p1。奇怪的是,看著 /proc/partitions 我可以同時看到 a/dev/md1 a /dev/md1p1。一些Google搜尋讓我懷疑這與 /proc/mdstat.conf 中描述的預設行為有關:

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

並且確實添加了一個註釋行

DEVICE partitions

意味著我剛剛/dev/md0/dev/md1下一次重新啟動之後。

(查看一些帶有 mdadm raid 的舊 Debian 機器,我發現它們也都有明確的DEVICE partitions線路,而且我從來沒有故意使用或想要使用 mdadm 的“容器”概念)

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