LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 370|回复: 2

lvm必须在initrd中调用vgchange -ay吗?

[复制链接]
发表于 2012-2-25 23:57:54 | 显示全部楼层 |阅读模式
我是学习initrd的时候想到这个问题的。

我以lvm做为root分区,此时必须由initrd执行vgchange -ay。
这个我不太喜欢。我认为initrd里只应该加载mount root用的内核模块,其他的操作都是多余操作。

vgchange里面做了哪些操作?为什么内核不能自己识别出所有lvm分区?

raid也是类似需要在initrd中执行一个程序吧?也是为什么?
发表于 2012-2-26 09:33:34 | 显示全部楼层
如果你的根分区在lvm中,就必须在内核启动时就加载lvm,否则无法识别。vgchange应该起到了一个查找lvm分区检测是否有调整改动的作用。
lvm其实是个外挂模块,并不像其他文件系统一样是可以直接编译进内核的,所以在启动内核的同时,需要利用initrd文件来加载lvm模块。

和你一样也不喜欢用initrd这个文件,启动就只有一个内核文件。
我也用lvm,但没有把/分区放上去,是把/var单独拿出来来了,另外/usr是用squashfs打包以文件形式放在其他盘的。

如果想把/分区放在lvm里,那vgchange这一步是省不了的。
回复 支持 反对

使用道具 举报

发表于 2012-2-27 01:29:20 | 显示全部楼层
Post by zhou3345;2160799
如果你的根分区在lvm中,就必须在内核启动时就加载lvm,否则无法识别。vgchange应该起到了一个查找lvm分区检测是否有调整改动的作用。
lvm其实是个外挂模块,并不像其他文件系统一样是可以直接编译进内核的,所以在启动内核的同时,需要利用initrd文件来加载lvm模块。

和你一样也不喜欢用initrd这个文件,启动就只有一个内核文件。
我也用lvm,但没有把/分区放上去,是把/var单独拿出来来了,另外/usr是用squashfs打包以文件形式放在其他盘的。

如果想把/分区放在lvm里,那vgchange这一步是省不了的。


貌似我把lvm全都编译到内核里面以后,不要initrd也是可以的。现在在用的一个initrd是做fbsplash用的,下次重启的时候我把它去掉试试。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表