系统装在软raid上带来的问题如何修复?

运维 系统运维
前一阵遇到一个系统装到软raid上后设备名对不上的问题。正常用kickstart安装rhel或centos时,可以创建软raid设备,例如/dev/md1,然后把系统装到md1里,装好重启后可以看到根目录就在/dev/md1设备上。

前一阵遇到一个系统装到软raid上后设备名对不上的问题。正常用kickstart安装rhel或centos时,可以创建软raid设备,例如/dev/md1,然后把系统装到md1里,装好重启后可以看到根目录就在/dev/md1设备上。但是,同事用无盘环境装的,重启后设备名字变成了md127,系统是自动把软raid设备找到了,但是给它的名字不是安装时的名字。试着在/etc/mdadm.conf里把/dev/md1加上,重启还是无效。

后来才想明白,mdadm.conf配置文件自己就放在软raid上,在识别软raid以前,上哪儿去找这个文件啊。不是修改系统的,而是修改dracut里的mdadm.conf,这个修改也不麻烦,改好/etc/mdadm.conf后重新mkinitrd一下,新的mdadm.conf就带到新initrd里去了。这次重启,设备名正确了,是/dev/md1。

那md127是咋来的?
再翻了代码,原来,dracut里的sbin/mdadm_auto脚本里有一句:

/sbin/mdadm -As --auto=yes --run 2>&1 | vinfo

如果找不到etc/mdadm.conf,就会用mdadm工具来自动寻找并组装旧有的软raid设备,“-A”表示Assemble,看看mdadm的源码:

(Assemble.c)
create_mddev()
    ----> find_free_devnm()

char *find_free_devnm(int use_partitions)                         
{                       
        static char devnm[32]; 
        int devnum;                                                
        for (devnum = 127; devnum != 128;                
             devnum = devnum ? devnum-1 : (1<<20)-1) {
             ......

就是从127往下递减来作为设备名称的。

感谢君瑞同学提的问题,我也学到了很多。

责任编辑:黄丹 来源: donghao.org
相关推荐

2019-08-22 10:43:15

Windows 10相机修复

2010-09-02 17:40:25

SQL Server安装

2018-09-27 11:50:06

修复Windows 10Razer

2018-07-26 11:35:20

WindowsWindows 10修复

2015-07-28 14:45:31

ubuntu修复系统程序

2013-05-30 08:49:37

网络路由路由修复路由

2020-03-22 11:20:16

Vue开发前端

2020-01-18 08:00:00

Microsoft TLinux

2012-03-16 10:44:14

密码

2019-06-04 15:16:23

Windows 10Google Chro屏幕闪烁

2009-01-09 22:33:19

服务器磁盘RAID

2015-12-24 10:55:05

2018-07-16 09:36:05

2024-03-08 17:54:44

MySQL函数数据

2014-04-09 10:16:28

Linux文件系统fsck工具

2018-12-26 09:45:38

Windows 10修复待机内存

2018-09-20 09:40:13

修复Windows 10Chrome

2018-12-18 10:15:53

修复Windows 10DLL文件

2018-10-16 09:35:27

修复windows 10JavaScript

2011-08-19 10:05:55

windowsXP安全模式故障修复控制台
点赞
收藏

51CTO技术栈公众号