在initramfs脚本中修改/设置根设备

问题描述:

我想修改根设备节点作为initramfs脚本的一部分。我不想自己执行switch_root(除非必须)。我想添加一个脚本,如果满足某些条件,可以更改根设备。在initramfs脚本中修改/设置根设备

我试过各种选项,如读取/设置$ root变量,但没有奏效。

后台问题是我试图只在满足某些条件时才加密根设备。在这种情况下,我将旧的根设备的数据复制到新的加密设备中,并希望将根切换到新的加密/ dev/mapper/secret设备,而不是预先配置的/ dev/sda2。

根据我的研究,似乎给予内核的根参数不能通过initramfs脚本进行更改。

https://unix.stackexchange.com/questions/65589/kernel-grub-how-override-root-parameter-inside-initrd-script

@ enzo2提供的答案是,只有这样,才能通过重写grub配置文件(/boot/grub/menu.lst中在我的情况)达到这个和发行重新启动,以便内核可以加载了不同的根设备。