以下是mdadm -Esv:
数组 /dev/md127 级别=raid0 设备数量=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 设备=/dev/sdb8,/dev/sda8
这是 v0.90 阵列。问题如下:mdadm 如何为相应设备分配名称、将其存储在哪里以及如何更改它?
我想要完成的是重命名MD127与我的喜好不同的东西。
答案1
警告:在遵循此处给出的任何建议之前,请先进行备份:-)
选项1:
编辑/etc/mdadm.conf
:
数组 /dev/md1 级别=raid0 设备数量=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 设备=/dev/sdb8,/dev/sda8
我只是输入了你自己的输出并将 127 改为 1。重新启动,现在它应该是 md1。
选项 #2:
如果你没有mdadm.conf
,并且想将其组装到 md1自动地, 你可以这样做:
mdadm 有一个“首选次要”的概念。例如,一旦将某个次要编号分配给某个数组,并将其存储在超级块中,则每次自动组装此数组时都会使用该编号。验证这一点:
mdadm --detail /dev/md127
如果显示“首选次要版本: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=2 /dev/md1 /dev/sdb8 /dev/sda8
或者您可以指定“hostname:2”以使所有内容与其他数组保持一致(使用--detail 查找当前名称)。
答案2
补充一下 haimg 的出色回答。即使有 mdadm.conf,系统(至少对于 Ubuntu)仍然可能在读取 mdadm.conf 之前自动组装阵列。因此,当它找到它时,它无论如何都会忽略刚刚组装的阵列。
为了解决这个问题,请运行sudo update-initramfs -u
以重新生成正确的 initrd。
答案3
其他答案都不适合我,但在 Centos 中我使用了以下指南。问题是 /etc/mdadm.conf 在启动时实际上并不使用,只有在安装新内核或手动重新创建 initramfs 时才会更新。所以本质上你只需要:
dracut --force
来源:http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles
答案4
0.9 版超级块没有名称,它们是在 1 版中引入的。/dev/md127
不是阵列的名称,而是阵列设备文件的名称,这是 raid 块设备次要编号的直接结果。这个次要编号是在组装阵列时任意选择的。
如果需要,UUID 可为阵列提供唯一标识符。如果您更喜欢人性化或结构化的名称,请将 LVM 物理卷放入阵列中。