如何更改 MD 设备的名称 (mdadm)

XXL*_*XXL 27 linux raid software-raid mdadm

这是mdadm -Esv的输出:

ARRAY /dev/md127 level=raid0 num-devices=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 devices=/dev/sdb8,/dev/sda8

这是一个 v0.90 数组。问题如下: mdadm 如何为相应的设备分配名称,它存储在哪里以及如何更改它?

我想要完成的是将md127重命名为我喜欢的不同名称。

hai*_*img 35

警告:请在遵循此处给出的任何建议之前进行备份:-)

选项1:

编辑/etc/mdadm.conf

ARRAY /dev/md1 level=raid0 num-devices=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 devices=/dev/sdb8,/dev/sda8

我刚刚输入您自己的输出并将127更改为1。重新启动,现在应该是md1。

选项#2:

如果您没有mdadm.conf,并希望它自动组装到 md1 ,您可以这样做:

mdadm 有一个“首选未成年人”的概念。例如,一旦将某个次要编号分配给数组并存储在超级块中,每次自动组装该数组时都会使用它。验证这一点:

mdadm --detail /dev/md127

如果它显示“Preferred Minor : 127”,这就是你的问题。您需要更新首选未成年人。这该怎么做:

您不能只更改首选未成年人。如果这是您的根设备,您需要启动到恢复或单用户模式,然后卸载文件系统:

mdadm --stop /dev/md127
mdadm --assemble --update=super-minor /dev/md1 /dev/sdb8 /dev/sda8

然后你将把你的 md127 组装成 md1。将来也应该保持这种状态。

使用 1.x 数组:

较新的数组不存储“首选次要”编号,也不支持“--update=super-minor”。相反,它们存储一个可以更改的名称:

mdadm --stop /dev/md127
mdadm --assemble --update=name --name=2 /dev/md1 /dev/sdb8 /dev/sda8

或者,您可以指定 'hostname:2' 以使所有内容与其他数组保持一致(使用 --detail 查找当前名称)。


Wto*_*wer 14

只是为了补充 haimg 的优秀答案。即使使用 mdadm.conf,系统(至少对于 Ubuntu)仍可能在读取 mdadm.conf 之前自动组装阵列。因此,当它找到它时,它只会忽略刚刚组装的数组。

为了解决这个问题,运行sudo update-initramfs -u以重新生成正确的 initrd。

相关链接:http : //ubuntuforums.org/showthread.php?t=1764861%29%3a

  • 这为我解决了 Ubuntu 16.04 上的问题(再次重启后)。就我而言,这是因为我重新创建了数组,并且它有一个新的 UUID。在`mdadm.conf`中更新后,仅重启是不够的;更新 initramfs 成功了。 (2认同)

小智 5

其他答案都不适合我,但在 Centos 中我使用了以下指南。问题是 /etc/mdadm.conf 在启动时并未真正使用,只有在安装新内核或手动重新创建 initramfs 时才会更新。所以本质上你只需要:

dracut --force
Run Code Online (Sandbox Code Playgroud)

来源:http ://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles